You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sebb (JIRA)" <ji...@apache.org> on 2014/01/24 16:14:38 UTC

[jira] [Comment Edited] (LANG-954) uncaught PatternSyntaxException in FastDateFormat

    [ https://issues.apache.org/jira/browse/LANG-954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13880997#comment-13880997 ] 

Sebb edited comment on LANG-954 at 1/24/14 3:12 PM:
----------------------------------------------------

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.

The IsNd block includes characters such as Arabic numerals which may perhaps appear in dates to be parsed.


was (Author: sebb@apache.org):
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)