luehe       2005/04/29 13:04:03

  Modified:    catalina/src/share/org/apache/catalina/servlets
                        DefaultServlet.java
  Log:
  - Avoid cache lookup if
  
      trimmed.equalsIgnoreCase("WEB-INF") ||
      trimmed.equalsIgnoreCase("META-INF") ||
      trimmed.equalsIgnoreCase(localXsltFile)
  
  - Avoid NPE (by adding check for "childCacheEntry.exists")
    in the case where ProxyDirContext.lookupCache()
    swallows NamingException, in which case the "attributes" field of
    the returned "childCacheEntry" will be null, causing
  
      childCacheEntry.attributes.getContentLength()
  
    in DefaultServlet.renderXml() to throw NPE.
  
  Revision  Changes    Path
  1.35      +8 -4      
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- DefaultServlet.java       28 Apr 2005 12:30:38 -0000      1.34
  +++ DefaultServlet.java       29 Apr 2005 20:04:03 -0000      1.35
  @@ -1156,15 +1156,19 @@
   
                   NameClassPair ncPair = (NameClassPair) 
enumeration.nextElement();
                   String resourceName = ncPair.getName();
  -                CacheEntry childCacheEntry =
  -                    resources.lookupCache(cacheEntry.name + resourceName);
  -
                   String trimmed = resourceName/*.substring(trim)*/;
                   if (trimmed.equalsIgnoreCase("WEB-INF") ||
                       trimmed.equalsIgnoreCase("META-INF") ||
                       trimmed.equalsIgnoreCase(localXsltFile))
                       continue;
   
  +                CacheEntry childCacheEntry =
  +                    resources.lookupCache(cacheEntry.name + resourceName);
  +
  +                if (!childCacheEntry.exists) {
  +                    continue;
  +                }
  +
                   sb.append("<entry");
                   sb.append(" type='")
                     .append((childCacheEntry.context != null)?"dir":"file")
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to