make/tools/src/build/tools/cldrconverter/Bundle.java
Print this page
*** 485,513 ****
CalendarType calendarType, String name) {
String calendarPrefix = calendarType.keyElementName();
for (String k : patternKeys) {
if (myMap.containsKey(calendarPrefix + k)) {
int len = patternKeys.length;
! List<String> rawPatterns = new ArrayList<>();
! List<String> patterns = new ArrayList<>();
for (int i = 0; i < len; i++) {
String key = calendarPrefix + patternKeys[i];
String pattern = (String) myMap.remove(key);
if (pattern == null) {
pattern = (String) parentsMap.remove(key);
}
- if (pattern != null) {
rawPatterns.add(i, pattern);
patterns.add(i, translateDateFormatLetters(calendarType, pattern));
}
}
if (patterns.isEmpty()) {
return;
}
String key = calendarPrefix + name;
if (!rawPatterns.equals(patterns)) {
! myMap.put("cldr." + key, rawPatterns.toArray(new String[len]));
}
myMap.put(key, patterns.toArray(new String[len]));
break;
}
}
--- 485,521 ----
CalendarType calendarType, String name) {
String calendarPrefix = calendarType.keyElementName();
for (String k : patternKeys) {
if (myMap.containsKey(calendarPrefix + k)) {
int len = patternKeys.length;
! List<String> rawPatterns = new ArrayList<>(len);
! List<String> patterns = new ArrayList<>(len);
for (int i = 0; i < len; i++) {
String key = calendarPrefix + patternKeys[i];
String pattern = (String) myMap.remove(key);
if (pattern == null) {
pattern = (String) parentsMap.remove(key);
}
rawPatterns.add(i, pattern);
+ if (pattern != null) {
patterns.add(i, translateDateFormatLetters(calendarType, pattern));
+ } else {
+ patterns.add(i, null);
}
}
+ // If patterns is empty or has any nulls, discard patterns.
if (patterns.isEmpty()) {
return;
}
+ for (String p : patterns) {
+ if (p == null) {
+ return;
+ }
+ }
String key = calendarPrefix + name;
if (!rawPatterns.equals(patterns)) {
! myMap.put("java.time." + key, rawPatterns.toArray(new String[len]));
}
myMap.put(key, patterns.toArray(new String[len]));
break;
}
}