Error processing value change

My wrapper log is full of these errors:

INFO   | jvm 1    | 2020/06/22 08:37:41 | W [c.i.o.w.s.DataChangeDispatcher] [12:37:41]: Error processing value change. 
INFO   | jvm 1    | 2020/06/22 08:37:41 | java.lang.IllegalArgumentException: value must be less than 255
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.Char.setValue(SourceFile:59)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.Char.read(SourceFile:107)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.PrimitiveArray.getElement(SourceFile:189)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.win32.automation.types.SafeArray.e(SourceFile:1085)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.win32.automation.types.SafeArray.get(SourceFile:1076)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.win32.automation.types.SafeArray.get(SourceFile:972)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.inductiveautomation.opccom.wrapper.ComUtil.getValueForParameter(ComUtil.java:221)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.inductiveautomation.opccom.wrapper.ComUtil.getValueForVariant(ComUtil.java:189)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.inductiveautomation.opccom.wrapper.subscriptions.DataChangeDispatcher.onDataChange(DataChangeDispatcher.java:147)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at java.lang.reflect.Method.invoke(Method.java:498)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.win32.com.server.CoInterfaceVTBL$VirtualMethodCallback.b(SourceFile:292)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.win32.com.server.CoInterfaceVTBL$VirtualMethodCallback.callback(SourceFile:179)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.Callback.enterPoint(SourceFile:232)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.Function.invokeCFunc(Native Method)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.FunctionCall.a(SourceFile:127)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.FunctionCall.call(SourceFile:35)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.Function.invoke(SourceFile:188)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.Function.invoke(SourceFile:212)
INFO   | jvm 1    | 2020/06/22 08:37:41 | 	at com.jniwrapper.win32.MessageLoopThread$LoopThread.run(MessageLoopThread.java:540)

There is zero info on what tag could be causing this error. Any ideas on how to find the error without looking at every single tag? Changing the DataChangeDispatcher log level to debug did not provide any more detail.

Well, it’s coming from a type that’s designated a char array, if that helps? I browsed through and don’t see any good ways to determine more specific information about where the error is coming from. If you can capture the COM traffic (if it’s DCOM, Wireshark would work as a last resort) you could see when an incoming message triggers those errors and may be able to decode the data.

It was a new tag I had created. I found it be looking at the logs to see when it started and worked back from there. It would be nice if there was a little more detail… Thanks for the response.

1 Like