Author: markt
Date: Wed Jan 14 16:26:00 2009
New Revision: 734579
URL: http://svn.apache.org/viewvc?rev=734579&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=37458
Correct sync issue that leads to NPE in rare circumstances
Patch provided by Konstantin Kolinko
Modified:
tomcat/tc6.0.x/trunk/STATUS.txt
tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=734579&r1=734578&r2=734579&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Wed Jan 14 16:26:00 2009
@@ -158,13 +158,6 @@
markt - TCK passes
-1:
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=37458
- Correct sync issue that leads to NPE in rare circumstances
- Patch provided by Konstantin Kolinko
- http://svn.apache.org/viewvc?rev=730735&view=rev
- +1: markt, fhanik, funkman
- -1:
-
* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=46471
Use jar url and tag file path to uniquely ID a tag file to prevent naming
clashes
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=734579&r1=734578&r2=734579&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
Wed Jan 14 16:26:00 2009
@@ -1793,7 +1793,11 @@
return clazz;
synchronized (this) {
- if (entry.binaryContent == null && entry.loadedClass == null)
+ clazz = entry.loadedClass;
+ if (clazz != null)
+ return clazz;
+
+ if (entry.binaryContent == null)
throw new ClassNotFoundException(name);
// Looking up the package
@@ -1842,26 +1846,22 @@
}
- if (entry.loadedClass == null) {
- try {
- clazz = defineClass(name, entry.binaryContent, 0,
- entry.binaryContent.length,
- new CodeSource(entry.codeBase,
entry.certificates));
- } catch (UnsupportedClassVersionError ucve) {
- throw new UnsupportedClassVersionError(
- ucve.getLocalizedMessage() + " " +
- sm.getString("webappClassLoader.wrongVersion",
- name));
- }
- entry.loadedClass = clazz;
- entry.binaryContent = null;
- entry.source = null;
- entry.codeBase = null;
- entry.manifest = null;
- entry.certificates = null;
- } else {
- clazz = entry.loadedClass;
- }
+ try {
+ clazz = defineClass(name, entry.binaryContent, 0,
+ entry.binaryContent.length,
+ new CodeSource(entry.codeBase, entry.certificates));
+ } catch (UnsupportedClassVersionError ucve) {
+ throw new UnsupportedClassVersionError(
+ ucve.getLocalizedMessage() + " " +
+ sm.getString("webappClassLoader.wrongVersion",
+ name));
+ }
+ entry.loadedClass = clazz;
+ entry.binaryContent = null;
+ entry.source = null;
+ entry.codeBase = null;
+ entry.manifest = null;
+ entry.certificates = null;
}
return clazz;
Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=734579&r1=734578&r2=734579&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Wed Jan 14 16:26:00 2009
@@ -36,6 +36,10 @@
<subsection name="Catalina">
<changelog>
<fix>
+ <bug>37458</bug>: Correct sync issue that leads to NPE in rare
+ circumstances. Patch provided by Konstantin Kolinko. (markt)
+ </fix>
+ <fix>
<bug>42747</bug>: Ensure context.xml takes effect on first deployment
for WAR and DIR deployments. context.xml is now copied to
CATALINA_BASE/<engine name>/<host name> for DIR as well as
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]