You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2001/01/14 20:51:01 UTC

cvs commit: jakarta-tomcat-4.1/catalina/src/share/org/apache/naming/resources FileDirContext.java ProxyDirContext.java

remm        01/01/14 11:51:01

  Modified:    catalina/src/share/org/apache/naming/resources
                        FileDirContext.java ProxyDirContext.java
  Log:
  - Added some extra checks to prevent exceptions when trying to list contents
    of unreadable directories.
  - Fix bug with type wrapping in the proxy context when doing a lookup.
  
  Revision  Changes    Path
  1.5       +8 -4      jakarta-tomcat-4.1/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.1/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FileDirContext.java	2001/01/13 21:17:05	1.4
  +++ FileDirContext.java	2001/01/14 19:51:00	1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.1/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v 1.4 2001/01/13 21:17:05 remm Exp $
  - * $Revision: 1.4 $
  - * $Date: 2001/01/13 21:17:05 $
  + * $Header: /home/cvs/jakarta-tomcat-4.1/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v 1.5 2001/01/14 19:51:00 remm Exp $
  + * $Revision: 1.5 $
  + * $Date: 2001/01/14 19:51:00 $
    *
    * ====================================================================
    *
  @@ -98,7 +98,7 @@
    * Filesystem Directory Context implementation helper class.
    *
    * @author Remy Maucherat
  - * @version $Revision: 1.4 $ $Date: 2001/01/13 21:17:05 $
  + * @version $Revision: 1.5 $ $Date: 2001/01/14 19:51:00 $
    */
   
   public class FileDirContext extends BaseDirContext {
  @@ -884,7 +884,11 @@
       protected Vector list(File file) {
   
           Vector entries = new Vector();
  +        if (!file.isDirectory())
  +            return entries;
           String[] names = file.list();
  +        if (names == null)
  +            return entries;
           NamingEntry entry = null;
   
           for (int i = 0; i < names.length; i++) {
  
  
  
  1.3       +13 -6     jakarta-tomcat-4.1/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java
  
  Index: ProxyDirContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.1/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ProxyDirContext.java	2001/01/13 21:19:12	1.2
  +++ ProxyDirContext.java	2001/01/14 19:51:00	1.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.1/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java,v 1.2 2001/01/13 21:19:12 remm Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/01/13 21:19:12 $
  + * $Header: /home/cvs/jakarta-tomcat-4.1/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java,v 1.3 2001/01/14 19:51:00 remm Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/01/14 19:51:00 $
    *
    * ====================================================================
    *
  @@ -66,6 +66,7 @@
   
   import java.util.Hashtable;
   import java.io.InputStream;
  +import java.io.ByteArrayInputStream;
   import javax.naming.Context;
   import javax.naming.Name;
   import javax.naming.NameParser;
  @@ -82,7 +83,7 @@
    * Proxy Directory Context implementation.
    *
    * @author Remy Maucherat
  - * @version $Revision: 1.2 $ $Date: 2001/01/13 21:19:12 $
  + * @version $Revision: 1.3 $ $Date: 2001/01/14 19:51:00 $
    */
   
   public class ProxyDirContext implements DirContext {
  @@ -164,10 +165,16 @@
       public Object lookup(String name)
           throws NamingException {
           Object object = dirContext.lookup(parseName(name));
  -        if (object instanceof InputStream)
  +        if (object instanceof InputStream) {
               return new Resource((InputStream) object);
  -        else
  +        } if (object instanceof DirContext) {
               return object;
  +        } if (object instanceof Resource) {
  +            return object;
  +        } else {
  +            return new Resource(new ByteArrayInputStream
  +                (object.toString().getBytes()));
  +        }
       }