Hi,
I have just been (re)examing the Tess4J node for OCR, and I thought what better place to start than the Example_Tess4J workflow(!). However, I get an error in the Tess4J node when I try to run this:
ERROR Tess4J Execute failed: Invalid memory access
The full entry from the log file is pasted below. I am on the very latest KNIME (2.10.2) and nightly build for the KNIP nodes. Also I have Xmx set to 4096m in the knime.ini file.
Any help/advice would be greatly appreciated!
Kind regards
James
2014-09-23 15:50:52,705 DEBUG main Table Cell Viewer : reset
2014-09-23 15:50:52,706 DEBUG main Table Cell Viewer : clean output ports.
2014-09-23 15:50:52,706 DEBUG main NodeContainer : Table Cell Viewer 2:5 has new state: IDLE
2014-09-23 15:50:52,706 DEBUG main NodeContainer : Example_Tess4J 2 has new state: IDLE
2014-09-23 15:50:52,706 DEBUG main Tess4J : reset
2014-09-23 15:50:52,706 DEBUG main Tess4J : clean output ports.
2014-09-23 15:50:52,706 DEBUG main NodeContainer : Tess4J 2:4 has new state: IDLE
2014-09-23 15:50:52,707 DEBUG main Tess4J : Configure succeeded. (Tess4J)
2014-09-23 15:50:52,707 DEBUG main NodeContainer : Tess4J 2:4 has new state: CONFIGURED
2014-09-23 15:50:52,707 DEBUG main Table Cell Viewer : Configure succeeded. (Table Cell Viewer)
2014-09-23 15:50:52,707 DEBUG main NodeContainer : Table Cell Viewer 2:5 has new state: CONFIGURED
2014-09-23 15:50:52,707 DEBUG main NodeContainer : Example_Tess4J 2 has new state: CONFIGURED
2014-09-23 15:50:54,236 DEBUG main ExecuteAction : Creating execution job for 1 node(s)...
2014-09-23 15:50:54,237 DEBUG main NodeContainer : Tess4J 2:4 has new state: CONFIGURED_MARKEDFOREXEC
2014-09-23 15:50:54,237 DEBUG main NodeContainer : Tess4J 2:4 has new state: CONFIGURED_QUEUED
2014-09-23 15:50:54,238 DEBUG main NodeContainer : Example_Tess4J 2 has new state: EXECUTING
2014-09-23 15:50:54,239 DEBUG KNIME-Worker-6 WorkflowManager : Tess4J 2:4 doBeforePreExecution
2014-09-23 15:50:54,239 DEBUG KNIME-Worker-6 NodeContainer : Tess4J 2:4 has new state: PREEXECUTE
2014-09-23 15:50:54,239 DEBUG KNIME-Worker-6 WorkflowManager : Tess4J 2:4 doBeforeExecution
2014-09-23 15:50:54,240 DEBUG KNIME-Worker-6 NodeContainer : Tess4J 2:4 has new state: EXECUTING
2014-09-23 15:50:54,240 DEBUG KNIME-Worker-6 LocalNodeExecutionJob : Tess4J 2:4 Start execute
2014-09-23 15:50:54,240 DEBUG KNIME-Worker-6 WorkflowFileStoreHandlerRepository : Adding handler 5c16bb8e-38d6-47a2-a928-7eeeada04676 (Tess4J 2:4: <no directory>) - 4 in total
2014-09-23 15:50:54,252 DEBUG KNIME-WFM-Parent-Notifier NodeContainer : ROOT has new state: EXECUTING
2014-09-23 15:50:54,525 DEBUG KNIME-TableIO-2 MemoryObjectTracker : Adding org.knime.core.data.container.Buffer$BufferMemoryReleasable (5 in total)
2014-09-23 15:50:54,527 DEBUG KNIME-Worker-6 Tess4J : reset
2014-09-23 15:50:54,527 ERROR KNIME-Worker-6 Tess4J : Execute failed: Invalid memory access
2014-09-23 15:50:54,527 DEBUG KNIME-Worker-6 Tess4J : Execute failed: Invalid memory access
java.lang.Error: Invalid memory access
at com.sun.jna.Native.invokePointer(Native Method)
at com.sun.jna.Function.invokePointer(Function.java:470)
at com.sun.jna.Function.invoke(Function.java:404)
at com.sun.jna.Function.invoke(Function.java:315)
at com.sun.jna.Library$Handler.invoke(Library.java:212)
at com.sun.proxy.$Proxy26.TessBaseAPIGetUTF8Text(Unknown Source)
at net.sourceforge.tess4j.Tesseract.getOCRText(Tesseract.java:244)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:185)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:260)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:158)
at org.knime.knip.tess4j.base.node.Tess4JNodeModel.compute(Tess4JNodeModel.java:151)
at org.knime.knip.tess4j.base.node.Tess4JNodeModel.compute(Tess4JNodeModel.java:1)
at org.knime.knip.base.node.ValueToCellNodeModel$1.getCells(ValueToCellNodeModel.java:377)
at org.knime.core.data.container.RearrangeColumnsTable.calcNewCellsForRow(RearrangeColumnsTable.java:493)
at org.knime.core.data.container.RearrangeColumnsTable.calcNewColsSynchronously(RearrangeColumnsTable.java:413)
at org.knime.core.data.container.RearrangeColumnsTable.create(RearrangeColumnsTable.java:347)
at org.knime.core.node.ExecutionContext.createColumnRearrangeTable(ExecutionContext.java:369)
at org.knime.knip.base.node.ValueToCellNodeModel.execute(ValueToCellNodeModel.java:506)
at org.knime.core.node.NodeModel.executeModel(NodeModel.java:552)
at org.knime.core.node.Node.invokeNodeModelExecute(Node.java:1099)
at org.knime.core.node.Node.execute(Node.java:948)
at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:529)
at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:95)
at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:179)
at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:120)
at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:240)
2014-09-23 15:50:54,528 DEBUG KNIME-Worker-6 WorkflowManager : Tess4J 2:4 doBeforePostExecution
2014-09-23 15:50:54,528 DEBUG KNIME-Worker-6 NodeContainer : Tess4J 2:4 has new state: POSTEXECUTE
2014-09-23 15:50:54,528 DEBUG KNIME-Worker-6 WorkflowManager : Tess4J 2:4 doAfterExecute - failure
2014-09-23 15:50:54,528 DEBUG KNIME-Worker-6 Tess4J : reset
2014-09-23 15:50:54,528 DEBUG KNIME-Worker-6 Tess4J : clean output ports.