[
https://issues.apache.org/jira/browse/JCR-406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12638278#action_12638278
]
Julian Reschke commented on JCR-406:
------------------------------------
Updated document link:
http://greenbytes.de/tech/webdav/rfc4918.html#rfc.section.10.4
> If header evaluation compliance problems
> ----------------------------------------
>
> Key: JCR-406
> URL: https://issues.apache.org/jira/browse/JCR-406
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-webdav
> Reporter: Julian Reschke
>
> There is a problem with the implementation of If header checking in
> WebdavRequestImpl.matchesIfHeader(), causing warnings and errors in the
> Litmus test suite, notably test cases cond_put_corrupt_token and
> fail_cond_put_unlocked.
> The main cause seems to be the assumption that evaluation of the If header
> isn't necessary if the resource isn't locked. That's incorrect, because If
> header evaluation should occur independently of the state of the resource
> (even if it doesn't exist). In particular, for a state token known not to
> represent the current state of the resource, such as "DAV:not-a-lock", the If
> header
> If: (<DAV:not-a-lock>)
>
> should evaluate to false (causing the request to fail with status 412), and
> consequently,
> If: (<x>) (Not <DAV:not-a-lock>)
>
> should always avaluate to true (for any x), because there is one untagged
> list production evaluating to true; thus the request should proceed.
> In RFC2518bis, the WebDAV WG has tried to clarify If header evaluation, see
> (<http://greenbytes.de/tech/webdav/draft-ietf-webdav-rfc2518bis-14.html#rfc.section.10.4>).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.