I am using FineReader Engine 11.1.3_glibc_2.5 via the java JNI interface. The JVM version is Oracle jdk1.6.0_45.
I use JUnit to stress test a simple OCR Java class that loads the Engine, performs an OCR operation
document = engine.CreateFRDocument();
document.AddImageFile(filePath, null, null);
result = document.getPlainText().getText();
Then unloads the engine. It repeats this for various files (png and pdf - embedded image). When this test is run in a loop I get JVM crashes (SIGSEGV) occasionally. Of the form:
A fatal error has been detected by the Java Runtime Environment:
SIGSEGV (0xb) at pc=0x00002aaabc370063, pid=11551, tid=1082636608
JRE version: 6.0_45-b06
Java VM: Java HotSpot(TM) 64-Bit Server VM (20.45-b01 mixed mode linux-amd64 compressed oops)
C [libFREngine.so+0x370063] CFRDocument::removeAllData()+0x73
If you would like to submit a bug report, please visit:
The crash happened outside the Java Virtual Machine in native code.
See problematic frame for where to report the bug.
To me this looks like something in the finalization. Does this occur elsewhere? Is there a workaround?