Revert 'OPENJPA-1993:Deadlock Potential with ORM XML Processing' revision 1160278

git-svn-id: https://svn.apache.org/repos/asf/openjpa/branches/1.0.x@1176527 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jody Grassel 2011-09-27 19:00:33 +00:00
parent 8a81ee2d25
commit 43117f9e4d
2 changed files with 9 additions and 20 deletions

View File

@ -361,19 +361,14 @@ public abstract class XMLMetaDataParser extends DefaultHandler
_sourceName = sourceName;
SAXParser parser = null;
ClassLoader oldLoader = null;
ClassLoader overrideLoader = null;
try {
if (_overrideContextClassloader == true) {
oldLoader = (ClassLoader) AccessController.doPrivileged(
J2DoPrivHelper.getContextClassLoaderAction());
overrideLoader = XMLMetaDataParser.class.getClassLoader();
AccessController.doPrivileged(J2DoPrivHelper.setContextClassLoaderAction(overrideLoader));
if (_log != null && _log.isTraceEnabled()) {
_log.trace(_loc.get("override-contextclassloader-begin", oldLoader, overrideLoader));
}
AccessController.doPrivileged(J2DoPrivHelper.setContextClassLoaderAction(
XMLMetaDataParser.class.getClassLoader()));
}
parser = XMLFactory.getSAXParser(validating, true);
@ -407,18 +402,16 @@ public abstract class XMLMetaDataParser extends DefaultHandler
JavaVersions.initCause(ioe, se);
throw ioe;
} finally {
if (_overrideContextClassloader == true) {
if (_overrideContextClassloader == true && oldLoader != null) {
// Restore the old ContextClassloader
try {
if (_log != null && _log.isTraceEnabled()) {
_log.trace(_loc.get("override-contextclassloader-end", overrideLoader, oldLoader));
}
AccessController.doPrivileged(J2DoPrivHelper.setContextClassLoaderAction(oldLoader));
} catch (Throwable t) {
if (_log != null && _log.isWarnEnabled()) {
_log.warn(_loc.get("restore-contextclassloader-failed"));
if (_log != null && _log.isTraceEnabled()) {
_log.trace(_loc.get("restore-contextclassloader-failed"));
}
}
}
}
}
} finally {

View File

@ -25,10 +25,6 @@ cant-diff-elems: Unable to differentiate between given package and class \
elements for class arg parsing. No element can be a complete prefix of \
another.
class-arg: Error extracting class information from "{0}".
override-contextclassloader-begin: Overriding thread context classloader \
from "{0}" to "{1}".
override-contextclassloader-end: Restoring thread context classloader \
from "{0}" to "{1}".
restore-contextclassloader-failed: An error occurred restoring the Thread's \
context classloader.
parse-error: An error was encountered while parsing element "{0}". Make sure \