From 847feadbfd3acc40c127e9d6b6802328ce42f56c Mon Sep 17 00:00:00 2001 From: Ben Hutcheson Date: Wed, 11 Oct 2023 19:32:42 +0200 Subject: [PATCH] fix(opcua): Add Null Variant (#1124) --- .../org/apache/plc4x/java/opcua/readwrite/Variant.java | 4 +++- protocols/opcua/src/main/xslt/opc-manual.xsl | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/Variant.java b/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/Variant.java index b421579c6fe..e4c102e6a0b 100644 --- a/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/Variant.java +++ b/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/Variant.java @@ -158,7 +158,9 @@ public static Variant staticParse(ReadBuffer readBuffer) throws ParseException { // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type) VariantBuilder builder = null; - if (EvaluationHelper.equals(VariantType, (byte) 1)) { + if (EvaluationHelper.equals(VariantType, (byte) 0)) { + builder = VariantNull.staticParseVariantBuilder(readBuffer); + } else if (EvaluationHelper.equals(VariantType, (byte) 1)) { builder = VariantBoolean.staticParseVariantBuilder(readBuffer, arrayLengthSpecified); } else if (EvaluationHelper.equals(VariantType, (byte) 2)) { builder = VariantSByte.staticParseVariantBuilder(readBuffer, arrayLengthSpecified); diff --git a/protocols/opcua/src/main/xslt/opc-manual.xsl b/protocols/opcua/src/main/xslt/opc-manual.xsl index ed78d13f18f..4e40eea68ad 100644 --- a/protocols/opcua/src/main/xslt/opc-manual.xsl +++ b/protocols/opcua/src/main/xslt/opc-manual.xsl @@ -238,6 +238,8 @@ [simple bit arrayDimensionsSpecified] [discriminator uint 6 VariantType] [typeSwitch VariantType,arrayLengthSpecified + ['0' VariantNull + ] ['1' VariantBoolean (bit arrayLengthSpecified) [optional int 32 arrayLength 'arrayLengthSpecified'] [array byte value count 'arrayLength == null ? 1 : arrayLength']