[ 
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.

Reply via email to