NPE in DB query CacheEntryBase that stops QueryListening thread and probably breaks the system
Just out of the blue while using Apros and OperUI in an external browser, this happened and the operation diagram stopped to update.
This happened with Simantics 1.55.0 and Apros 6.13 in a development environment.
INFO [2023-09-29 15:21:00,873] org.simantics.document.ui.graphfile.ExternalEditorAdapter: New path modified: C:\w\rt dir\apros\6.13\apros-nuclear\workdir\ws-operui\.metadata\.plugins\org.simantics.document.ui\daebc6c5b3afbad590f76e84d238133b895216c4_areaselect.js
INFO [2023-09-29 15:21:01,041] org.simantics.document.ui.graphfile.ExternalEditorAdapter: New path modified: C:\w\rt dir\apros\6.13\apros-nuclear\workdir\ws-operui\.metadata\.plugins\org.simantics.document.ui\daebc6c5b3afbad590f76e84d238133b895216c4_areaselect.js
INFO [2023-09-29 15:21:11,104] org.simantics.acorn.ClusterManager: makeSnapshot: start with 4 files
INFO [2023-09-29 15:21:11,183] org.simantics.acorn.ClusterManager: -finished: amount of files is 7
Exception in thread "QueryListening" java.lang.NullPointerException
at org.simantics.db.impl.query.CacheEntryBase.addParent(CacheEntryBase.java:222)
at org.simantics.db.impl.query.QueryListening$RegisterParentRunnable.run(QueryListening.java:375)
at org.simantics.db.impl.query.Scheduler$1.run(Scheduler.java:138)
The QueryListening
thread started by Scheduler
is nowhere to be found after this incident. This can be considered a fatal incident should pretty much break everything.
The only way I see this as being possible is that there's another thread besides the QueryListening
thread running and modifying the p2orParent
field of CacheEntryBase
. Most likely this is query GC but there's no certainty of that yet.