I'm getting an ExecutionQueue WARN that is all over the logger in a gateway.
I'm working on some other issues, better trapping exception etc... and this one doesn't give me any indication on where or what it causing this. I'm hoping that there is something I can turn on to try and get a bit more details on it.
Logger: com.inductiveautomation.ignition.common.util.ExecutionQueue
Message: Uncaught Throwable during execution.
java.lang.NullPointerException: Element cannot be null
at java.base/java.util.Objects.requireNonNull(Unknown Source)
at com.inductiveautomation.perspective.gateway.property.PropertyTree$ValueNode.(PropertyTree.java:1286)
at com.inductiveautomation.perspective.gateway.property.PropertyTree.nodeFromJson(PropertyTree.java:445)
at com.inductiveautomation.perspective.gateway.property.PropertyTree.nodeFromJson(PropertyTree.java:411)
at com.inductiveautomation.perspective.gateway.property.PropertyTree$ValueNode.write(PropertyTree.java:1349)
at com.inductiveautomation.perspective.gateway.property.PropertyTree.lambda$write$1(PropertyTree.java:543)
at com.inductiveautomation.perspective.gateway.property.PropertyTree.writeImpl(PropertyTree.java:586)
at com.inductiveautomation.perspective.gateway.property.PropertyTree.write(PropertyTree.java:543)
at com.inductiveautomation.perspective.gateway.model.ViewModel.lambda$restart$3(ViewModel.java:214)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at com.inductiveautomation.perspective.gateway.model.ViewModel.restart(ViewModel.java:212)
at com.inductiveautomation.perspective.gateway.model.PageModel$Handlers.lambda$onViewRestart$19(PageModel.java:1045)
at com.inductiveautomation.perspective.gateway.api.LoggingContext.lambda$mdcWrap$0(LoggingContext.java:41)
at com.inductiveautomation.ignition.common.util.TimedRunnable.run(TimedRunnable.java:21)
at com.inductiveautomation.ignition.common.util.ExecutionQueue$PollAndExecute.run(ExecutionQueue.java:239)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
Any other loggers I can turn on to find the root cause of this? Is this safe to ignore?
Gonna be hard to find exactly what it is. If you can reliably reproduce in a browser session, you can use the browser's devtools to look at the traffic going over the websocket and find where there's an object missing a certain key (the type is qv but it's missing a $v encoded value key).
That'll be a bit of an endeavour; probably easiest to go to support with.
If you're not noticing any ill effects, it might be safe enough to ignore. Are there any MDC keys associated with the logged event that help identify where it's from, if you're not sure?
I think I can reliably produce it... I'll take a look at the browser devtools to see if I can see anything obvious.
There isn't any impact to the end user. It's just a repeating error and I'm trying to get rid of as many of those as possible to clean up the logs so I can see important things. If I can't find it I'll get with support.
From the rest of the stack, it's to do with an input parameter on a view during a restart...possibly due to a browser refresh while the session is active?
Hmmm.... on the view that is causing the issues there are 4 data entry items, 2 dates, and 2 drop-down lists. And then a table with a bunch of data. The 4 data entry items are used to filter the named query, and they are tied to session parameters so that they are persistent throughout the session.
The error seems to be generated when the view is first opened, and then after that nothing. The table is set to poll at 30sec (I think). Maybe there is something with the binding from the session parameters into the 4 data entry items?
Could be something like that. Hard to say for sure. If you do get it to happen reliably and you can capture the websocket traffic, I'd be interested to take a look.