This is a multi-threading problem with LCMS version 2.5. It was claimed to have been fixed with LCMS v2.6, but many OS are still running the older packages. I have code that parses PDF files. It is running in a production environment on random PDF files and with lots of threads. I was able to stop the error (~2 years ago) by adding "syncronized" keyword around the following block of java code: ICC_Profile profile = ICC_Profile.getInstance(byte[]); ICC_ColorSpace colorSpace = new ICC_ColorSpace(profile); int numComponents = 3; // From PDF dictionary, typically '3' (RGB). float[] components = new float[numComponents];
// Test that ICC_Profile can be parsed // Generates an exception on malformed byte[] // Crashes JVM sporadically if not forced inline by 'syncronized' new java.awt.Color(colorSpace,components,1f); If it helps, here's my java method (won't compile as it is missing methods): public static synchronized PDFColorSpace getICCColorSpace(PDFToken dict) throws IOException { PDFColorSpace cs=null; PDFToken nToken = dict.getDictionaryItem(N); int numComponents = (nToken==null) ? 1 : nToken.getInteger(); try { ICC_Profile profile = ICC_Profile.getInstance(dict.getStream().toString8().getBytes()); // This does not prevent JVM Crash with BELL.SW // if (profile.getNumComponents() == numComponents) ... ICC_ColorSpace colorSpace = new ICC_ColorSpace(profile); cs = new NativeColorSpace(TypeICC,colorSpace); // Test if ICC_Profile is OK. Will throw Exception (or even crash the JVM) // eg: Cik#99001898, http://www.siemens.com/investor/pool/de/investor_relations/events/hauptversammlung/2012/dividendenbekanntmachung.pdf, pg0 // eg: JVM Crash, Cik#99002137, BELL.SW float[] components = new float[numComponents]; new java.awt.Color(colorSpace,components,1f); } catch (Exception e) { cs=null; } return cs; } -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to lcms2 in Ubuntu. https://bugs.launchpad.net/bugs/913434 Title: ImageIO crashes (core dumped) while reading many image files Status in OpenJDK: Confirmed Status in lcms2 package in Ubuntu: Incomplete Status in openjdk-7 package in Ubuntu: Incomplete Bug description: Code that uses ImageIO.read() to read many image files (on my system: 270 files, totalling 522.9 MiB) crashes the JVM. ~~~ My system information: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 11.10 Release: 11.10 Codename: oneiric $ uname -a Linux dowah 3.0.0-14-generic #23-Ubuntu SMP Mon Nov 21 20:28:43 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux $ javac -version javac 1.7.0_147 $ java -version java version "1.7.0_147-icedtea" ~~~ To reproduce the error: $ javac BugIIO.java $ ulimit -c unlimited # to enable core dump $ java BugIIO ~~~ Terminal output that signifies the error: # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007fb5babe31f8, pid=4978, tid=140418842154752 # # JRE version: 7.0_147-b147 # Java VM: OpenJDK 64-Bit Server VM (21.0-b17 mixed mode linux-amd64 compressed oops) # Derivative: IcedTea7 2.0 # Distribution: Ubuntu 11.10, package 7~b147-2.0-0ubuntu0.11.10.1 # Problematic frame: # C [liblcms2.so.2+0x121f8] cmsSaveProfileToIOhandler+0x38 # # Core dump written. Default location: /home/joshua/core or core.4978 # # An error report file with more information is saved as: # /home/joshua/hs_err_pid4978.log # # If you would like to submit a bug report, please include # instructions on how to reproduce the bug and visit: # https://bugs.launchpad.net/ubuntu/+source/openjdk-7/ # Dibatalkan (core didump) ~~~ PS When I tried to compile BugIIO.java on openjdk-6 and run it on openjdk-6, the program finishes normally (no crash). To clarify: 1. This bug affect OpenJDK 7 (7~b147-2.0-0ubuntu0.11.10.1) (tested on oneiric). 2. This bug does *not* affect OpenJDK 6 (6b23~pre11-0ubuntu1.11.10) (tested on oneiric). To manage notifications about this bug go to: https://bugs.launchpad.net/openjdk/+bug/913434/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp