[ http://issues.apache.org/jira/browse/JCR-406?page=all ]
Jukka Zitting updated JCR-406: ------------------------------ Summary: If header evaluation compliance problems (was: If header evaluation compliance provlems) > If header evaluation compliance problems > ---------------------------------------- > > Key: JCR-406 > URL: http://issues.apache.org/jira/browse/JCR-406 > Project: Jackrabbit > Issue Type: Bug > Components: 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. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira