< prev index next >
make/src/classes/build/tools/charsetmapping/SPI.java
Print this page
rev 17642 : 8186517: sun.nio.cs.StandardCharsets$Aliases and Classes can be lazily loaded
Reviewed-by: sherman, martin, plevart
@@ -91,25 +91,32 @@
charsets.values()
.stream()
.filter(cs -> cs.pkgName.equals("sun.nio.cs"))
.forEach( cs -> {
if (cs.aliases == null || cs.aliases.length == 0) {
- out.printf(" static final String[] aliases_%s = null;%n%n",
+ out.printf(" static String[] aliases_%s() { return null; }%n%n",
cs.clzName);
} else {
+ boolean methodEnd = true;
// non-final for SJIS and MS932 to support sun.nio.cs.map
if (cs.clzName.equals("SJIS") || cs.clzName.equals("MS932")) {
+ out.printf(" static String[] aliases_%s() { return aliases_%s; }%n%n",
+ cs.clzName, cs.clzName);
out.printf(" static String[] aliases_%s = new String[] {%n",
cs.clzName);
+ methodEnd = false;
} else {
- out.printf(" static final String[] aliases_%s = new String[] {%n",
+ out.printf(" static String[] aliases_%s() { return new String[] {%n",
cs.clzName);
}
for (String alias : cs.aliases) {
out.printf(" \"%s\",%n", alias);
}
out.printf(" };%n%n");
+ if (methodEnd) {
+ out.printf(" }%n%n");
+ }
}
});
Charset cs = charsets.get("SJIS");
if (cs == null || cs.pkgName.equals("sun.nio.cs.ext")) {
// StandardCharsets.java has explicit reference
< prev index next >