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

Matt Benson commented on LANG-624:
----------------------------------

Agreed; +1 for JAVA_VERSION_SPECIFICATION.

Perhaps we should talk more about the int/float calls.  I would like for 
existing code to continue to compile (the user having adjusted the import to 
the lang3 package).  However:
 * the int-based handling seems to invite chaos in the future.  What happens 
when version 1.12 of the spec emerges?
 * the specification-based version idea we've moved to only accommodates the 
one decimal, further marking the whole 3-digit int concept as obsolete.
 * we could support Number, comparing its float value, but this would yield a 
different behavior for Integer/boxed int than what had worked previously, and 
would break clients more insidiously than compilation failure.

Considering these points I don't see an acceptable way to support existing 
code.  Until someone suggests a better way, my position is that they're more 
trouble than they're worth.

> SystemUtils.getJavaVersionAsFloat throws StringIndexOutOfBoundsException on 
> Android runtime/Dalvik VM
> -----------------------------------------------------------------------------------------------------
>
>                 Key: LANG-624
>                 URL: https://issues.apache.org/jira/browse/LANG-624
>             Project: Commons Lang
>          Issue Type: Bug
>          Components: lang.*
>    Affects Versions: 2.5
>            Reporter: Travis Truman
>             Fix For: 3.0
>
>         Attachments: AndriodJavaVersion.png, LANG-624.patch
>
>
> Can be replicated in the Android emulator quite easily.
> Stack trace:
> {noformat}
> at 
> org.apache.commons.lang.builder.ToStringBuilder.<clinit>(ToStringBuilder.java:98)
> E/AndroidRuntime( 1681):      ... 17 more
> E/AndroidRuntime( 1681): Caused by: java.lang.ExceptionInInitializerError
> E/AndroidRuntime( 1681):      at 
> org.apache.commons.lang.builder.ToStringStyle$MultiLineToStringStyle.<init>(ToStringStyle.java:2276)
> E/AndroidRuntime( 1681):      at 
> org.apache.commons.lang.builder.ToStringStyle.<clinit>(ToStringStyle.java:94)
> E/AndroidRuntime( 1681):      ... 18 more
> E/AndroidRuntime( 1681): Caused by: java.lang.StringIndexOutOfBoundsException
> E/AndroidRuntime( 1681):      at java.lang.String.substring(String.java:1571)
> E/AndroidRuntime( 1681):      at 
> org.apache.commons.lang.SystemUtils.getJavaVersionAsFloat(SystemUtils.java:1153)
> E/AndroidRuntime( 1681):      at 
> org.apache.commons.lang.SystemUtils.<clinit>(SystemUtils.java:818)
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to