Gianugo Rabellino wrote:
> Guido Casper wrote:
>> Gianugo Rabellino wrote:
>>
>>> [EMAIL PROTECTED] wrote:
>>>
>>>> gcasper     2003/12/17 05:42:14
>>>>
>>>>  Modified:
>>>>
>>>>  src/blocks/webdav/java/org/apache/cocoon/components/source/impl
>>>>  WebDAVSource.java Log: Interoperability with mod_dav
>>>
>>> Why so? I think that the cleanest way is to solve this issue where
>>> it belongs, inside httpclient if possible, or in httpd, with a
>>> BrowserMatch directive...
>>
>>
>> How do you solve that with a BrowserMatch directive? If that is
>> possible I revert the change.
>
> BrowserMatch "^Jakarta Commons-HttpClient" redirect-carefully

Redirect (assuming you mean rewrite) what?
How to find out what is a collection and what not?

>
>> mod_dav sends a redirect on collections without a trailing slash.
>
> And it's disputable which one is the correct behaviour. I tend to
> think that Apache does it right...

IIUC the correct behaviour is to just send the response together with a
Location header so that the WebDAV client adjusts its base URL for
further requests. But since clients tend to ignore that header some
server send a redirect instead. So what mod_dav does is considered well
behaved and to be expected with other servers as well.

Unfortunately this breaks WebDAVSource with
TraversableSourceDescriptionGenerator.
I just tried setting followRirects in WebDAVResource.propfindMethod
without success :-( .

The only other places to fix this is either WebDAVSource or
WebDAVResource.setWebdavProperties/.processProperty.

>
>> httpclient reasonably doesn't modify the set URL in any way. If you
>> prefer I could ask slide-dev to change WebDAVResource to set
>> followRedirects on propfind requests (I didn't test that yet and
>> somewhat fear the performance penalty).
>
> You think so? Why should there be a performance penalty?

Because of doubling the number of roundtrips.
The problem only shows with TraversableSourceDescriptionGenerator on
collections containing child collections. It's the only one doing a
getSourceProperties (propfind) on child collections. One propfind (and a
redirect since their URL doesn't contain the trailing slash) on each
child collection. And if the number of child collection is big  ...

Guido

Reply via email to