A CharSequence (or a String) is potentially a very large object of which only a subsequence was being parsed. Some CharSequence implementations are mutable. An exception has a potentially unpredictable life time. Rather than keeping a hard reference to the character sequence where the parser error occured, make a defensive copy on construction.
This is a widening of the range of acceptable inputs from String to CharSequence. This allows javax.time objects to be parsed from inputs such as StringBuilder or a nio CharBuffer without first allocating a String.
The unit test suite returns some 216 test failures if the default locale is not an English locale. This commit simply forces it to English when running the test suite.
placed in the parser, the rule loader just reads its tables and needs less checking.