This is an automated email from the ASF dual-hosted git repository.

justinchen pushed a commit to branch 1.3-robust
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/1.3-robust by this push:
     new 1aefd4ccddf fix
1aefd4ccddf is described below

commit 1aefd4ccddfe0333aee16cdd9d79d906794d5aa7
Author: Caideyipi <[email protected]>
AuthorDate: Fri Mar 20 10:38:52 2026 +0800

    fix
---
 .../pipe/sink/protocol/opcua/OpcUaNameSpace.java   | 23 +++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/OpcUaNameSpace.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/OpcUaNameSpace.java
index a8edc941bb4..0348c930bf8 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/OpcUaNameSpace.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/OpcUaNameSpace.java
@@ -41,6 +41,7 @@ import 
org.eclipse.milo.opcua.sdk.server.api.ManagedNamespaceWithLifecycle;
 import org.eclipse.milo.opcua.sdk.server.api.MonitoredItem;
 import org.eclipse.milo.opcua.sdk.server.model.nodes.objects.BaseEventTypeNode;
 import org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode;
+import org.eclipse.milo.opcua.sdk.server.nodes.UaNode;
 import org.eclipse.milo.opcua.sdk.server.nodes.UaVariableNode;
 import org.eclipse.milo.opcua.sdk.server.util.SubscriptionModel;
 import org.eclipse.milo.opcua.stack.core.Identifiers;
@@ -108,10 +109,10 @@ public class OpcUaNameSpace extends 
ManagedNamespaceWithLifecycle {
       throw new PipeRuntimeCriticalException("The segments of tablets must 
exist");
     }
     final StringBuilder currentStr = new StringBuilder();
-    UaFolderNode folderNode = null;
+    UaNode folderNode = null;
     NodeId folderNodeId;
     for (final String segment : segments) {
-      final UaFolderNode nextFolderNode;
+      final UaNode nextFolderNode;
 
       currentStr.append(segment);
       folderNodeId = newNodeId(currentStr.toString());
@@ -126,7 +127,12 @@ public class OpcUaNameSpace extends 
ManagedNamespaceWithLifecycle {
                 LocalizedText.english(segment));
         getNodeManager().addNode(nextFolderNode);
         if (Objects.nonNull(folderNode)) {
-          folderNode.addOrganizes(nextFolderNode);
+          folderNode.addReference(
+              new Reference(
+                  folderNode.getNodeId(),
+                  Identifiers.Organizes,
+                  nextFolderNode.getNodeId().expanded(),
+                  true));
         } else {
           nextFolderNode.addReference(
               new Reference(
@@ -138,7 +144,6 @@ public class OpcUaNameSpace extends 
ManagedNamespaceWithLifecycle {
         folderNode = nextFolderNode;
       } else {
         folderNode =
-            (UaFolderNode)
                 getNodeManager()
                     .getNode(folderNodeId)
                     .orElseThrow(
@@ -189,7 +194,15 @@ public class OpcUaNameSpace extends 
ManagedNamespaceWithLifecycle {
                 .setValue(value)
                 .build();
         getNodeManager().addNode(measurementNode);
-        folderNode.addOrganizes(measurementNode);
+        if (Objects.nonNull(folderNode)) {
+          folderNode.addReference(
+              new Reference(
+                  folderNode.getNodeId(), Identifiers.Organizes, 
nodeId.expanded(), true));
+        } else {
+          measurementNode.addReference(
+              new Reference(
+                  nodeId, Identifiers.Organizes, 
Identifiers.ObjectsFolder.expanded(), false));
+        }
       } else {
         // This must exist
         measurementNode =

Reply via email to