diff --git a/Libraries/Opc.Ua.Server/Diagnostics/CustomNodeManager.cs b/Libraries/Opc.Ua.Server/Diagnostics/CustomNodeManager.cs index 7619d9502..1a5668ed5 100644 --- a/Libraries/Opc.Ua.Server/Diagnostics/CustomNodeManager.cs +++ b/Libraries/Opc.Ua.Server/Diagnostics/CustomNodeManager.cs @@ -107,6 +107,8 @@ protected CustomNodeManager2( // create the table of monitored nodes. // these are created by the node manager whenever a client subscribe to an attribute of the node. m_monitoredNodes = new NodeIdDictionary(); + + m_predefinedNodes = new NodeIdDictionary(); } #endregion @@ -129,7 +131,7 @@ protected virtual void Dispose(bool disposing) { lock (Lock) { - foreach (NodeState node in m_predefinedNodes?.Values) + foreach (NodeState node in m_predefinedNodes.Values) { Utils.SilentDispose(node); } @@ -321,7 +323,7 @@ protected virtual NodeHandle IsHandleInNamespace(object managerHandle) public NodeState Find(NodeId nodeId) { NodeState node = null; - if (m_predefinedNodes?.TryGetValue(nodeId, out node) == true) + if (m_predefinedNodes.TryGetValue(nodeId, out node) == true) { return node; } @@ -349,11 +351,6 @@ public NodeId CreateNode( lock (Lock) { - if (m_predefinedNodes == null) - { - m_predefinedNodes = new NodeIdDictionary(); - } - instance.ReferenceTypeId = referenceTypeId; NodeState parent = null; @@ -390,7 +387,7 @@ public bool DeleteNode( List referencesToRemove = new List(); NodeState node = null; - if (m_predefinedNodes?.TryGetValue(nodeId, out node) != true) + if (m_predefinedNodes.TryGetValue(nodeId, out node) != true) { return false; } @@ -477,11 +474,6 @@ public virtual void LoadPredefinedNodes( string resourcePath, IDictionary> externalReferences) { - if (m_predefinedNodes == null) - { - m_predefinedNodes = new NodeIdDictionary(); - } - // load the predefined nodes from an XML document. NodeStateCollection predefinedNodes = new NodeStateCollection(); predefinedNodes.LoadFromResource(context, resourcePath, assembly, true); @@ -544,11 +536,6 @@ protected virtual NodeState AddBehaviourToPredefinedNode(ISystemContext context, /// protected virtual void AddPredefinedNode(ISystemContext context, NodeState node) { - if (m_predefinedNodes == null) - { - m_predefinedNodes = new NodeIdDictionary(); - } - // assign a default value to any variable in namespace 0 if (node is BaseVariableState nodeStateVar) { @@ -614,7 +601,7 @@ protected virtual void RemovePredefinedNode( NodeState node, List referencesToRemove) { - if (m_predefinedNodes?.TryRemove(node.NodeId, out _) != true) + if (m_predefinedNodes.TryRemove(node.NodeId, out _) != true) { return; } @@ -687,7 +674,7 @@ protected virtual void OnNodeRemoved(NodeState node) /// A list of references to add to external targets. protected virtual void AddReverseReferences(IDictionary> externalReferences) { - foreach (NodeState source in m_predefinedNodes?.Values) + foreach (NodeState source in m_predefinedNodes.Values) { IList references = new List(); source.GetReferences(SystemContext, references); @@ -855,15 +842,12 @@ public NodeState FindPredefinedNode(NodeId nodeId, Type expectedType) /// public virtual void DeleteAddressSpace() { - if (m_predefinedNodes != null) - { - var nodes = m_predefinedNodes.Values.ToArray(); - m_predefinedNodes.Clear(); + var nodes = m_predefinedNodes.Values.ToArray(); + m_predefinedNodes.Clear(); - foreach (NodeState node in nodes) - { - Utils.SilentDispose(node); - } + foreach (NodeState node in nodes) + { + Utils.SilentDispose(node); } } @@ -894,7 +878,7 @@ protected virtual NodeHandle GetManagerHandle(ServerSystemContext context, NodeI } NodeState node = null; - if (m_predefinedNodes?.TryGetValue(nodeId, out node) == true) + if (m_predefinedNodes.TryGetValue(nodeId, out node) == true) { var handle = new NodeHandle { NodeId = nodeId,