You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Julian Reschke (JIRA)" <ji...@apache.org> on 2006/04/19 15:07:43 UTC
[jira] Created: (JCR-406) If header evaluation compliance provlems
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:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Commented: (JCR-406) If header evaluation compliance
problems
Posted by "Julian Reschke (JIRA)" <ji...@apache.org>.
[ 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.
[jira] Updated: (JCR-406) If header evaluation compliance problems
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jukka Zitting updated JCR-406:
------------------------------
Attachment: JCR-406.patch
The attached patch enables If header evaluation even when the addressed resource is not locked.
> If header evaluation compliance problems
> ----------------------------------------
>
> Key: JCR-406
> URL: https://issues.apache.org/jira/browse/JCR-406
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-webdav
> Reporter: Julian Reschke
> Attachments: JCR-406.patch
>
>
> 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.
[jira] Updated: (JCR-406) If header evaluation compliance problems
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ 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