summaryrefslogtreecommitdiffstats
path: root/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
diff options
context:
space:
mode:
Diffstat (limited to '')
-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.java14
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);
+ }
+
}