This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 245840

Summary: java.lang.NoClassDefFoundError: sun/java2d/opengl/OGLRenderQueue$$Lambda$2
Product: profiler Reporter: Alexandr Scherbatiy <sunflower>
Component: EngineAssignee: Tomas Hurka <thurka>
Status: VERIFIED FIXED    
Severity: normal CC: jskrivanek
Priority: P1 Keywords: JDK_8, JDK_SPECIFIC, VISUALVM
Version: 8.0.1   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:
Attachments: Profiler output log
Netbeans IDE log

Description Alexandr Scherbatiy 2014-07-21 10:26:04 UTC
Product Version: NetBeans IDE Dev (Build 201407090001)
Updates: Updates available
Java: 1.8.0_20-ea; Java HotSpot(TM) 64-Bit Server VM 25.20-b22
Runtime: Java(TM) SE Runtime Environment 1.8.0_20-ea-b23
System: Mac OS X version 10.10 running on x86_64; UTF-8; en_US (nb)

I profile a simple Swing app in Memory mode and see the following profile output:
------------
***Profer debug: could not get .class file URL for a synthetic class com.sun.proxy.$Proxy1 in ClassBytesLoader.getClassFileURL
***Profer debug: could not get .class file URL for a synthetic class com.sun.proxy.$Proxy0 in ClassBytesLoader.getClassFileURL
Profiler Agent Warning: JVMTI classLoadHook: class name is null.

***Profiler agent warning: could not get .class file for a synthetic class java.lang.invoke.LambdaForm$MH/282388371 in ProfilerInterface.getClassFileBytes
java.lang.NoClassDefFoundError: sun/java2d/opengl/OGLRenderQueue$$Lambda$2
	at sun.java2d.opengl.OGLRenderQueue$$Lambda$2/1100277623.get$Lambda(Unknown Source)
	at sun.java2d.opengl.OGLRenderQueue.<init>(OGLRenderQueue.java:51)
	at sun.java2d.opengl.OGLRenderQueue.getInstance(OGLRenderQueue.java:63)
	at sun.java2d.opengl.CGLGraphicsConfig.getConfig(CGLGraphicsConfig.java:140)
	at sun.awt.CGraphicsDevice.<init>(CGraphicsDevice.java:67)
	at sun.awt.CGraphicsEnvironment.initDevices(CGraphicsEnvironment.java:163)
	at sun.awt.CGraphicsEnvironment.<init>(CGraphicsEnvironment.java:115)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:409)
	at java.lang.Class.newInstance(Class.java:437)
	at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:112)
	at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81)
	at java.awt.Window.initGC(Window.java:475)
	at java.awt.Window.init(Window.java:497)
	at java.awt.Window.<init>(Window.java:538)
	at java.awt.Frame.<init>(Frame.java:420)
	at java.awt.Frame.<init>(Frame.java:385)
	at javax.swing.JFrame.<init>(JFrame.java:181)
	at tabbedpane.JTabbedPaneHTMLTest$1.run(JTabbedPaneHTMLTest.java:27)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
	at java.awt.EventQueue.access$400(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:697)
	at java.awt.EventQueue$3.run(EventQueue.java:691)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:106)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:88)
Comment 1 Alexandr Scherbatiy 2014-07-21 10:29:08 UTC
Created attachment 148172 [details]
Profiler output log
Comment 2 Alexandr Scherbatiy 2014-07-21 10:30:40 UTC
Created attachment 148173 [details]
Netbeans IDE log
Comment 3 Jiri Skrivanek 2014-07-22 09:09:01 UTC
My steps:
- create Anagram sample project
- right-click project node and choose Profile
- select Memory|Advanced and click Run
- it prints similar messages like attached by Alexandr, fails with exception and profiled application is not started.

Exception in thread "AWT-Windows" java.lang.NoClassDefFoundError: sun/awt/windows/WToolkit$$Lambda$4
	at sun.awt.windows.WToolkit$$Lambda$4/1952287228.get$Lambda(Unknown Source)
	at sun.awt.windows.WToolkit.registerShutdownHook(WToolkit.java:275)
	at sun.awt.windows.WToolkit.run(WToolkit.java:292)
	at java.lang.Thread.run(Thread.java:745)

Product Version: NetBeans IDE Dev (Build 201407220001)
Java: 1.8.0_05; Java HotSpot(TM) 64-Bit Server VM 25.5-b02
Runtime: Java(TM) SE Runtime Environment 1.8.0_05-b13
System: Windows 7 version 6.1 running on amd64; Cp1250; en_US (nb)
Comment 4 Tomas Hurka 2014-07-22 17:30:57 UTC
The problem is caused by NoClassDefFoundError, "could not get .class file URL for a synthetic class" is just debug output and is harmless.
Comment 5 Tomas Hurka 2014-07-23 09:31:23 UTC
It looks like redefine classes incorrectly defines class sun.java2d.opengl.OGLRenderQueue$$Lambda$2 instead of the correct anonymized name sun.java2d.opengl.OGLRenderQueue$$Lambda$2/1342443276. It needs more investigation, but for now the quick fix is to avoid instrumentation of classes created by Unsafe.defineAnonymousClass().
Comment 6 Tomas Hurka 2014-07-23 10:21:51 UTC
Fixed in profiler-main

changeset:   275861:ed472a217546
user:        Tomas Hurka <thurka@netbeans.org>
date:        Wed Jul 23 12:20:39 2014 +0200
summary:     bugfix #245840, do not instrument classes created by Unsafe.defineAnonymousClass()
Comment 7 Quality Engineering 2014-07-24 02:40:41 UTC
Integrated into 'main-silver', will be available in build *201407240001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/ed472a217546
User: Tomas Hurka <thurka@netbeans.org>
Log: bugfix #245840, do not instrument classes created by Unsafe.defineAnonymousClass()