Looks to me that PCClassFileTransformer is clicking off a second defineClass before the first define class is complete. See the code beginning with "*******". I would seem that you can't enhance a class that hasn't been defined yet and hence this needs to happen at a later time after the define.
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner at localhost:64816 Thread [main] (Suspended) owns: Vector<E> (id=12323) owns: Object (id=12288) Vector<E>.addElement(E) line: 615 Launcher$AppClassLoader(ClassLoader).addClass(Class) line: 263 *********ClassLoader.defineClass1(String, byte[], int, int, ProtectionDomain, String) line: not available [native method] Launcher$AppClassLoader(ClassLoader).defineClass(String, byte[], int, int, ProtectionDomain) line: 792 Launcher$AppClassLoader(SecureClassLoader).defineClass(String, byte[], int, int, CodeSource) line: 142 Launcher$AppClassLoader(URLClassLoader).defineClass(String, Resource) line: 449 URLClassLoader.access$100(URLClassLoader, String, Resource) line: 71 URLClassLoader$1.run() line: 361 URLClassLoader$1.run() line: 355 AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method] Launcher$AppClassLoader(URLClassLoader).findClass(String) line: 354 Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: 424 Launcher$AppClassLoader.loadClass(String, boolean) line: 308 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] Launcher$AppClassLoader(ClassLoader).defineClass(String, byte[], int, int, ProtectionDomain) line: 792 Launcher$AppClassLoader(SecureClassLoader).defineClass(String, byte[], int, int, CodeSource) line: 142 Launcher$AppClassLoader(URLClassLoader).defineClass(String, Resource) line: 449 URLClassLoader.access$100(URLClassLoader, String, Resource) line: 71 URLClassLoader$1.run() line: 361 URLClassLoader$1.run() line: 355 AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method] Launcher$AppClassLoader(URLClassLoader).findClass(String) line: 354 Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: 424 Launcher$AppClassLoader.loadClass(String, boolean) line: 308 Launcher$AppClassLoader(ClassLoader).loadClass(String) line: 357 H2Dictionary(DBDictionary).configureNamingRules() line: 520 H2Dictionary(DBDictionary).setConfiguration(Configuration) line: 4672 Configurations.configureInstance(Object, Configuration, Properties, String) line: 504 Configurations.configureInstance(Object, Configuration, String, String) line: 461 DBDictionaryFactory.newDBDictionary(JDBCConfiguration, String, String, Connection) line: 201 -- View this message in context: http://openjpa.208410.n2.nabble.com/JDK-1-7-seems-to-be-causing-an-issue-with-latest-snapshot-tp7581417p7584432.html Sent from the OpenJPA Users mailing list archive at Nabble.com.