Re: Strange getChildResources() behaviour

David King <[email protected]> Sun, 25 Mar 2007 20:57:24 -0700
Newsgroups gmane.comp.jakarta.slide.user
Message-ID <[email protected]>
Sorry about all of the emails, but this bug is really frustrating me  
and I want to help see that it gets fixed.

I've just verified that this is *not* the behaviour under Slide 2.0,  
only 2.1

-- David


On 25 Mar 2007, at 20:27, David King wrote:

> I've just verified this against https://svn.apache.org/repos/asf/,  
> which means that it's not the server causing the problem
>
> -- David
>
>
> On 25 Mar 2007, at 20:23, David King wrote:
>
>> I have a small program which tries to list an entire collection  
>> tree by recursion (it's a smaller part of a larger program). In  
>> theory this should be pretty easy. The tree looks like this (where  
>> a trailing slash denotes a collection):
>>
>> dir/1/
>> dir/1/2
>> dir/3/
>> dir/3/4/
>> dir/5
>> dir/6
>>
>> However, when I try to do getChildResources() on "dir", instead of  
>> getting back {1,3,5,6}, instead I get back {dir,5,6}. That is,  
>> getChildResources() returns the original resource, and any files  
>> (but not collections) within the collection. Slide is the only  
>> library that seems to do this, so I'm inclined to believe that  
>> it's a bug (either in Slide or the server), but I'm hoping that  
>> I'm just doing something wrong. I'm doing this from Slide 2.1,  
>> talking to a Xythos 6.0 server (www.xythosondemand.com, but I've  
>> tried another Xythos server as well).
>>
>> Here's the actual code:
>>
>> import java.io.File;
>> import java.io.IOException;
>> import java.util.Enumeration;
>> import org.apache.commons.httpclient.HttpException;
>> import org.apache.commons.httpclient.HttpURL;
>> import org.apache.commons.httpclient.HttpsURL;
>> import org.apache.commons.httpclient.URIException;
>> import org.apache.webdav.lib.WebdavResource;
>> import org.apache.webdav.lib.WebdavResources;
>>
>> public class Davsync {
>>   private static final String URL="https://server/path/to/ 
>> collection/";
>>   private static final String source="/local/path";
>>   private static final String user="username";
>>   private static final String password = "password";
>>
>>   public static void main(String[] args) throws URIException,  
>> IOException {
>>     HttpsURL hrl=new HttpsURL(URL);
>>     hrl.setUserinfo(user, password);
>>
>>     syncUp(hrl, new File(source));
>>   }
>>
>>   private static void syncUp(HttpURL hu, File localFile) throws  
>> HttpException, IOException {
>>     syncUp(
>>         new WebdavResource(hu).getChildResources(),
>>         localFile);
>>   }
>>
>>   private static void syncUp(WebdavResources wrs, File localfile)  
>> throws IOException {
>>     Enumeration wr=wrs.getResources();
>>     while(wr.hasMoreElements()) {
>>       WebdavResource r=(WebdavResource)wr.nextElement();
>>
>>       if(r.isCollection()) {
>>         System.out.println("Dire:" + r.toString());
>>         // syncUp(r.listWebdavResources(),localfile);
>>       } else {
>>         System.out.println("File:" + r.toString());
>>       }
>>     }
>>   }
>> }
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]