killbill-memoizeit

api: ensure all dates in InternalCallContext are in UTC Signed-off-by:

2/8/2016 6:42:12 PM

Details

diff --git a/api/src/main/java/org/killbill/billing/callcontext/InternalCallContext.java b/api/src/main/java/org/killbill/billing/callcontext/InternalCallContext.java
index f1429a0..7dced4f 100644
--- a/api/src/main/java/org/killbill/billing/callcontext/InternalCallContext.java
+++ b/api/src/main/java/org/killbill/billing/callcontext/InternalCallContext.java
@@ -53,8 +53,8 @@ public class InternalCallContext extends InternalTenantContext {
         this.contextUserType = userType;
         this.reasonCode = reasonCode;
         this.comments = comment;
-        this.createdDate = new DateTime(createdDate, DateTimeZone.UTC);
-        this.updatedDate = updatedDate;
+        this.createdDate = toUTCDateTime(createdDate);
+        this.updatedDate = toUTCDateTime(updatedDate);
     }
 
     public InternalCallContext(final Long tenantRecordId, @Nullable final Long accountRecordId, final CallContext callContext) {
diff --git a/api/src/main/java/org/killbill/billing/callcontext/TimeAwareContext.java b/api/src/main/java/org/killbill/billing/callcontext/TimeAwareContext.java
index 9a08ee2..f501261 100644
--- a/api/src/main/java/org/killbill/billing/callcontext/TimeAwareContext.java
+++ b/api/src/main/java/org/killbill/billing/callcontext/TimeAwareContext.java
@@ -20,6 +20,7 @@ package org.killbill.billing.callcontext;
 import java.util.Date;
 
 import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
 
 public class TimeAwareContext {
 
@@ -27,4 +28,9 @@ public class TimeAwareContext {
     public DateTime toDateTime(final Date date) {
         return new DateTime(date);
     }
+
+    // Create a DateTime object forcing the time zone to be UTC
+    public DateTime toUTCDateTime(final DateTime dateTime) {
+        return new DateTime(dateTime, DateTimeZone.UTC);
+    }
 }