Ok I've found exactly where openjpa operates differently in JDK 1.6 and JDK 1.7
Either: 1) jdk 1.7 has a bug OR 2) openjpa utilized functionality that was in 1.6 but was a bug fix in 1.7 and hence openjpa can not depend on the previous behavior Here is the stack trace in 1.6 where ClassCircularityError is raised and later caught in PCClassFileTransformer.needsEnhance as a Linkage error on line 207 (trunk): org.eclipse.jdt.internal.junit.runner.RemoteTestRunner at localhost:53304 Thread [main] (Suspended (breakpoint at line 36 in LinkageError)) owns: Launcher$AppClassLoader (id=1166) ClassCircularityError(LinkageError).<init>(String) line: 36 ClassCircularityError.<init>(String) line: 32 Class<T>.forName0(String, boolean, ClassLoader) line: not available [native method] Class<T>.forName(String, boolean, ClassLoader) line: 249 TemporaryClassLoader.loadClass(String, boolean) line: 78 TemporaryClassLoader.loadClass(String) line: 44 Class<T>.forName0(String, boolean, ClassLoader) line: not available [native method] Class<T>.forName(String, boolean, ClassLoader) line: 249 PCClassFileTransformer.needsEnhance(String, Class, byte[]) line: 198 PCClassFileTransformer.transform0(String, Class, byte[]) line: 139 PCClassFileTransformer.transform(ClassLoader, String, Class, ProtectionDomain, byte[]) line: 126 TransformerManager.transform(ClassLoader, String, Class, ProtectionDomain, byte[]) line: 169 InstrumentationImpl.transform(ClassLoader, String, Class, ProtectionDomain, byte[], boolean) line: 365 ClassLoader.defineClass1(String, byte[], int, int, ProtectionDomain, String, boolean) line: not available [native method] In JDK 1.7 the error is not raised and hence not caught and if you step into the forName0 you'll instead end up a the following stack position: org.eclipse.jdt.internal.junit.runner.RemoteTestRunner at localhost:53419 Thread [main] (Suspended) owns: Object (id=4827) String.lastIndexOf(int) line: 1591 Launcher$AppClassLoader.loadClass(String, boolean) line: 301 Launcher$AppClassLoader(ClassLoader).loadClass(String) line: 357 Class<T>.forName0(String, boolean, ClassLoader) line: not available [native method] Class<T>.forName(String, boolean, ClassLoader) line: 270 TemporaryClassLoader.loadClass(String, boolean) line: 78 TemporaryClassLoader.loadClass(String) line: 44 Class<T>.forName0(String, boolean, ClassLoader) line: not available [native method] Class<T>.forName(String, boolean, ClassLoader) line: 270 PCClassFileTransformer.needsEnhance(String, Class, byte[]) line: 198 PCClassFileTransformer.transform0(String, Class, byte[]) line: 139 PCClassFileTransformer.transform(ClassLoader, String, Class, ProtectionDomain, byte[]) line: 126 TransformerManager.transform(ClassLoader, String, Class, ProtectionDomain, byte[]) line: 188 InstrumentationImpl.transform(ClassLoader, String, Class, ProtectionDomain, byte[], boolean) line: 424 ClassLoader.defineClass1(String, byte[], int, int, ProtectionDomain, String) line: not available [native method] -- View this message in context: http://openjpa.208410.n2.nabble.com/JDK-1-7-seems-to-be-causing-an-issue-with-latest-snapshot-tp7581417p7584443.html Sent from the OpenJPA Users mailing list archive at Nabble.com.