You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/11/07 16:42:16 UTC

svn commit: r1539688 - /tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java

Author: markt
Date: Thu Nov  7 15:42:15 2013
New Revision: 1539688

URL: http://svn.apache.org/r1539688
Log:
Testing the resources refactoring with Atlassian Jira
Now a single entry in resourceEntries is used for classes, retain the URL so getResourceAsStream() still works after the class has been defined

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=1539688&r1=1539687&r2=1539688&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Thu Nov  7 15:42:15 2013
@@ -2409,12 +2409,15 @@ public class WebappClassLoader extends U
                         sm.getString("webappClassLoader.wrongVersion",
                                 name));
             }
+            // Now the class has been defined, clear the elements of the local
+            // resource cache that are no longer required.
             entry.loadedClass = clazz;
             entry.binaryContent = null;
-            entry.source = null;
             entry.codeBase = null;
             entry.manifest = null;
             entry.certificates = null;
+            // Retain entry.source in case of a getResourceAsStream() call on
+            // the class file after the class has been defined.
         }
 
         return clazz;
@@ -2599,7 +2602,7 @@ public class WebappClassLoader extends U
         if (entry != null) {
             if (entry.binaryContent != null)
                 return new ByteArrayInputStream(entry.binaryContent);
-            else {
+            else if (entry.source != null) {
                 try {
                     return entry.source.openStream();
                 } catch (IOException ioe) {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org