You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Simon Nash (JIRA)" <de...@tuscany.apache.org> on 2010/10/20 23:46:24 UTC

[jira] Commented: (TUSCANY-3742) binding.atom service problems with If-Modified-Since and If-Unmodified-Since headers

    [ https://issues.apache.org/jira/browse/TUSCANY-3742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923188#action_12923188 ] 

Simon Nash commented on TUSCANY-3742:
-------------------------------------

See [1] for confirmation that the comparison should be based on an exact number of seconds.

[1] http://www.mail-archive.com/dev@httpd.apache.org/msg09017.html

> binding.atom service problems with If-Modified-Since and If-Unmodified-Since headers
> ------------------------------------------------------------------------------------
>
>                 Key: TUSCANY-3742
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-3742
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SCA ATOM Binding Extension
>    Affects Versions: Java-SCA-1.6
>            Reporter: Simon Nash
>            Assignee: Simon Nash
>             Fix For: Java-SCA-1.6.1
>
>
> The timestamp comparison performed by AtomBindingListenerServlet for the If-Modified-Since and If-Unmodified-Since HTTP headers can produce incorrect results in some cases.
> Consider the following sequences of events.
> Scenario A:
> 1. At time T1, a client of an Atom feed modifies the feed
> 2. The client then records the current time T2
> 3. The client then sends a GET request with If-Modified-Since: T2
> 4. The client expects the server to send a 304 response because the feed has not been modified since time T1.  On some occasions this happens but on other occasions the server sends a 200 response.
> Scenario B:
> 1. At time T1, a client of an Atom feed modifies the feed
> 2. The client then records the current time T2
> 3. The client then sends a GET request with If-Unmodified-Since: T2
> 4. The client expects the server to send a 200 response because the feed has not been modified since time T1.  On some occasions this happens but on other occasions the server sends a 304 response.
> These problems are caused by the millseconds component of time T2 being lost when time T2 is formatted as an exact number of seconds for insertion into the If-Modified-Since or If-Unmodified-Since header.
> For example if the following applies:
>  T1 == 12:34:56.100
>  T2 == 12:34:56.300
> the time T2 is transmitted by the client as 12:34:56.000 and appears to the server to be an earlier time than T1 (incorrect).
> However if the following applies:
>  T1 == 12:34:56.900
>  T2 == 12:34:57.100
> the time T2 is transmitted by the client as 12:34:57.000 and appears to the server to be a later time than T1 (correct).
> This is the cause of the occasional test case failures described in TUSCANY-3299.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.