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

riemer pushed a commit to branch fix-opcua-connection
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 6fe64f213ec71f8e120e165612f63aa144b61305
Author: Dominik Riemer <[email protected]>
AuthorDate: Mon Jul 28 14:29:08 2025 +0200

    fix: Properly disconnect from OPC-UA in case of failure
---
 .../extensions/connectors/opcua/client/SpOpcUaClient.java        | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git 
a/streampipes-extensions/streampipes-connectors-opcua/src/main/java/org/apache/streampipes/extensions/connectors/opcua/client/SpOpcUaClient.java
 
b/streampipes-extensions/streampipes-connectors-opcua/src/main/java/org/apache/streampipes/extensions/connectors/opcua/client/SpOpcUaClient.java
index 04a3f93998..c0a8787d65 100644
--- 
a/streampipes-extensions/streampipes-connectors-opcua/src/main/java/org/apache/streampipes/extensions/connectors/opcua/client/SpOpcUaClient.java
+++ 
b/streampipes-extensions/streampipes-connectors-opcua/src/main/java/org/apache/streampipes/extensions/connectors/opcua/client/SpOpcUaClient.java
@@ -53,7 +53,12 @@ public class SpOpcUaClient<T extends OpcUaConfig> {
     OpcUaClientConfig clientConfig = new 
MiloOpcUaConfigurationProvider().makeClientConfig(spOpcConfig);
     var client = OpcUaClient.create(clientConfig);
     client.addSessionInitializer(new DataTypeDictionarySessionInitializer(new 
GenericBsdParser()));
-    client.connect().get();
-    return new ConnectedOpcUaClient(client);
+    try {
+      client.connect().get();
+      return new ConnectedOpcUaClient(client);
+    } catch (Exception e) {
+      client.disconnect().get();
+      throw e;
+    }
   }
 }

Reply via email to