[
https://issues.apache.org/jira/browse/SOLR-4853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hoss Man updated SOLR-4853:
---------------------------
Attachment: SOLR-4853.patch
Thanks for opening this John,
I don't remember seeing Ludovic's comment in SOLR-4394 after that issue was
resolved, but even looking at it now i couldn't understand how my change caused
a problem in that code since: a) i didn't modify anything in ExternalPaths; b)
SolrJettyTestBase already had a compile time dependency on ExternalPaths. It's
only because of your stack trace that i was able to understand his comment
about overriding getSolrHome() and how my change introducing TEST_KEYSTORE
introduced a problem for people subclassing SolrjettyTestBase in their external
tests.
I'm attaching a patch that i think resolves this issue. SolrJettyTestBase now
skips the SSL randomization logic (instead of a hard fail) if the example
configs can't be found, and i also tried to improve ExternalPaths.SOURCE_HOME
(and determineSourceHome()) have cleaner behavior in the event that they get
used inadvertently by a client test.
I experimenting with this changes in a little one off external test i created
and it seemed to work, but i'd appreciate feedback from an end user who got
burned by this bug to e sure it really resolves things for you.
> SolrJettyTestBase can no longer be reused by end users
> ------------------------------------------------------
>
> Key: SOLR-4853
> URL: https://issues.apache.org/jira/browse/SOLR-4853
> Project: Solr
> Issue Type: Bug
> Components: Tests
> Affects Versions: 4.3, 4.2.1
> Environment: Java 1.7.0_21, Maven 3.0.3, OS X 10.7.5
> Reporter: John Gibson
> Labels: junit, test
> Attachments: SOLR-4853.patch
>
>
> While trying to use SolrJettyTestBase to build some unit tests for my project
> I ran into an NPE:
> {code}
> java.lang.NullPointerException
> at
> org.apache.solr.util.ExternalPaths.determineSourceHome(ExternalPaths.java:50)
> at org.apache.solr.util.ExternalPaths.<clinit>(ExternalPaths.java:28)
> at
> org.apache.solr.SolrJettyTestBase.<clinit>(SolrJettyTestBase.java:53)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:266)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$1.run(RandomizedRunner.java:486)
> {code}
> Apparently some changes to SolrJettyTestBase's https support caused it to
> require the keystore that's distributed with the Solr examples. Specifically
> the TEST_KEYSTORE static variable triggers a search for SOURCE_HOME in
> ExternalPaths which throws an NPE if the folder isn't found.
> According to Steve Molloy this [used to work in Solr
> 4.1|http://lucene.472066.n3.nabble.com/Test-framework-question-td4060123.html]
> and Chris Hostetter confirmed that this is a bug. Ludovic Boutros also
> reported this [in
> SOLR-4394|https://issues.apache.org/jira/browse/SOLR-4394?focusedCommentId=13610991&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13610991].
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]