JDK-4668557 : JRE is missing PYCC.pf color profile
  • Type: Bug
  • Component: install
  • Sub-Component: install
  • Affected Version: 1.4.0
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • OS: windows_2000
  • CPU: x86
  • Submitted: 2002-04-15
  • Updated: 2002-05-01
  • Resolved: 2002-05-01
Description

Name: gm110360			Date: 04/15/2002


FULL PRODUCT VERSION :
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)

FULL OPERATING SYSTEM VERSION :
Microsoft Windows 2000 [Version 5.00.2195]

ADDITIONAL OPERATING SYSTEMS :
Windows 98 [Version 4.10.2222]



A DESCRIPTION OF THE PROBLEM :
The Windows JRE 1.4 installer does not install the
lib\cmm\PYCC.cf color profile. This causes
IllegalArgumentExceptions when ImageIO code needs this
profile. This sounds similar to bug 4402857 which was
closed but apparently not fixed.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Install JRE, using defaults
2. Run attached application ReadWriteJPEG.java using a JPEG
with a nonstandard color profile, or just run ColorTest.java


EXPECTED VERSUS ACTUAL BEHAVIOR :
In both cases got IllegalArgumentException.
Copying PYCC.pf from JDK into C:\Program
Files\Java\j2re1.4.0\lib\cmm\PYCC.pf fixes the problem.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
Exception from ReadWriteJPEG.java:

Exception in thread "main" java.lang.IllegalArgumentException: Can't load
standard profile
        at java.awt.color.ICC_Profile.getInstance(Unknown Source)
        at java.awt.color.ColorSpace.getInstance(Unknown Source)
        at com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC(Unknown Source)
        at com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>(Unknown Source)
        at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(Unknown Source)
        at javax.imageio.ImageWriter.write(Unknown Source)
        at javax.imageio.ImageIO.write(Unknown Source)
        at javax.imageio.ImageIO.write(Unknown Source)
        at ReadWriteJPEG.main(ReadWriteJPEG.java:7)


Exception from ColorTest.java:

Exception in thread "main" java.lang.IllegalArgumentException: Can't load
standard profile
        at java.awt.color.ICC_Profile.getInstance(Unknown Source)
        at java.awt.color.ColorSpace.getInstance(Unknown Source)
        at ColorTest.main(ColorTest.java:4)


This bug can be reproduced always.

---------- BEGIN SOURCE ----------
// Here is a simpler testcase
// ColorTest.java
import java.awt.color.*;

public class ColorTest extends javax.swing.JApplet {
	public void init() {
		ColorSpace.getInstance(ColorSpace.CS_PYCC);
	}
}

HTML file

<HTML>
<BODY>
<applet code = ColorTest width=250 height=250>  
</applet> 
</BODY>
</HTML>
---------- END SOURCE ----------

CUSTOMER WORKAROUND :
Copy PYCC.pf from the JDK into the JRE installation at
C:\Program Files\Java\j2re1.4.0\lib\cmm\PYCC.pf
(Review ID: 145440) 
======================================================================

Comments
PUBLIC COMMENTS This was taken out of JRE1.2.2 to decrease JRE size. It is still included in JDK.
2004-06-10

EVALUATION I'm not really sure if this is an installer bug, or perhaps 2D. I'll try installer first. ###@###.### 2002-04-15 This was taken out of JRE 1.2.2 to avoid size increase. Inclusion of the PYCC.pf is causing 200K size increase in compressed JRE (checked in Hopper).
2002-04-15