Please open a new JIRA.
Is this related to your Jetty/Tomcat javaagent issues in OPENJPA-1454?
-Donald
Mark Struberg wrote:
I did a quick hack for now. I don't think it's perfect, but imho better than to
add another catch and retry ...
As I said: this works for me, but I have no clue if it is ok.
Should I open a new JIRA or reopen the 256?
txs,
strub
Index: openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ObjectValue.java
===================================================================
--- openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ObjectValue.java
(Revision 896212)
+++ openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ObjectValue.java
(Arbeitskopie)
@@ -19,6 +19,7 @@
package org.apache.openjpa.lib.conf;
import java.security.AccessController;
+import java.security.PrivilegedActionException;
import org.apache.commons.lang.ObjectUtils;
import org.apache.openjpa.lib.util.J2DoPrivHelper;
@@ -115,6 +116,21 @@
if (cl == null) {
cl = AccessController.doPrivileged(
J2DoPrivHelper.getClassLoaderAction(type));
+ if (cl == null) {
+ ClassLoader ctxLoader =
AccessController.doPrivileged(J2DoPrivHelper.getContextClassLoaderAction());
+ // TODO if ctxLoader == null use the normal cl
+
+ try {
+ @SuppressWarnings("unchecked")
+ Class clsClazz = AccessController.doPrivileged(
+ J2DoPrivHelper.getForNameAction(clsName, true,
ctxLoader));
+ cl = AccessController.doPrivileged(
+ J2DoPrivHelper.getClassLoaderAction(clsClazz));
+ }
+ catch (PrivilegedActionException pae) {
+ // we basically do nothing
+ cl = null;
+ }
+ }
if (cl == null) { // System classloader is returned as null
cl = AccessController.doPrivileged(
J2DoPrivHelper.getSystemClassLoaderAction());
--- On Tue, 1/5/10, Mark Struberg <strub...@yahoo.de> wrote:
From: Mark Struberg <strub...@yahoo.de>
Subject: reincarnation of OPENJPA-256?
To: dev@openjpa.apache.org
Date: Tuesday, January 5, 2010, 9:42 PM
Hi!
I fear I got hit by OPENJPA-256 [1].
I'm still not sure why, but in ObjectValue#newInstance for
clsName=org.apache.openjpa.util.CacheMap and type=interface
java.util.Map the SystemClassLoader is being used and I get
a java.lang.reflect.InvocationTargetException so the
workaround mentioned in the old Jira simply does not work.
I'm using OpenJPA compiled myself from Revision 896212
under jdk-1.6.0_17-b04 x86_64 and running under jetty-6.1.22
...
Caused by: java.lang.NoClassDefFoundError:
org/apache/openjpa/lib/util/SizedMap
at
java.lang.Class.getDeclaredConstructors0(Native Method)
at
java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at
java.lang.Class.getConstructor0(Class.java:2699)
at
java.lang.Class.newInstance0(Class.java:326)
at
java.lang.Class.newInstance(Class.java:308)
at
org.apache.openjpa.lib.util.J2DoPrivHelper$11.run(J2DoPrivHelper.java:368)
at
java.security.AccessController.doPrivileged(Native Method)
at
org.apache.openjpa.lib.conf.Configurations.newInstance(Configurations.java:223)
at
org.apache.openjpa.lib.conf.ObjectValue.newInstance(ObjectValue.java:124)
at
org.apache.openjpa.conf.QueryCompilationCacheValue.newInstance(QueryCompilationCacheValue.java:60)
at
org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
at
org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
at
org.apache.openjpa.conf.OpenJPAConfigurationImpl.getQueryCompilationCacheInstance(OpenJPAConfigurationImpl.java:1522)
at
org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:634)
at
org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:617)
at
org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:679)
at
org.apache.openjpa.kernel.QueryImpl.compile(QueryImpl.java:586)
at
org.apache.openjpa.persistence.EntityManagerImpl.createQuery(EntityManagerImpl.java:971)
at
org.apache.openjpa.persistence.EntityManagerImpl.createQuery(EntityManagerImpl.java:957)
at
org.apache.openjpa.persistence.EntityManagerImpl.createQuery(EntityManagerImpl.java:953)
... 90 more
Caused by: java.lang.ClassNotFoundException:
org.apache.openjpa.lib.util.SizedMap
at
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at
java.security.AccessController.doPrivileged(Native Method)
at
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at
java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at
java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
txs and LieGrue,
strub
[1] http://issues.apache.org/jira/browse/OPENJPA-256