NPE in JSON parsing
This seems to have happened while CTRL+dragging an Apros analog signal profile text monitors contents to a time-series chart editor.
!ENTRY org.simantics.utils.ui 4 0 2019-08-08 13:21:23.789
!MESSAGE Unexpected exception
null
!STACK 0
org.simantics.db.exception.DatabaseException: Unexpected exception
at fi.vtt.simantics.procore.internal.SessionImplSocket.syncRequest(SessionImplSocket.java:1877)
at fi.vtt.simantics.procore.internal.SessionImplSocket.syncRequest(SessionImplSocket.java:2975)
at org.simantics.charts.internal.JsonUtils.tryParseJsonPropertyVariable(JsonUtils.java:24)
at org.simantics.charts.editor.SubscriptionDropParticipant.dragEnterPlainText(SubscriptionDropParticipant.java:238)
at org.simantics.charts.editor.SubscriptionDropParticipant.dragEnter(SubscriptionDropParticipant.java:110)
at org.simantics.g2d.dnd.DropInteractor$2.run(DropInteractor.java:118)
at org.simantics.utils.threads.ThreadUtils.syncExec(ThreadUtils.java:211)
at org.simantics.g2d.canvas.impl.AbstractCanvasParticipant.syncExec(AbstractCanvasParticipant.java:461)
at org.simantics.g2d.dnd.DropInteractor.dragEnter(DropInteractor.java:114)
at java.awt.dnd.DropTarget.dragEnter(DropTarget.java:358)
at sun.awt.dnd.SunDropTargetContextPeer.processEnterMessage(SunDropTargetContextPeer.java:331)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEnterEvent(SunDropTargetContextPeer.java:799)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:767)
at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:48)
at java.awt.Component.dispatchEventImpl(Component.java:4744)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.retargetMouseEnterExit(Container.java:4686)
at java.awt.LightweightDispatcher.trackDropTargetEnterExit(Container.java:4635)
at java.awt.LightweightDispatcher.trackMouseEnterExit(Container.java:4648)
at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:4601)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4471)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(AccessController.java:673)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(AccessController.java:673)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NullPointerException
at org.simantics.charts.internal.JsonUtils.readPossibleVariableUri(JsonUtils.java:57)
at org.simantics.charts.internal.JsonUtils.readPossibleVariable(JsonUtils.java:41)
at org.simantics.charts.internal.JsonUtils.tryParseJsonPropertyVariable(JsonUtils.java:34)
at org.simantics.charts.internal.JsonUtils$1.perform(JsonUtils.java:27)
at org.simantics.charts.internal.JsonUtils$1.perform(JsonUtils.java:1)
at fi.vtt.simantics.procore.internal.SessionImplSocket$6.run0(SessionImplSocket.java:1554)
at org.simantics.db.impl.query.QueryProcessor$SessionTask.run(QueryProcessor.java:306)
at fi.vtt.simantics.procore.internal.SessionRequestManager$1.run0(SessionRequestManager.java:127)
at org.simantics.db.impl.query.QueryProcessor$SessionTask.run(QueryProcessor.java:306)
at org.simantics.db.impl.query.QueryThread.run(QueryThread.java:254)