adammurdoch    2003/03/13 19:48:14

  Modified:    vfs/src/java/org/apache/commons/vfs Resources.properties
               vfs/src/java/org/apache/commons/vfs/provider/webdav
                        WebdavFileObject.java
  Log:
  Handle non-DAV resources a little better.
  
  Revision  Changes    Path
  1.23      +2 -2      
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/Resources.properties
  
  Index: Resources.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/Resources.properties,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- Resources.properties      24 Feb 2003 07:24:58 -0000      1.22
  +++ Resources.properties      14 Mar 2003 03:48:14 -0000      1.23
  @@ -142,8 +142,8 @@
   
   # WebDAV provider
   vfs.provider.webdav/write-file.error=Write to file failed with message: "{0}".
  -vfs.provider.webdav/list-children.error=Could not list child resources.
  -vfs.provider.webdav/create-collection.error=Creat collection failed with message: 
"{0}".
  +vfs.provider.webdav/list-children.error=List child resources failed with message: 
"{0}".
  +vfs.provider.webdav/create-collection.error=Create collection failed with message: 
"{0}".
   vfs.provider.webdav/delete-file.error=Delete file failed with message: "{0}".
   vfs.provider.webdav/create-client.error=Could not create client for server "{0}".
   
  
  
  
  1.6       +12 -3     
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/webdav/WebdavFileObject.java
  
  Index: WebdavFileObject.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/webdav/WebdavFileObject.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WebdavFileObject.java     23 Feb 2003 00:40:39 -0000      1.5
  +++ WebdavFileObject.java     14 Mar 2003 03:48:14 -0000      1.6
  @@ -106,7 +106,7 @@
        * Determines the type of the file, returns null if the file does not
        * exist.
        *
  -     * @todo Bail if file is not a DAV resource
  +     * @todo Shouldn't need 2 trips to the server to determine type.
        */
       protected FileType doGetType() throws Exception
       {
  @@ -120,6 +120,7 @@
           }
           resource.getHttpURL().setPath( optionsMethod.getPath() );
   
  +        // Resource exists if we can do a GET on it
           boolean exists = false;
           for ( Enumeration enum = optionsMethod.getAllowedMethods(); 
enum.hasMoreElements(); )
           {
  @@ -135,6 +136,14 @@
               return FileType.IMAGINARY;
           }
   
  +        // Check if the resource is a DAV resource
  +        final boolean davResource = 
optionsMethod.getDavCapabilities().hasMoreElements();
  +        if ( !davResource )
  +        {
  +            // Assume a folder, and don't get the properties
  +            return FileType.FOLDER;
  +        }
  +
           // Get the properties of the resource
           resource.setProperties( WebdavResource.DEFAULT, 1 );
           if ( resource.isCollection() )
  @@ -155,7 +164,7 @@
           final String[] children = resource.list();
           if ( children == null )
           {
  -            throw new FileSystemException( 
"vfs.provider.webdav/list-children.error" );
  +            throw new FileSystemException( 
"vfs.provider.webdav/list-children.error", resource.getStatusMessage() );
           }
           return children;
       }
  
  
  

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

Reply via email to