[OpenJDK 2D-Dev] 6523398: sun.java2d.cmm.lcms.LCMS.setTagData

Keith Seitz keiths at redhat.com
Mon Apr 7 20:38:35 UTC 2008


I've been working on fixing this bug, and while it is clear that LCMS 
was never written to do this, it can be made to work. I've got a patch 
that passes the JCK tests in this area.

While writing jtreg tests for this, though, I've stumbled across 
something odd, and I was hoping that someone on this list with more 
knowledge about ICC profiles would help me. The ICC specification 
(ICC.1:2004-10) states:

"All tagged element data, including the last, shall be padded by no more 
than three following pad bytes to reach a 4-byte boundary"


"This implies that the length must be a multiple of four"

However, if one looks at GRAY.pf supplied with OpenJDK, it is only 554 
bytes long, which is NOT a multiple of four. Dumping the contents of the 
file and parsing by hand, I see that the last tagged element data in 
this file is (all other data is properly padded):

63 75 72 76 00 00 00 00 00 00 00 01 01 00

This is clearly not padded to a four-byte boundary. Am I 
misunderstanding something or is this a known problem? [I have not 
investigated the cause of this: it could simply be a bug in the profile 
or it could be a more serious LCMS bug with padding the last tagged 
element data.]


More information about the 2d-dev mailing list