Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6630475
Votes 0
Synopsis Remove dependency between ColorModel/ColorSpace and cmm.dll
Category java:classes_2d
Reported Against
Release Fixed 6u10(b09)
State 10-Fix Delivered, Verified, request for enhancement
Priority: 2-High
Related Bugs
Submit Date 15-NOV-2007
Description
While researching bundle dependencies for jkernel i found out that cmm.dll may be loaded 
due to access to its auxilary public static fields.

Here is related stack trace:

       at sun.awt.color.CMM.<clinit>(CMM.java:109)
       at java.awt.image.ColorModel.isLinearRGBspace(ColorModel.java:1685)
       at java.awt.image.DirectColorModel.<init>(DirectColorModel.java:221)
       at java.awt.image.BufferedImage.<init>(BufferedImage.java:328)
       at sun.java2d.loops.GraphicsPrimitive.convertFrom(GraphicsPrimitive.java:537)
       at sun.java2d.d3d.D3DGeneralBlit.Blit(D3DBlitLoops.java:712)
       at sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:927)
       at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:550)
       at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:73)
       at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:998)
       at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:178)
       at sun.java2d.SunGraphics2D.copyImage(SunGraphics2D.java:2918)
       at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3056)
       at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3010)
       at javax.swing.plaf.metal.MetalBumps.paintIcon(MetalBumps.java:123) 

ColorModel.isLinearRGBspace() has following code:

   static boolean isLinearRGBspace(ColorSpace cs) {
       // Note: CMM.LINEAR_RGBspace will be null if the linear
       // RGB space has not been created yet.
       return (cs == CMM.LINEAR_RGBspace);
   }

If none of CMM methods are used then cmm.dll should not be loaded.
Posted Date : 2007-11-15 19:12:50.0
Work Around
N/A
Evaluation
CMM class has 2 fields that are used as placeholders to share information between 
ColorModel and colorSpace classess. They are used in very few places of the code.
Access to these fields requires static initialization to be performed that loads dll. 

Porposed solution is to created nested public static class and move these variables 
there or move them to separate class.
Posted Date : 2007-11-15 19:12:50.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang