DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=28787>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=28787

WebdavFile.isDirectory fails with exception when the resource is a collection

           Summary: WebdavFile.isDirectory fails with exception when the
                    resource is a collection
           Product: Slide
           Version: 2.0
          Platform: All
        OS/Version: Windows XP
            Status: UNCONFIRMED
          Severity: Major
          Priority: Other
         Component: WebDAV client
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


The code below yields the following exception:

org.apache.commons.httpclient.HttpMethodBase processRedirectResponse
INFO: Redirect requested but followRedirects is disabled

The problem is several-fold:

1. the failure seems to be associated with the fact that the collection name
does not end in '/' - i.e. instead of asking if '/a/b/c/' is a collection, the
code asks if '/a/b/c'

2. the "getPath" returns value without the terminating '/' for the collection

3. the code accesses the DAV server to query for the state (collection or
"simple") whereas this could have been inferred from the initial response to the
"listFiles" request and cached (along with the correct path name)

                        try
                        {
                                final HttpURL           u=new HttpURL("somehost", 
somePort, "someCollectionPath");
                                final WebdavFile        wf=new WebdavFile(u);
                                final File[]            fl=wf.listFiles();
                                final int                       numFiles=(null == fl) 
? 0 : fl.length;
                                for (int        fIndex=0; fIndex < numFiles; fIndex++)
                                {
                                        final File      f=fl[fIndex];
                                        if (null == f)  // should not happen
                                                continue;

                                        final boolean   isFolder=f.isDirectory();
                                        System.out.println("\t" + f.getPath() + "(" + 
isFolder + ")");
                                }
                        }
                        catch(URIException ue)
                        {
                                System.err.println("URI exception: " + 
ue.getMessage());
                                return (-1);
                        }

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

Reply via email to