online-auction-java
online-auction-java copied to clipboard
Nav controller initialization failure in Japan locale
The initialization code below in webGateway/controllers/Nav.java fails in Japan locale.
private static final PrettyTime prettyTime = new PrettyTime(); static { prettyTime.removeUnit(JustNow.class); ResourcesTimeUnit justNow = new ResourcesTimeUnit() { { setMaxQuantity(10000); } @Override protected String getResourceKeyPrefix() { return "JustNow"; } }; prettyTime.registerUnit(justNow, new ResourcesTimeFormat(justNow)); }
to reproduce it ,we can just change the first line to
PrettyTime prettyTime = new PrettyTime(Locale.JAPAN);
It will fail with the following exception:
Exception in thread "main" java.util.MissingResourceException: Can't find resource for bundle org.ocpsoft.prettytime.i18n.Resources, key Pattern at java.util.ResourceBundle.getObject(ResourceBundle.java:450) at java.util.ResourceBundle.getObject(ResourceBundle.java:444) at java.util.ResourceBundle.getString(ResourceBundle.java:407) at org.ocpsoft.prettytime.i18n.Resources_ja$JaTimeFormat.(Resources_ja.java:148) at org.ocpsoft.prettytime.i18n.Resources_ja.getFormatFor(Resources_ja.java:117) at org.ocpsoft.prettytime.impl.ResourcesTimeFormat.setLocale(ResourcesTimeFormat.java:34) at org.ocpsoft.prettytime.impl.ResourcesTimeFormat.setLocale(ResourcesTimeFormat.java:16) at org.ocpsoft.prettytime.PrettyTime.registerUnit(PrettyTime.java:472)
this is because the getUnitName(TimeUnit) method of JaTimeFormat class cannot properly get the unit name in case of anonymous TimeUnit class(An empty string is returned).
private String getUnitName(TimeUnit unit) { return unit.getClass().getSimpleName(); }
Possibly it is an issue of PrettyTime,instead of this project.