Repository: incubator-groovy
Updated Branches:
  refs/heads/GROOVY_2_4_X 9bec5552a -> 8edfbbc75


GROOVY-7462: Dates factory fix when initializing miliseconds field


Project: http://git-wip-us.apache.org/repos/asf/incubator-groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-groovy/commit/8edfbbc7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-groovy/tree/8edfbbc7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-groovy/diff/8edfbbc7

Branch: refs/heads/GROOVY_2_4_X
Commit: 8edfbbc755d3356c7fb7e63cf2f15609c9d13c5d
Parents: 9bec555
Author: Fabio de Matos <fdema...@despegar.com>
Authored: Wed Jun 10 12:18:10 2015 -0300
Committer: pascalschumacher <pascalschumac...@gmx.net>
Committed: Thu Jun 11 19:08:44 2015 +0200

----------------------------------------------------------------------
 .../main/java/groovy/json/internal/Dates.java   | 16 +----------
 .../groovy/json/internal/DatesTest.groovy       | 30 ++++++++++++++++++++
 2 files changed, 31 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/8edfbbc7/subprojects/groovy-json/src/main/java/groovy/json/internal/Dates.java
----------------------------------------------------------------------
diff --git 
a/subprojects/groovy-json/src/main/java/groovy/json/internal/Dates.java 
b/subprojects/groovy-json/src/main/java/groovy/json/internal/Dates.java
index 3081b42..1eb6b29 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/internal/Dates.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/internal/Dates.java
@@ -37,20 +37,6 @@ public class Dates {
         return utcNow;
     }
 
-    private static Date internalDate(TimeZone tz, int year, int month, int 
day, int hour, int minute, int second) {
-        Calendar calendar = Calendar.getInstance();
-
-        calendar.set(Calendar.YEAR, year);
-        calendar.set(Calendar.MONTH, month - 1);
-        calendar.set(Calendar.DAY_OF_MONTH, day);
-        calendar.set(Calendar.HOUR_OF_DAY, hour);
-        calendar.set(Calendar.MINUTE, minute);
-        calendar.set(Calendar.SECOND, second);
-        calendar.setTimeZone(tz);
-
-        return calendar.getTime();
-    }
-
     private static Date internalDate(TimeZone tz, int year, int month, int 
day, int hour,
                                      int minute, int second, int miliseconds) {
 
@@ -71,7 +57,7 @@ public class Dates {
 
     public static Date toDate(TimeZone tz, int year, int month, int day,
                               int hour, int minute, int second) {
-        return internalDate(tz, year, month, day, hour, minute, second);
+        return internalDate(tz, year, month, day, hour, minute, second, 0);
     }
 
     public static Date toDate(TimeZone tz, int year, int month, int day,

http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/8edfbbc7/subprojects/groovy-json/src/test/groovy/groovy/json/internal/DatesTest.groovy
----------------------------------------------------------------------
diff --git 
a/subprojects/groovy-json/src/test/groovy/groovy/json/internal/DatesTest.groovy 
b/subprojects/groovy-json/src/test/groovy/groovy/json/internal/DatesTest.groovy
new file mode 100644
index 0000000..1bb97f5
--- /dev/null
+++ 
b/subprojects/groovy-json/src/test/groovy/groovy/json/internal/DatesTest.groovy
@@ -0,0 +1,30 @@
+package groovy.json.internal
+
+
+class DatesTest extends GroovyTestCase{
+
+    // GROOVY-7462
+    void testDatesFactory() {
+        Date d1 = Dates.toDate(TimeZone.getTimeZone("GMT"),2015,06,07,23,55,59)
+
+        Thread.sleep(1) // lets get some time between calling constructors
+
+        Date d2 = Dates.toDate(TimeZone.getTimeZone("GMT"),2015,06,07,23,55,59)
+
+        assert d1 == d2
+    }
+
+    void testDatesFactoryWithDefaultMs() {
+        Date d1 = 
Dates.toDate(TimeZone.getTimeZone("GMT"),2015,06,07,23,55,59,0)
+        Date d2 = Dates.toDate(TimeZone.getTimeZone("GMT"),2015,06,07,23,55,59)
+
+        assert d1 == d2
+    }
+
+    void testDatesFactoryEnforceDefaultMs() {
+        Date d1 = 
Dates.toDate(TimeZone.getTimeZone("GMT"),2015,06,07,23,55,59,1)
+        Date d2 = Dates.toDate(TimeZone.getTimeZone("GMT"),2015,06,07,23,55,59)
+
+        assert d1 != d2
+    }
+}

Reply via email to