JDK-8026941 : [TESTBUG] java.lang.ClassNotFoundException: java.lang.invoke.InvokeGeneric
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs25
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-10-21
  • Updated: 2014-01-06
  • Resolved: 2013-12-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9 Other
8Fixed 9Fixed hs25Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Description
compiler/jsr292/ConcurrentClassLoadingTest.java fails with

Some threads are still alive:
Thread-1
	java.lang.Object.wait(Native Method)
	java.lang.Thread.join(Thread.java:1224)
	java.lang.Thread.join(Thread.java:1298)
	java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:106)
	java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)
	java.lang.Shutdown.runHooks(Shutdown.java:123)
	java.lang.Shutdown.sequence(Shutdown.java:167)
	java.lang.Shutdown.exit(Shutdown.java:212)
	java.lang.Runtime.exit(Runtime.java:109)
	java.lang.System.exit(System.java:965)
	com.sun.javatest.Status.exit(Status.java:293)
	com.sun.javatest.regtest.MainWrapper$MainThreadGroup.uncaughtException(MainWrapper.java:143)
	java.lang.Thread.dispatchUncaughtException(Thread.java:1931)
----------System.err:(14/950)----------
java.lang.Error: java.lang.ClassNotFoundException: java.lang.invoke.InvokeGeneric
	at ConcurrentClassLoadingTest$Loader.run(ConcurrentClassLoadingTest.java:156)
Caused by: java.lang.ClassNotFoundException: java.lang.invoke.InvokeGeneric
	at java.net.URLClassLoader$1.run(URLClassLoader.java:359)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:259)
	at ConcurrentClassLoadingTest$Loader.run(ConcurrentClassLoadingTest.java:153)
STATUS:Failed.`main' threw exception: java.lang.Error: java.lang.ClassNotFoundException: java.lang.invoke.InvokeGeneric
result: Failed. Execution failed: `main' threw exception: java.lang.Error: java.lang.ClassNotFoundException: java.lang.invoke.InvokeGeneric

Comments
Release team: Approved for fixing
06-12-2013

Suggested fix: diff -r 55dd6e77b399 test/compiler/jsr292/ConcurrentClassLoadingTest.java --- a/test/compiler/jsr292/ConcurrentClassLoadingTest.java Fri Nov 22 15:26:37 2013 +0100 +++ b/test/compiler/jsr292/ConcurrentClassLoadingTest.java Tue Dec 03 11:46:38 2013 -0800 @@ -166,7 +166,6 @@ public class ConcurrentClassLoadingTest "java.lang.invoke.DirectMethodHandle", "java.lang.invoke.InnerClassLambdaMetafactory", "java.lang.invoke.InvokeDynamic", - "java.lang.invoke.InvokeGeneric", "java.lang.invoke.InvokerBytecodeGenerator", "java.lang.invoke.Invokers", "java.lang.invoke.LambdaConversionException",
03-12-2013

ConcurrentClassLoadingTest has a hardcoded list of classes it tries to load: final static String[] classNames = { "java.lang.invoke.AbstractValidatingLambdaMetafactory", "java.lang.invoke.BoundMethodHandle", "java.lang.invoke.CallSite", "java.lang.invoke.ConstantCallSite", "java.lang.invoke.DirectMethodHandle", "java.lang.invoke.InnerClassLambdaMetafactory", "java.lang.invoke.InvokeDynamic", "java.lang.invoke.InvokeGeneric", "java.lang.invoke.InvokerBytecodeGenerator", "java.lang.invoke.Invokers", "java.lang.invoke.LambdaConversionException", "java.lang.invoke.LambdaForm", "java.lang.invoke.LambdaMetafactory", "java.lang.invoke.MagicLambdaImpl", "java.lang.invoke.MemberName", "java.lang.invoke.MethodHandle", "java.lang.invoke.MethodHandleImpl", "java.lang.invoke.MethodHandleInfo", "java.lang.invoke.MethodHandleNatives", "java.lang.invoke.MethodHandleProxies", "java.lang.invoke.MethodHandles", "java.lang.invoke.MethodHandleStatics", "java.lang.invoke.MethodType", "java.lang.invoke.MethodTypeForm", "java.lang.invoke.MutableCallSite", "java.lang.invoke.SerializedLambda", "java.lang.invoke.SimpleMethodHandle", "java.lang.invoke.SwitchPoint", "java.lang.invoke.TypeConvertingMethodAdapter", "java.lang.invoke.VolatileCallSite", "java.lang.invoke.WrongMethodTypeException" }; JDK-8024761 removed java.lang.invoke.InvokeGeneric. I think we should find a better way than hardcoding class names.
21-10-2013

RULE compiler/jsr292/ConcurrentClassLoadingTest.java Exception java.lang.ClassNotFoundException: java.lang.invoke.InvokeGeneric RULE compiler/jsr292/ConcurrentClassLoadingTest.java Exception java.lang.Error: java.lang.ClassNotFoundException: java.lang.invoke.InvokeGeneric
21-10-2013