From 81043e58e2881c1910e5e54e0fffe8d722730fab Mon Sep 17 00:00:00 2001 From: jackyq2015 Date: Tue, 19 Dec 2017 12:54:26 -0500 Subject: [PATCH 1/7] fix #1386 --- .../google/refine/util/ParsingUtilities.java | 9 ++++++-- .../tests/util/ParsingUtilitiesTests.java | 21 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/main/src/com/google/refine/util/ParsingUtilities.java b/main/src/com/google/refine/util/ParsingUtilities.java index 4de898685..f3ec984e7 100644 --- a/main/src/com/google/refine/util/ParsingUtilities.java +++ b/main/src/com/google/refine/util/ParsingUtilities.java @@ -38,9 +38,10 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.UnsupportedEncodingException; -import java.text.SimpleDateFormat; +import java.time.Instant; import java.time.LocalDateTime; import java.time.OffsetDateTime; +import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Properties; @@ -193,6 +194,10 @@ public class ParsingUtilities { } static public LocalDateTime stringToLocalDate(String s) { - return LocalDateTime.parse(s, DateTimeFormatter.ISO_LOCAL_DATE_TIME); + if (s.endsWith("Z")) { // UTC time + Instant instant = Instant.parse(s); + return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); + } else + return LocalDateTime.parse(s, DateTimeFormatter.ISO_LOCAL_DATE_TIME); } } diff --git a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java index 87a649d86..07ce07286 100644 --- a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java +++ b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java @@ -107,4 +107,25 @@ public class ParsingUtilitiesTests extends RefineTest { Assert.assertEquals(zdtString, historyEntryDate); } + + @Test + public void parseProjectModifiedBeforeJDK8() { + String modified = "2014-01-15T21:46:25Z"; + Assert.assertNotEquals(ParsingUtilities.stringToLocalDate(modified).toString(), + modified); + } + + @Test + public void strSubstitutorTest() { + Map data = new HashMap(6); + + data.put("value", "1234"); + data.put("field_format", "String"); + + StrSubstitutor sub = new StrSubstitutor(data); + String message = "The value ${value} in row ${row_number} and column ${column_number} is not type ${field_type} and format ${field_format}"; + String result = sub.replace(message); + System.out.println("XXXXXXXX:" + result); + Assert.assertTrue(result.contains("1234")); + } } From ad293a14196820f35b4e6dbf0a18e275ec00c119 Mon Sep 17 00:00:00 2001 From: jackyq2015 Date: Tue, 19 Dec 2017 15:00:21 -0500 Subject: [PATCH 2/7] add missing import --- main/src/com/google/refine/util/ParsingUtilities.java | 1 + 1 file changed, 1 insertion(+) diff --git a/main/src/com/google/refine/util/ParsingUtilities.java b/main/src/com/google/refine/util/ParsingUtilities.java index f3ec984e7..1fa422c9e 100644 --- a/main/src/com/google/refine/util/ParsingUtilities.java +++ b/main/src/com/google/refine/util/ParsingUtilities.java @@ -38,6 +38,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.UnsupportedEncodingException; +import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDateTime; import java.time.OffsetDateTime; From cb55b684491e5c2fbec763c39cc41d371c266196 Mon Sep 17 00:00:00 2001 From: jackyq2015 Date: Tue, 19 Dec 2017 15:23:39 -0500 Subject: [PATCH 3/7] add missing import --- .../src/com/google/refine/tests/util/ParsingUtilitiesTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java index 07ce07286..e73a72252 100644 --- a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java +++ b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java @@ -42,6 +42,7 @@ import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; +import org.apache.commons.lang3.text.StrSubstitutor; import com.google.refine.tests.RefineTest; import com.google.refine.util.ParsingUtilities; From 136eba52df32c244f73425ededa92196f146cbb9 Mon Sep 17 00:00:00 2001 From: jackyq2015 Date: Tue, 19 Dec 2017 15:28:34 -0500 Subject: [PATCH 4/7] add missing import --- .../com/google/refine/tests/util/ParsingUtilitiesTests.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java index e73a72252..6c80d0a22 100644 --- a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java +++ b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java @@ -35,14 +35,16 @@ package com.google.refine.tests.util; import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.lang3.text.StrSubstitutor; import org.json.JSONException; import org.json.JSONObject; import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; -import org.apache.commons.lang3.text.StrSubstitutor; import com.google.refine.tests.RefineTest; import com.google.refine.util.ParsingUtilities; From 8b203a094ded10561bab410658a823aefa9b99aa Mon Sep 17 00:00:00 2001 From: jackyq2015 Date: Wed, 20 Dec 2017 13:30:38 -0500 Subject: [PATCH 5/7] add the braces --- main/src/com/google/refine/util/ParsingUtilities.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main/src/com/google/refine/util/ParsingUtilities.java b/main/src/com/google/refine/util/ParsingUtilities.java index 1fa422c9e..a4f56e445 100644 --- a/main/src/com/google/refine/util/ParsingUtilities.java +++ b/main/src/com/google/refine/util/ParsingUtilities.java @@ -198,7 +198,8 @@ public class ParsingUtilities { if (s.endsWith("Z")) { // UTC time Instant instant = Instant.parse(s); return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); - } else + } else { return LocalDateTime.parse(s, DateTimeFormatter.ISO_LOCAL_DATE_TIME); + } } } From e1a494aabd6dc2fc543451b41e6e603993cb1fa9 Mon Sep 17 00:00:00 2001 From: Jacky Date: Thu, 21 Dec 2017 08:22:44 -0500 Subject: [PATCH 6/7] remove the print --- .../src/com/google/refine/tests/util/ParsingUtilitiesTests.java | 1 - 1 file changed, 1 deletion(-) diff --git a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java index 6c80d0a22..338530029 100644 --- a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java +++ b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java @@ -128,7 +128,6 @@ public class ParsingUtilitiesTests extends RefineTest { StrSubstitutor sub = new StrSubstitutor(data); String message = "The value ${value} in row ${row_number} and column ${column_number} is not type ${field_type} and format ${field_format}"; String result = sub.replace(message); - System.out.println("XXXXXXXX:" + result); Assert.assertTrue(result.contains("1234")); } } From 9107a0eb91f4c95ebcd0dfba073f47165d7edea5 Mon Sep 17 00:00:00 2001 From: Jacky Date: Thu, 21 Dec 2017 08:24:29 -0500 Subject: [PATCH 7/7] remove commented code --- .../com/google/refine/tests/util/ParsingUtilitiesTests.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java index 338530029..91baccd76 100644 --- a/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java +++ b/main/tests/server/src/com/google/refine/tests/util/ParsingUtilitiesTests.java @@ -93,9 +93,6 @@ public class ParsingUtilitiesTests extends RefineTest { } @Test public void zonedDateTimeTest() { -// String d = "2017-07-18T20:26:28.582+03:00[Asia/Istanbul]"; -// DateTimeFormatter formatter = DateTimeFormatter.ISO_ZONED_DATE_TIME ; -// OffsetDateTime.parse(d, formatter); String d = "2017-12-01T14:53:36Z"; DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME; OffsetDateTime.parse(d, formatter);