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

Dietrich Travkin edited comment on TIKA-2756 at 10/24/18 12:08 PM:
-------------------------------------------------------------------

We don't need jackcess at all to reproduce the above error. The problem is in 
the commons-lang library (and jackcess is dependent on it and could potentially 
produce the same error... and tika depends on jackcess).

You can reproduce the problem with the following code
{code:java}
import org.apache.commons.lang.ArrayUtils;

public class RunWithJava11 {

    public static void main(String[] args) {
        String[] array = new String[] {"some Text"};
        String result = ArrayUtils.toString(array);
        System.out.println(result);
    }
}
{code}
and will get the following stacktrace:
{noformat}
Exception in thread "main" java.lang.ExceptionInInitializerError
        at 
org.apache.commons.lang.builder.ToStringStyle$MultiLineToStringStyle.<init>(ToStringStyle.java:2276)
        at 
org.apache.commons.lang.builder.ToStringStyle.<clinit>(ToStringStyle.java:94)
        at 
org.apache.commons.lang.builder.ToStringBuilder.<clinit>(ToStringBuilder.java:98)
        at org.apache.commons.lang.ArrayUtils.toString(ArrayUtils.java:180)
        at org.apache.commons.lang.ArrayUtils.toString(ArrayUtils.java:161)
        at TestJava11.main(RunWithJava11.java:7)
Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end 3, length 2
        at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
        at java.base/java.lang.String.substring(String.java:1874)
        at 
org.apache.commons.lang.SystemUtils.getJavaVersionAsFloat(SystemUtils.java:1153)
        at org.apache.commons.lang.SystemUtils.<clinit>(SystemUtils.java:818)
        ... 6 more
{noformat}


was (Author: travkin):
We don't need jackcess at all to reproduce the above error. The problem is in 
the commons-lang library (and jackcess is dependent on it and could potentially 
produce the same error... and tika depends on jackcess).

You can reproduce the problem with the following code
{code:java}
import org.apache.commons.lang.ArrayUtils;

public class RunWithJava11 {

    public static void main(String[] args) {
        String[] array = new String[] {"some Text"};
        String result = ArrayUtils.toString(array);
        System.out.println(result);
    }
}
{code}
and will get the following stacktrace:
{noformat}
Exception in thread "main" java.lang.ExceptionInInitializerError
        at 
org.apache.commons.lang.builder.ToStringStyle$MultiLineToStringStyle.<init>(ToStringStyle.java:2276)
        at 
org.apache.commons.lang.builder.ToStringStyle.<clinit>(ToStringStyle.java:94)
        at 
org.apache.commons.lang.builder.ToStringBuilder.<clinit>(ToStringBuilder.java:98)
        at org.apache.commons.lang.ArrayUtils.toString(ArrayUtils.java:180)
        at org.apache.commons.lang.ArrayUtils.toString(ArrayUtils.java:161)
        at TestJava11.main(TestJava11.java:7)
Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end 3, length 2
        at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
        at java.base/java.lang.String.substring(String.java:1874)
        at 
org.apache.commons.lang.SystemUtils.getJavaVersionAsFloat(SystemUtils.java:1153)
        at org.apache.commons.lang.SystemUtils.<clinit>(SystemUtils.java:818)
        ... 6 more
{noformat}

> Switch to commons-lang 3
> ------------------------
>
>                 Key: TIKA-2756
>                 URL: https://issues.apache.org/jira/browse/TIKA-2756
>             Project: Tika
>          Issue Type: Improvement
>            Reporter: Robert Munteanu
>            Priority: Major
>
> Tika 1.9.1 is using the legacy commons-lang 2.x series. This series is not 
> going to receive updates anymore and is completely superseded by commons-lang 
> 3.x .
> Projects that use Tika are blocked from dropping commons-lang 2.x due to this 
> dependency.
> The link that I found was from tika-parsers to jackcess and then to 
> commons-lang 2.6
> {noformat}
> [INFO] +- com.healthmarketscience.jackcess:jackcess:jar:2.1.12:compile
> [INFO] |  \- commons-lang:commons-lang:jar:2.6:compile
> {noformat}
> If I understand correctly, this is the only commons-lang 2.x dependency from 
> the Tika runtime and it would be great to remove it.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to