diff options
author | nash <nash@13f79535-47bb-0310-9956-ffa450edef68> | 2010-10-20 21:59:32 +0000 |
---|---|---|
committer | nash <nash@13f79535-47bb-0310-9956-ffa450edef68> | 2010-10-20 21:59:32 +0000 |
commit | 84b544b7e32ac0ba99dc349bd9952adb9e4fd98f (patch) | |
tree | b6fc002645033367249320a9e92519d1da62edee /sca-java-1.x/branches/sca-java-1.6.1/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca | |
parent | eb5cb4e3c39f1092cc1d8aaabf7da9401d2ca0f0 (diff) |
TUSCANY-3742: Fix time comparison for If-Modified-Since and If-Unmodified-Since
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1025776 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-1.x/branches/sca-java-1.6.1/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca')
-rw-r--r-- | sca-java-1.x/branches/sca-java-1.6.1/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/sca-java-1.x/branches/sca-java-1.6.1/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java b/sca-java-1.x/branches/sca-java-1.6.1/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java index 5ba07f5e22..3975fe1220 100644 --- a/sca-java-1.x/branches/sca-java-1.6.1/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java +++ b/sca-java-1.x/branches/sca-java-1.6.1/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java @@ -278,7 +278,7 @@ class AtomBindingListenerServlet extends HttpServlet { if ( predicate != null ) { try { Date predicateDate = dateFormat.parse( predicate ); - if ( predicateDate.compareTo( feedUpdated ) < 0 ) { + if ( predicateDate.compareTo( exactSeconds(feedUpdated) ) < 0 ) { // Match, should short circuit response.sendError(HttpServletResponse.SC_NOT_MODIFIED); return; @@ -291,7 +291,7 @@ class AtomBindingListenerServlet extends HttpServlet { if ( predicate != null ) { try { Date predicateDate = dateFormat.parse( predicate ); - if ( predicateDate.compareTo( feedUpdated ) > 0 ) { + if ( predicateDate.compareTo( exactSeconds(feedUpdated) ) >= 0 ) { // Match, should short circuit response.sendError(HttpServletResponse.SC_NOT_MODIFIED); return; @@ -910,5 +910,13 @@ class AtomBindingListenerServlet extends HttpServlet { } } - + /** + * Round a date down to an exact number of seconds + * @param date with millisecond precision + * @return date rounded down to nearest second + */ + private Date exactSeconds(Date date) { + return new Date(date.getTime() / 1000 * 1000); + } + } |