Related to [Bug 32886]? - client webdav lib - resource not found

Tiffany Dodge <[email protected]> Fri, 16 Mar 2007 13:00:42 -0700
Newsgroups gmane.comp.jakarta.slide.devel
Message-ID <[email protected]>
Hello,

I sent the forwarded message below to slide-users, but I haven't  
heard anything so I thought I would try this list with more code-type  
details.  I believe the problem I'm having is related to [Bug 32886].

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

Here are some more details on the files listed in the forwarded email.

escapedHref = /webdavtest/abcdefghijklm
httpURLPath = /webdavtest/uploading/xxy

abcdefghijklm is the file that was uploaded
xxy is the directory that the file was uploaded to

Other files in xxy were added properly to childResources.  I added  
several System.out.println statements to the setWebdavProperties  
method (in WebdavResource.java) and here's what I got (there is info  
for two files: one that was properly added and one that wasn't) ...

// file was properly added to childResources
Before if stmts, lenDiff = 4
escapedHref = /webdavtest/abcdefghijklm1234, httpURLPath = / 
webdavtest/uploading/xxy
After if stmts, lenDiff = 4
compareLen = 0
httpURLPath.equals(escapedHref) = false
httpURLPath.regionMatches(0, escapedHref, 0, compareLen) = true
(compareLen == 0 && httpURLPath.equals(escapedHref)) = false
itself = false
Added resource named abcdefghijklm1234 to childResources

// file was NOT properly added to childResources
Before if stmts, lenDiff = 0
escapedHref = /webdavtest/abcdefghijklm, httpURLPath = /webdavtest/ 
uploading/xxy
After if stmts, lenDiff = 0
compareLen = 0
httpURLPath.equals(escapedHref) = false
httpURLPath.regionMatches(0, escapedHref, 0, compareLen) = true
(compareLen == 0 && httpURLPath.equals(escapedHref)) = false
In if stmt body to set status code
itself = true
Did NOT add resource named abcdefghijklm to childResources

I'm guessing that "httpURLPath.regionMatches(0, escapedHref, 0,  
compareLen)" should not have been true but I'm not really sure.  Can  
anyone help me determine how I should change this bit of code ...


             // if they are the same length then compare them.
             if (lenDiff == 0) {
                 if ((compareLen == 0 && httpURLPath.equals 
(escapedHref))
                     || httpURLPath.regionMatches(0, escapedHref, 0,  
compareLen))
                 {


so that my bug is fixed, but so that I don't break everything else?

Thanks,
Tiff

Begin forwarded message:

> From: Tiffany Dodge <[email protected]>
> Date: March 15, 2007 4:08:52 PM PDT
> To: "Slide Users Mailing List" <[email protected]>
> Subject: Re: client webdav lib - resource not found
> Reply-To: "Slide Users Mailing List" <[email protected]>
>
> Correcting a typo below (the escapedHref value - removing the comma)
>
> On Mar 15, 2007, at 3:54 PM, Tiffany Dodge wrote:
>
>> Hello,
>>
>> I've run into a problem where slide can't find a file right after  
>> it has been uploaded.  The file does exist on the DAV server (I  
>> checked).  FYI, I am using slide 2.1 with Apache 1.3.
>>
>> Basically, I do this ...
>> - upload a file
>> - get the childResources
>> - and then try to getResource(filename) for the file that I just  
>> uploaded.
>>
>> From my debugging (which could totall be wrong), the problem is in  
>> WebdavResource.java, in the method setWebdavProperties ...
>>
>>             int lenDiff = escapedHref.length() - httpURLPath.length 
>> ();
>>
>> lenDiff is zero, but the paths are completely different.  For  
>> example, they could be ...
>>
>> escapedHref = /webdavtest/abcdefghijklm
>> httpURLPath = /webdavtest/uploading/xxy
>>
>> So the local var "itself" ends up being true in this case and the  
>> workingResource is not added to the childResources at the end of  
>> the method, as it should.  That in turn means that the resource  
>> cannot be found.
>>
>> Has anyone else experienced this?  If so, what did you do to fix  
>> it?  Any help would be appreciated.
>>
>> Thanks,
>> Tiff
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>