lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Muir (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-8146) Unit tests using StringHelper fail with ExceptionInInitializerError for maven surefire >= 2.18
Date Thu, 01 Feb 2018 12:30:00 GMT

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

Robert Muir commented on LUCENE-8146:
-------------------------------------

Is there a bug in the maven bugtracker for this problem? I don't like the idea that, because
maven fucked up, now lucene can never rely on the existence of a system property. We should
do the patch as a temporary measure, but not permanent. Its just for a couple months or so
until they have new versions of their code everywhere.

Also keep in mind lucene reads from system properties in other places too, StringHelper is
just used early so it gets a lot of heat from people when they do stupid shit (such as use
maven, or try to run lucene on android, or whatever).

 

> Unit tests using StringHelper fail with ExceptionInInitializerError for maven surefire
>= 2.18
> ----------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-8146
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8146
>             Project: Lucene - Core
>          Issue Type: Bug
>    Affects Versions: 7.2.1
>            Reporter: Julien Massenet
>            Priority: Minor
>         Attachments: LUCENE-8146-seed_issue.tar.gz, LUCENE-8146_v1.patch, LUCENE-8146_v2.patch
>
>
> This happens when multiple conditions are met:
>  * The client code is built with Maven
>  * To execute its unit tests, the client code relies on the {{maven-surefire-plugin}},
with a version greater than 2.17 (last working version)
>  * The client code uses the {{org.apache.lucene.util.StringHelper}} class (even transitively)
>  * The client is configured as with the standard Lucene maven build (i.e. it is possible
to fix the test seed using the {{tests.seed}} property)
> There was a change in Surefire's behavior starting with 2.18: when a property is empty,
instead of not sending it to the test runner, it will be sent with an empty value.
> This behavior can be observed with the attached sample project:
>  * {{mvn test}}: fails with a {{java.lang.ExceptionInInitializerError}}
>  * {{mvn test -Dtests.seed=123456}}: succeeds because the property is set to a real value
>  * {{mvn test -Dsurefire.version=2.17}}: succeeds because the surefire version is lower
than 2.18
> Attached is a patch (built against \{{branch_7x}}) that centralizes accesses to the {{tests.seed}}
system property; it also makes sure that if it is empty, it is treated as absent.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message