lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (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 09:32:00 GMT

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

Uwe Schindler commented on LUCENE-8146:
---------------------------------------

As a side-note: The access to sysprp from a static initializer in Lucene's Core classes should
be guarded by AccessController.doPrivileged() as a system property called "test." is not enabled
by default through securtty manager. Maybe also add a try/catch. But that's a separate issue.
As it is a static initializer, any failure (like this one) will cause Lucene to not work at
all!

I just noticed this, comments about this [~rcmuir]?

> 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