You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mi...@apache.org on 2009/11/18 00:09:57 UTC
svn commit: r881613 -
/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
Author: mikedd
Date: Tue Nov 17 23:09:57 2009
New Revision: 881613
URL: http://svn.apache.org/viewvc?rev=881613&view=rev
Log:
OPENJPA-1384:
Try current classloader when loading DBDictionary.
Submitted By: B.J. Reed
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java?rev=881613&r1=881612&r2=881613&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java Tue Nov 17 23:09:57 2009
@@ -154,6 +154,18 @@
DBDictionary.class)));
dict = (DBDictionary) AccessController.doPrivileged(
J2DoPrivHelper.newInstanceAction(c));
+ } catch (ClassNotFoundException cnfe) {
+ // if the dictionary was not found, make another attempt
+ // at loading the dictionary using the current thread.
+ try {
+ Class c = Thread.currentThread().getContextClassLoader().loadClass(dclass);
+ dict = (DBDictionary) AccessController.doPrivileged(
+ J2DoPrivHelper.newInstanceAction(c));
+ } catch (Exception e) {
+ if (e instanceof PrivilegedActionException)
+ e = ((PrivilegedActionException) e).getException();
+ throw new UserException(e).setFatal(true);
+ }
} catch (Exception e) {
if (e instanceof PrivilegedActionException)
e = ((PrivilegedActionException) e).getException();