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 =