United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6961633 gui applications cause a jvm crash on windows
JDK-6961633 : gui applications cause a jvm crash on windows

Details
Type:
Bug
Submit Date:
2010-06-16
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
client-libs
OS:
windows
Sub-Component:
2d
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:

Related Reports
Relates:

Sub Tasks

Description
Attempt to launch any gui application by openjdk build results in a jvm
crash on windows platform:

bin\java -jar demo\jfc\Metalworks\Metalworks.jar

Crash happens in WToolkit.initIDs() (full error log is attached).

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x102bf6]
C  [awt.dll+0x87f07]
j  sun.awt.windows.WToolkit.initIDs()V+0
j  sun.awt.windows.WToolkit.<clinit>()V+23

It happens because SurfaceData class can not be loaded due to failure of static initializer:
 
Exception in thread "main" java.util.ServiceConfigurationError: sun.java2d.pipe.RenderingEngine: Provider sun.java2d.jules.JulesRenderingEngine not found
        at java.util.ServiceLoader.fail(ServiceLoader.java:231)
        at java.util.ServiceLoader.access$400(ServiceLoader.java:181)
        at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:367)
        at java.util.ServiceLoader$1.next(ServiceLoader.java:438)
        at sun.java2d.pipe.RenderingEngine$1.run(RenderingEngine.java:144)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.java2d.pipe.RenderingEngine.getInstance(RenderingEngine.java:120)
        at sun.java2d.pipe.LoopPipe.<clinit>(LoopPipe.java:52)
        at sun.java2d.SurfaceData.<clinit>(SurfaceData.java:400)
        at sun.awt.windows.WToolkit.initIDs(Native Method)
        at sun.awt.windows.WToolkit.<clinit>(WToolkit.java:109)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at java.awt.Toolkit$2.run(Toolkit.java:863)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:855)
        at javax.swing.UIManager.<clinit>(UIManager.java:376)
        at Metalworks.main(Metalworks.java:49)

This problem seems to be caused by the fix for CR 6307603, where platform-specific rendering engine is registered as a service in shared code.

                                    

Comments
EVALUATION

We need to update the shared one to remove the reference to jules
and create the one referencing jules in a "solaris" specific location.
Then the Makefile that copies the file needs to be updated to look
in the appropriate place.
                                     
2010-06-16



Hardware and Software, Engineered to Work Together