Streaming and XPath node

Hi

I've got a large number of XML files I'm trying to extract the <reaction> elements out of. This works fine when the node is run normally. 

The XPath node appears to be listed as streamble. However, when I place this node alone inside a wrapped meta node and select streaming executor I get the following error:

 

 

ERROR getReactions()       0:31       Caught "NullPointerException": null
ERROR getReactions()       0:31       Caught "IllegalStateException": Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionEXECUTING" in node getReactions() 0:31
ERROR getReactions()       0:31       Caught "IllegalStateException": Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionPOSTEXECUTE" in node getReactions() 0:31
ERROR getReactions()       0:31       Caught "IllegalStateException": Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionEXECUTED" in node getReactions() 0:31

 

 

Then the meta node is tuck in an executing state. 

 

KNIME log output:

 

2016-05-16 11:05:15,165 : ERROR : Streaming-0-Master : SimpleStreamerNodeExecutionJob : getReactions() : 0:31 : Caught "NullPointerException": null
2016-05-16 11:05:15,166 : DEBUG : Streaming-0-Master : SimpleStreamerNodeExecutionJob : getReactions() : 0:31 : Caught "NullPointerException": null
java.lang.NullPointerException
    at org.knime.core.node.workflow.NativeNodeContainer.initFileStore(NativeNodeContainer.java:653)
    at org.knime.core.node.workflow.NativeNodeContainer.mimicRemotePreExecute(NativeNodeContainer.java:455)
    at org.knime.core.node.workflow.WorkflowManager.mimicRemotePreExecute(WorkflowManager.java:4356)
    at org.knime.core.node.workflow.SubNodeContainer.lambda$3(SubNodeContainer.java:966)
    at org.knime.core.node.workflow.SubNodeContainer.runParentAction(SubNodeContainer.java:1217)
    at org.knime.core.node.workflow.SubNodeContainer.runIfInExternalExecutor(SubNodeContainer.java:954)
    at org.knime.core.node.workflow.SubNodeContainer.performStateTransitionPREEXECUTE(SubNodeContainer.java:966)
    at org.knime.core.node.workflow.WorkflowManager.doBeforePreExecution(WorkflowManager.java:2862)
    at org.knime.core.node.workflow.NodeContainer.notifyParentPreExecuteStart(NodeContainer.java:491)
    at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:136)
    at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
    at org.knime.core.streaming.SimpleStreamerNodeExecutionJobManager$1.run(SimpleStreamerNodeExecutionJobManager.java:86)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
2016-05-16 11:05:15,167 : DEBUG : Streaming-0-Master : WorkflowManager : getReactions() : 0:31 : getReactions() 0:31 doBeforeExecution
2016-05-16 11:05:15,167 : ERROR : Streaming-0-Master : SimpleStreamerNodeExecutionJob : getReactions() : 0:31 : Caught "IllegalStateException": Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionEXECUTING" in node getReactions() 0:31
2016-05-16 11:05:15,167 : DEBUG : Streaming-0-Master : SimpleStreamerNodeExecutionJob : getReactions() : 0:31 : Caught "IllegalStateException": Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionEXECUTING" in node getReactions() 0:31
java.lang.IllegalStateException: Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionEXECUTING" in node getReactions() 0:31
    at org.knime.core.node.workflow.NodeContainer.throwIllegalStateException(NodeContainer.java:891)
    at org.knime.core.node.workflow.SubNodeContainer.performStateTransitionEXECUTING(SubNodeContainer.java:999)
    at org.knime.core.node.workflow.WorkflowManager.doBeforeExecution(WorkflowManager.java:2944)
    at org.knime.core.node.workflow.NodeContainer.notifyParentExecuteStart(NodeContainer.java:505)
    at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:149)
    at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
    at org.knime.core.streaming.SimpleStreamerNodeExecutionJobManager$1.run(SimpleStreamerNodeExecutionJobManager.java:86)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
2016-05-16 11:05:15,167 : DEBUG : Streaming-0-Master : WorkflowManager : getReactions() : 0:31 : getReactions() 0:31 doBeforePostExecution
2016-05-16 11:05:15,168 : ERROR : Streaming-0-Master : SimpleStreamerNodeExecutionJob : getReactions() : 0:31 : Caught "IllegalStateException": Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionPOSTEXECUTE" in node getReactions() 0:31
2016-05-16 11:05:15,168 : DEBUG : Streaming-0-Master : SimpleStreamerNodeExecutionJob : getReactions() : 0:31 : Caught "IllegalStateException": Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionPOSTEXECUTE" in node getReactions() 0:31
java.lang.IllegalStateException: Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionPOSTEXECUTE" in node getReactions() 0:31
    at org.knime.core.node.workflow.NodeContainer.throwIllegalStateException(NodeContainer.java:891)
    at org.knime.core.node.workflow.SubNodeContainer.performStateTransitionPOSTEXECUTE(SubNodeContainer.java:1017)
    at org.knime.core.node.workflow.WorkflowManager.doBeforePostExecution(WorkflowManager.java:2890)
    at org.knime.core.node.workflow.NodeContainer.notifyParentPostExecuteStart(NodeContainer.java:522)
    at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:192)
    at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
    at org.knime.core.streaming.SimpleStreamerNodeExecutionJobManager$1.run(SimpleStreamerNodeExecutionJobManager.java:86)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
2016-05-16 11:05:15,168 : DEBUG : Streaming-0-Master : WorkflowManager : getReactions() : 0:31 : getReactions() 0:31 doAfterExecute - failure
2016-05-16 11:05:15,168 : ERROR : Streaming-0-Master : SimpleStreamerNodeExecutionJob : getReactions() : 0:31 : Caught "IllegalStateException": Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionEXECUTED" in node getReactions() 0:31
2016-05-16 11:05:15,169 : DEBUG : Streaming-0-Master : SimpleStreamerNodeExecutionJob : getReactions() : 0:31 : Caught "IllegalStateException": Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionEXECUTED" in node getReactions() 0:31
java.lang.IllegalStateException: Illegal state "CONFIGURED_QUEUED" encountered in method "org.knime.core.node.workflow.SubNodeContainer#performStateTransitionEXECUTED" in node getReactions() 0:31
    at org.knime.core.node.workflow.NodeContainer.throwIllegalStateException(NodeContainer.java:891)
    at org.knime.core.node.workflow.SubNodeContainer.performStateTransitionEXECUTED(SubNodeContainer.java:1040)
    at org.knime.core.node.workflow.WorkflowManager.doAfterExecution(WorkflowManager.java:2975)
    at org.knime.core.node.workflow.NodeContainer.notifyParentExecuteFinished(NodeContainer.java:534)
    at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:202)
    at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
    at org.knime.core.streaming.SimpleStreamerNodeExecutionJobManager$1.run(SimpleStreamerNodeExecutionJobManager.java:86)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
2016-05-16 11:05:22,399 : DEBUG : main : NodeContainerEditPart :  :  : getReactions() 0:31 (CONFIGURED_QUEUED)
2016-05-16 11:05:22,992 : DEBUG : main : NodeContainerEditPart :  :  : getReactions() 0:31 (CONFIGURED_QUEUED)

 

Cheers

Sam

 

Hi Sam,

I couldn't reproduce that particular problem but I can confirm there is something flaky with the streaming implementation of the xpath node. We'll review for the 3.2 release.

Bernd

Thanks :)

Hi Sam,

with 3.2 being online now this was fixed as well.

Could you test if you still get the NPE with 3.2?

Iris 

Looks like it works fine now, thank you!