[
https://issues.apache.org/jira/browse/LANG-954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13880997#comment-13880997
]
Sebb commented on LANG-954:
---------------------------
I suspect the problem is that Android does not support \p{IsNd} which is the
Unicode block for Number, Decimal digit.
If so, that would seem to be a bug in Android.
I don't know if this is different from \d; certainly everything that matches \d
will match \p{IsNd} but the latter may perhaps include additional characters.
If not, then changing to use \d in the method
FastDateParser.NumberStrategy.addRegex should solve the issue for Android
without affecting anything else.
However, if there are additional characters that match \p{IsNd}, what are they,
and can they appear in DateFormats?
> uncaught PatternSyntaxException in FastDateFormat
> -------------------------------------------------
>
> Key: LANG-954
> URL: https://issues.apache.org/jira/browse/LANG-954
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.time.*
> Affects Versions: 3.2.1
> Environment: Android 2.1
> Reporter: Michael Keppler
> Labels: datetime
> Fix For: 3.3, Patch Needed
>
>
> When updating from lang 3.1.0 to 3.2.1 FastDateFormat stopped working on an
> Android project of mine, throwing uncaught regular expression exceptions for
> simple formats like "yyyy-MM-dd'T'".
> {code}
> Caused by: java.util.regex.PatternSyntaxException: U_ILLEGAL_ARGUMENT_ERROR
> (\p{IsNd}++)\Q-\E(\p{IsNd}++)\Q-\E(\p{IsNd}++)\QT\E
> at java.util.regex.Pattern.compileImpl(Native Method)
> at java.util.regex.Pattern.compile(Pattern.java:400)
> at java.util.regex.Pattern.<init>(Pattern.java:383)
> at java.util.regex.Pattern.compile(Pattern.java:374)
> at org.apache.commons.lang3.time.FastDateParser.init(FastDateParser.java:148)
> at
> org.apache.commons.lang3.time.FastDateParser.<init>(FastDateParser.java:104)
> at
> org.apache.commons.lang3.time.FastDateFormat.<init>(FastDateFormat.java:370)
> at
> org.apache.commons.lang3.time.FastDateFormat$1.createInstance(FastDateFormat.java:91)
> at
> org.apache.commons.lang3.time.FastDateFormat$1.createInstance(FastDateFormat.java:88)
> at org.apache.commons.lang3.time.FormatCache.getInstance(FormatCache.java:82)
> at
> org.apache.commons.lang3.time.FastDateFormat.getInstance(FastDateFormat.java:148)
> {code}
> more stack traces in this Jenkins output:
> http://ci.cgeo.org/job/c-geo/1686/console
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)