Furthermore I've reverted back to 1.6 JDK with this version of openjpa and it still works. The difference with jdk 1.6 is that the Instrumentation call and thus recursion that happens in 1.7 does not occur at that time and the define completes.
The stack trace in JDK up until the first defineClass1 is as follows after which execution continues to the next line without a recursive call: Launcher$AppClassLoader(ClassLoader).defineClassCond(String, byte[], int, int, ProtectionDomain, boolean) line: 631 Launcher$AppClassLoader(ClassLoader).defineClass(String, byte[], int, int, ProtectionDomain) line: 615 Launcher$AppClassLoader(SecureClassLoader).defineClass(String, byte[], int, int, CodeSource) line: 141 Launcher$AppClassLoader(URLClassLoader).defineClass(String, Resource, boolean) line: 283 URLClassLoader.access$000(URLClassLoader, String, Resource, boolean) line: 58 URLClassLoader$1.run() line: 197 AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method] Launcher$AppClassLoader(URLClassLoader).findClass(String) line: 190 Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: 306 Launcher$AppClassLoader.loadClass(String, boolean) line: 301 Launcher$AppClassLoader(ClassLoader).loadClass(String) line: 247 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 DBDictionaryFactory.newDBDictionary(JDBCConfiguration, DataSource, String) line: 102 -- View this message in context: http://openjpa.208410.n2.nabble.com/JDK-1-7-seems-to-be-causing-an-issue-with-latest-snapshot-tp7581417p7584433.html Sent from the OpenJPA Users mailing list archive at Nabble.com.