FULL PRODUCT VERSION :
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux Ubuntu-1004-lucid-64-minimal 2.6.32-23-server #37-Ubuntu SMP Fri Jun 11 09:11:11 UTC 2010 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
The following code:
BufferedImage image = null;
try {
image = ImageIO.read(imageUrl);
} catch (Exception e) {
log.error("Unable to read image file: " + fileName);
e.printStackTrace();
}
occasionally throws an exception out of the blue:
2010-09-22 19:48:51,596 ERROR [com.mypackage.Renderer] (pool-23-thread-1) Unable to read image file: /image.jpg
2010-09-22 19:48:51,596 ERROR [STDERR] (pool-23-thread-1) java.util.ConcurrentModificationException
2010-09-22 19:48:51,596 ERROR [STDERR] (pool-23-thread-1) at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at java.util.AbstractList$Itr.next(AbstractList.java:343)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at sun.awt.color.ProfileDeferralMgr.activateProfiles(ProfileDeferralMgr.java:75)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:756)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at com.sun.imageio.plugins.jpeg.JPEGImageReader.setImageData(JPEGImageReader.java:565)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(JPEGImageReader.java:517)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(JPEGImageReader.java:272)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(JPEGImageReader.java:394)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(JPEGImageReader.java:510)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:913)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:897)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at javax.imageio.ImageIO.read(ImageIO.java:1422)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at javax.imageio.ImageIO.read(ImageIO.java:1374)
2010-09-22 19:48:51,597 ERROR [STDERR] (pool-23-thread-1) at com.mypackage.Renderer.readImage(Renderer.java:121)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Cannot reproduce it on second Ubuntu 32bit machine.
Behaviour seems to be less frequent when I run the JVM with less (!) memory in -Xmx
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Load the buffered image (same code works fine many times, but not always)
ACTUAL -
Exception is thrown from deep below
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.util.ConcurrentModificationException
REPRODUCIBILITY :
This bug can be reproduced often.