+1 for that...
Peter
Am 11.12.2007 um 01:53 schrieb Filip Hanik - Dev Lists:
if String objects are kept in a constants pool, then one would
synchronized (name) {
clazz = super.findClass(name);
}
to allow concurrent loading of different classes,
Filip
[EMAIL PROTECTED] wrote:
Author: markt
Date: Mon Dec 10 14:24:40 2007
New Revision: 603074
URL: http://svn.apache.org/viewvc?rev=603074&view=rev
Log:
Fix bug 44041. A small sync is required to prevent attempts to
load the same class twice.
Modified:
tomcat/trunk/java/org/apache/catalina/loader/
WebappClassLoader.java
Modified: tomcat/trunk/java/org/apache/catalina/loader/
WebappClassLoader.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/
catalina/loader/WebappClassLoader.java?
rev=603074&r1=603073&r2=603074&view=diff
=====================================================================
=========
--- tomcat/trunk/java/org/apache/catalina/loader/
WebappClassLoader.java (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/
WebappClassLoader.java Mon Dec 10 14:24:40 2007
@@ -167,6 +167,11 @@
*/
boolean antiJARLocking = false; + /**
+ * Lock to prevent attempts to load duplicate classes from
external
+ * repositories.
+ */
+ private Object lock = new Object();
//
-----------------------------------------------------------
Constructors
@@ -883,7 +888,9 @@
}
if ((clazz == null) && hasExternalRepositories) {
try {
- clazz = super.findClass(name);
+ synchronized (lock) {
+ clazz = super.findClass(name);
+ }
} catch(AccessControlException ace) {
throw new ClassNotFoundException(name, ace);
} catch (RuntimeException e) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]