You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by jg...@apache.org on 2011/09/27 21:00:33 UTC
svn commit: r1176527 - in /openjpa/branches/1.0.x/openjpa-lib/src/main:
java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
resources/org/apache/openjpa/lib/meta/localizer.properties
Author: jgrassel
Date: Tue Sep 27 19:00:33 2011
New Revision: 1176527
URL: http://svn.apache.org/viewvc?rev=1176527&view=rev
Log:
Revert 'OPENJPA-1993:Deadlock Potential with ORM XML Processing' revision 1160278
Modified:
openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties
Modified: openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
URL: http://svn.apache.org/viewvc/openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java?rev=1176527&r1=1176526&r2=1176527&view=diff
==============================================================================
--- openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java (original)
+++ openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java Tue Sep 27 19:00:33 2011
@@ -361,19 +361,14 @@ public abstract class XMLMetaDataParser
_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
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 {
Modified: openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties
URL: http://svn.apache.org/viewvc/openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties?rev=1176527&r1=1176526&r2=1176527&view=diff
==============================================================================
--- openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties (original)
+++ openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties Tue Sep 27 19:00:33 2011
@@ -25,10 +25,6 @@ cant-diff-elems: Unable to differentiate
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 \
Re: svn commit: r1176527 - in /openjpa/branches/1.0.x/openjpa-lib/src/main:
java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java resources/org/apache/openjpa/lib/meta/localizer.properties
Posted by Rick Curtis <cu...@gmail.com>.
+ if (_log != null && _log.isTraceEnabled()) {
+
_log.trace(_loc.get("restore-contextclassloader-failed"));
Shouldn't you also trace the unexpected exception? If this does really
happen, we'll want to know why it failed.
Thanks,
Rick
On Tue, Sep 27, 2011 at 2:00 PM, <jg...@apache.org> wrote:
> Author: jgrassel
> Date: Tue Sep 27 19:00:33 2011
> New Revision: 1176527
>
> URL: http://svn.apache.org/viewvc?rev=1176527&view=rev
> Log:
> Revert 'OPENJPA-1993:Deadlock Potential with ORM XML Processing' revision
> 1160278
>
> Modified:
>
> openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
>
> openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties
>
> Modified:
> openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
> URL:
> http://svn.apache.org/viewvc/openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java?rev=1176527&r1=1176526&r2=1176527&view=diff
>
> ==============================================================================
> ---
> openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
> (original)
> +++
> openjpa/branches/1.0.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
> Tue Sep 27 19:00:33 2011
> @@ -361,19 +361,14 @@ public abstract class XMLMetaDataParser
> _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
> 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 {
>
> Modified:
> openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties
> URL:
> http://svn.apache.org/viewvc/openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties?rev=1176527&r1=1176526&r2=1176527&view=diff
>
> ==============================================================================
> ---
> openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties
> (original)
> +++
> openjpa/branches/1.0.x/openjpa-lib/src/main/resources/org/apache/openjpa/lib/meta/localizer.properties
> Tue Sep 27 19:00:33 2011
> @@ -25,10 +25,6 @@ cant-diff-elems: Unable to differentiate
> 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 \
>
>
>
--
*Rick Curtis*