-
Enhancement
-
Resolution: Fixed
-
P3
-
6
-
b01
-
generic
-
generic
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2172112 | 7 | Andrew Brygin | P3 | Closed | Fixed | b54 |
Greedy creation of color profiles means that profile data files loaded and CMM library is initialized.
JPEG images without embedded color profiles are read without performing color conversion
and in these cases CMM library is not needed. We should be avoiding extra work on startup
(and this also helps to loose dependencies between kernel bundles and in the future JDK7 modules)
Here is sample stacktrace:
java.lang.Exception: CMM!
at sun.awt.color.CMM.<clinit>(CMM.java:114)
at java.awt.color.ICC_Profile.activateDeferredProfile(ICC_Profile.java:1072)
at java.awt.color.ICC_Profile$1.activate(ICC_Profile.java:723)
at sun.awt.color.ProfileDeferralMgr.activateProfiles(ProfileDeferralMgr.java:75)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:756)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:976)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:941)
at java.awt.color.ICC_Profile$2.run(ICC_Profile.java:892)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.color.ICC_Profile.getStandardProfile(ICC_Profile.java:887)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:858)
at java.awt.color.ColorSpace.getInstance(ColorSpace.java:315)
at javax.imageio.ImageTypeSpecifier$Grayscale.<init>(ImageTypeSpecifier.java:587)
at javax.imageio.ImageTypeSpecifier.createGrayscale(ImageTypeSpecifier.java:668)
at javax.imageio.ImageTypeSpecifier.createSpecifier(ImageTypeSpecifier.java:1184)
at javax.imageio.ImageTypeSpecifier.getSpecifier(ImageTypeSpecifier.java:1101)
at javax.imageio.ImageTypeSpecifier.createFromBufferedImageType(ImageTypeSpecifier.java:884)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.<clinit>(JPEGImageReader.java:208)
at com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi.createReaderInstance(JPEGImageReaderSpi.java:67)
at javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:296)
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:503)
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:487)
JPEG images without embedded color profiles are read without performing color conversion
and in these cases CMM library is not needed. We should be avoiding extra work on startup
(and this also helps to loose dependencies between kernel bundles and in the future JDK7 modules)
Here is sample stacktrace:
java.lang.Exception: CMM!
at sun.awt.color.CMM.<clinit>(CMM.java:114)
at java.awt.color.ICC_Profile.activateDeferredProfile(ICC_Profile.java:1072)
at java.awt.color.ICC_Profile$1.activate(ICC_Profile.java:723)
at sun.awt.color.ProfileDeferralMgr.activateProfiles(ProfileDeferralMgr.java:75)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:756)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:976)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:941)
at java.awt.color.ICC_Profile$2.run(ICC_Profile.java:892)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.color.ICC_Profile.getStandardProfile(ICC_Profile.java:887)
at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:858)
at java.awt.color.ColorSpace.getInstance(ColorSpace.java:315)
at javax.imageio.ImageTypeSpecifier$Grayscale.<init>(ImageTypeSpecifier.java:587)
at javax.imageio.ImageTypeSpecifier.createGrayscale(ImageTypeSpecifier.java:668)
at javax.imageio.ImageTypeSpecifier.createSpecifier(ImageTypeSpecifier.java:1184)
at javax.imageio.ImageTypeSpecifier.getSpecifier(ImageTypeSpecifier.java:1101)
at javax.imageio.ImageTypeSpecifier.createFromBufferedImageType(ImageTypeSpecifier.java:884)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.<clinit>(JPEGImageReader.java:208)
at com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi.createReaderInstance(JPEGImageReaderSpi.java:67)
at javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:296)
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:503)
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:487)
- backported by
-
JDK-2172112 JpegImageReader is too greedy creating color profiles
- Closed
- relates to
-
JDK-6986863 ProfileDeferralMgr throwing ConcurrentModificationException
- Resolved
-
JDK-8256321 Some "inactive" color profiles use the wrong profile class
- Resolved
-
JDK-7021417 closed/sun/java2d/cmm/StubCMMShellTest.sh test failure against jdk7
- Closed
-
JDK-8254737 The sun.java2d.cmm.ProfileDeferralMgr class is not thread safe
- Closed