# HG changeset patch # User naoto # Date 1504050979 25200 # Tue Aug 29 16:56:19 2017 -0700 # Node ID 0bc7e9acd67b8da547bfdbfb0f5a34ce3e7464e1 # Parent 965d4dde0086137a26e51f2585350712d8db9ce8 [mq]: 8180469 diff --git a/src/java.base/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java b/src/java.base/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java --- a/src/java.base/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java +++ b/src/java.base/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java @@ -87,9 +87,15 @@ Era[] jeras = CalendarSystem.forName("japanese").getEras(); if (jeras.length == value) { Era supEra = jeras[value - 1]; // 0-based index - return style == LONG ? - supEra.getName() : - supEra.getAbbreviation(); + if (javatime) { + return getBaseStyle(style) == NARROW_FORMAT ? + supEra.getAbbreviation() : + supEra.getName(); + } else { + return (style & LONG) != 0 ? + supEra.getName() : + supEra.getAbbreviation(); + } } } return null; diff --git a/test/java/util/Calendar/SupplementalJapaneseEraTest.java b/test/java/util/Calendar/SupplementalJapaneseEraTest.java --- a/test/java/util/Calendar/SupplementalJapaneseEraTest.java +++ b/test/java/util/Calendar/SupplementalJapaneseEraTest.java @@ -25,7 +25,7 @@ import java.time.chrono.JapaneseChronology; import java.time.chrono.JapaneseDate; import java.time.chrono.JapaneseEra; -import java.time.format.DateTimeFormatterBuilder; +import java.time.format.DateTimeFormatter; import java.time.format.TextStyle; import java.util.Calendar; import java.util.Date; @@ -166,17 +166,15 @@ errors++; } - // test long/abbreviated names with java.time.format - got = new DateTimeFormatterBuilder() - .appendPattern("GGGG") - .appendLiteral(" ") - .appendPattern("G") - .toFormatter(Locale.US) + // test full/short/narrow names with java.time.format + got = DateTimeFormatter + .ofPattern("GGGG G GGGGG") + .withLocale(Locale.US) .withChronology(JapaneseChronology.INSTANCE) .format(jdate); - expected = NEW_ERA_NAME + " " + NEW_ERA_ABBR; + expected = NEW_ERA_NAME + " " + NEW_ERA_NAME + " " + NEW_ERA_ABBR; if (!expected.equals(got)) { - System.err.printf("java.time formatter long/abbr names: got=\"%s\", expected=\"%s\"%n", got, expected); + System.err.printf("java.time formatter full/short/narrow names: got=\"%s\", expected=\"%s\"%n", got, expected); errors++; } }