Unsafe namespace change
objectscriptQuality release
Id
OS0061
Rule type
Code Smell
Severity
Critical
Critical
SQALE characteristic
- Reliability
- Instruction
Remediation function
Constant/issue
Remediation cost
5min
In some situations, an application may want to switch namespaces temporarily using, for instance:
Method m() { set oldNs = $namespace set $namespace = newNs // or: znspace newNs do ..something() set $namespace = oldNs // or: znspace oldNs }
But if the code between namespace changes fails for any reason, the namespace
will not be switched back. The solution is to use new $namespace
instead:
Method m() { // Make any changes to $namespace private to this method new $namespace set $namespace = newNs // or: znspace newNs do ..something() // Namespace is automatically restored here }