When doing arithmetic with jython longs, and passing them into system.opc.write*()
, I'm getting scary backtraces:
2024/04/09 14:25:26.554 | W [o.e.m.o.s.c.s.OpcUaBinaryStreamEncoder] [14:25:26]: Not a built-in type: class java.math.BigInteger
2024/04/09 14:25:26.554 | E [o.e.m.o.s.c.t.u.UascClientMessageHandler] [14:25:26]: Error serializing WriteRequest(requestHeader=RequestHeader(authenticationToken=NodeId{ns=0, id=ByteString{bytes=[-26, 5, 108, -104, -37, 42, -45, 18, -38, 80, -126, -52, -109, -75, -125, 53, -121, -92, -33, 97, 14, -39, -93, 101, 87, 61, -77, 108, 17, -1, 70, -15]}}, timestamp=DateTime{utcTime=133571463264750000, javaDate=Tue Apr 09 14:25:26 UTC 2024}, requestHandle=3845013, returnDiagnostics=0, auditEntryId=null, timeoutHint=60000, additionalHeader=null), nodesToWrite=[WriteValue(nodeId=NodeId{ns=1, id=[OfcEdgeIIoT1]Produced0.TS[0]}, attributeId=13, indexRange=null, value=DataValue{value=Variant{value=2977585760}, status=null}), WriteValue(nodeId=NodeId{ns=1, id=[OfcEdgeIIoT1]Produced0.TS[1]}, attributeId=13, indexRange=null, value=DataValue{value=Variant{value=398762}, status=null})]): unknown builtin type: -1
2024/04/09 14:25:26.554 | org.eclipse.milo.opcua.stack.core.UaSerializationException: unknown builtin type: -1
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeBuiltinType(OpcUaBinaryStreamEncoder.java:736)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeValue(OpcUaBinaryStreamEncoder.java:654)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeVariant(OpcUaBinaryStreamEncoder.java:637)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeDataValue(OpcUaBinaryStreamEncoder.java:323)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeDataValue(OpcUaBinaryStreamEncoder.java:879)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.types.structured.WriteValue$Codec.encode(WriteValue.java:106)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.types.structured.WriteValue$Codec.encode(WriteValue.java:86)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.codecs.GenericDataTypeCodec$GenericBinaryDataTypeCodec.encode(GenericDataTypeCodec.java:54)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeStruct(OpcUaBinaryStreamEncoder.java:941)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.lambda$writeStructArray$3(OpcUaBinaryStreamEncoder.java:1107)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeArray(OpcUaBinaryStreamEncoder.java:83)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeStructArray(OpcUaBinaryStreamEncoder.java:1107)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeStructArray(OpcUaBinaryStreamEncoder.java:1123)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.types.structured.WriteRequest$Codec.encode(WriteRequest.java:85)
2024/04/09 14:25:26.556 | at org.eclipse.milo.opcua.stack.core.types.structured.WriteRequest$Codec.encode(WriteRequest.java:69)
2024/04/09 14:25:26.557 | at org.eclipse.milo.opcua.stack.core.serialization.codecs.GenericDataTypeCodec$GenericBinaryDataTypeCodec.encode(GenericDataTypeCodec.java:54)
2024/04/09 14:25:26.557 | at org.eclipse.milo.opcua.stack.core.serialization.OpcUaBinaryStreamEncoder.writeMessage(OpcUaBinaryStreamEncoder.java:918)
2024/04/09 14:25:26.557 | at org.eclipse.milo.opcua.stack.client.transport.uasc.UascClientMessageHandler.lambda$encode$9(UascClientMessageHandler.java:334)
2024/04/09 14:25:26.557 | at org.eclipse.milo.opcua.stack.core.channel.SerializationQueue.lambda$encode$0(SerializationQueue.java:59)
2024/04/09 14:25:26.557 | at org.eclipse.milo.opcua.stack.core.util.TaskQueue$TaskWrapper.run(TaskQueue.java:273)
2024/04/09 14:25:26.557 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
2024/04/09 14:25:26.557 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
2024/04/09 14:25:26.557 | at java.base/java.lang.Thread.run(Unknown Source)
But, only during device startup/shutdown. Once the device is running, it isn't a problem--the values are reaching the other end, and no traces are popping up.
Edge IIoT v8.1.36.