It's a bug with mutable cached units. If you call setLocale to change language then cached units is not updated and will return old values (e.g. language don't switches).
Example:
PrettyTime t = new PrettyTime(Locale.ENGLISH);
t.setLocale(Locale.FRENCH);
System.out.println(t.format(new Date())); // error: returns english, but must french
It's a bug with mutable cached units. If you call setLocale to change language then cached units is not updated and will return old values (e.g. language don't switches).
Example: