You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-user@jakarta.apache.org by David King <dk...@ketralnis.com> on 2007/03/26 05:23:15 UTC
Strange getChildResources() behaviour
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: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org
Re: Strange getChildResources() behaviour
Posted by Antoine Levy-Lambert <an...@gmx.de>.
Hello David,
could you download the sources which are currently in SVN and see if you
have the bug with the head revision ?
Best regards,
Antoine
David King wrote:
> 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: slide-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: slide-user-help@jakarta.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: slide-user-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org
Re: Strange getChildResources() behaviour
Posted by David King <dk...@ketralnis.com>.
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: slide-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: slide-user-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org
Re: Strange getChildResources() behaviour
Posted by David King <dk...@ketralnis.com>.
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: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org