jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julian Reschke (JIRA)" <j...@apache.org>
Subject [jira] Created: (JCR-406) If header evaluation compliance provlems
Date Wed, 19 Apr 2006 13:07:43 GMT
If header evaluation compliance provlems

         Key: JCR-406
         URL: http://issues.apache.org/jira/browse/JCR-406
     Project: Jackrabbit
        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:
For more information on JIRA, see:

View raw message