> 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 For a point of reference, I believe this all works on IBM JDK 1.6 AND 1.7
On Tue, Jul 16, 2013 at 5:19 PM, garpinc <garp...@yahoo.com> wrote: > 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. > -- *Rick Curtis*