Remove JDK8 compatibility flag from tests.
The JDK is being updated to use CLDR (the Common Locale Data Repository)
as its locale provider. This change affects locale-sensitive APIs,
including date, time, and number formatting.
The CLDR locale provider became the default in the Google. Tests
should be fixed for this migration.
This changes itself is safe, because it touches only tests.
Google-Bug: b/361580052
Change-Id: I84463c99280bae7e9b56ea5f345e86b4171ceaae
Release-Notes: skip
diff --git a/javatests/com/google/gerrit/server/notedb/CommentTimestampAdapterTest.java b/javatests/com/google/gerrit/server/notedb/CommentTimestampAdapterTest.java
index 5a89584..b798e2d 100644
--- a/javatests/com/google/gerrit/server/notedb/CommentTimestampAdapterTest.java
+++ b/javatests/com/google/gerrit/server/notedb/CommentTimestampAdapterTest.java
@@ -57,7 +57,7 @@
* Ambiguous string representation of {@link #MID_DST_MS} that was actually stored in NoteDb for
* this comment.
*/
- private static final String MID_DST_STR = "Nov 3, 2013 1:10:24 AM";
+ private static final String MID_DST_STR = "Nov 3, 2013, 1:10:24 AM";
private TimeZone systemTimeZone;
private Gson legacyGson;
@@ -82,7 +82,7 @@
public void legacyGsonBehavesAsExpectedDuringDstTransition() {
long oneHourMs = TimeUnit.HOURS.toMillis(1);
- String beforeJson = "\"Nov 3, 2013 12:10:24 AM\"";
+ String beforeJson = "\"Nov 3, 2013, 12:10:24 AM\"";
Timestamp beforeTs = new Timestamp(MID_DST_MS - oneHourMs);
assertThat(legacyGson.toJson(beforeTs)).isEqualTo(beforeJson);
@@ -103,7 +103,7 @@
@Test
public void legacyAdapterViaZonedDateTime() {
- assertThat(legacyGson.toJson(NON_DST_TS)).isEqualTo("\"Feb 7, 2017 2:20:30 AM\"");
+ assertThat(legacyGson.toJson(NON_DST_TS)).isEqualTo("\"Feb 7, 2017, 2:20:30 AM\"");
}
@Test
@@ -117,7 +117,15 @@
@Test
public void newAdapterCanParseOutputOfLegacyAdapter() {
String legacyJson = legacyGson.toJson(NON_DST_TS);
- assertThat(legacyJson).isEqualTo("\"Feb 7, 2017 2:20:30 AM\"");
+ assertThat(legacyJson).isEqualTo("\"Feb 7, 2017, 2:20:30 AM\"");
+ assertThat(gson.fromJson(legacyJson, Timestamp.class))
+ .isEqualTo(new Timestamp(NON_DST_TS.getTime() / 1000 * 1000));
+ }
+
+ @Test
+ public void newAdapterCanParseOutputOfLegacyAdapterFromOldJDK() {
+ // The old JDK8 formatted the date time without a comma after the year.
+ String legacyJson = "\"Feb 7, 2017 2:20:30 AM\"";
assertThat(gson.fromJson(legacyJson, Timestamp.class))
.isEqualTo(new Timestamp(NON_DST_TS.getTime() / 1000 * 1000));
}
diff --git a/tools/bzl/junit.bzl b/tools/bzl/junit.bzl
index d10e113..c7d2545 100644
--- a/tools/bzl/junit.bzl
+++ b/tools/bzl/junit.bzl
@@ -67,12 +67,6 @@
implementation = _impl,
)
-POST_JDK8_OPTS = [
- # Enforce JDK 8 compatibility on Java 9, see
- # https://docs.oracle.com/javase/9/intl/internationalization-enhancements-jdk-9.htm#JSINT-GUID-AF5AECA7-07C1-4E7D-BC10-BC7E73DC6C7F
- "-Djava.locale.providers=COMPAT",
-]
-
def junit_tests(name, srcs, **kwargs):
s_name = name.replace("-", "_") + "TestSuite"
_gen_suite(
@@ -80,8 +74,8 @@
srcs = srcs,
outname = s_name,
)
- jvm_flags = kwargs.get("jvm_flags", []) + POST_JDK8_OPTS
- jvm_flags = jvm_flags + POST_JDK8_OPTS
+ jvm_flags = kwargs.get("jvm_flags", [])
+ jvm_flags = jvm_flags
java_test(
name = name,
test_class = s_name,