<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I'm having test failures in RawFileBackendTest. It appears that JUnit 3 always did tests in declaration order. While JUnit 4 does not define that.<div><br></div><div>The problem is that the RawFileBackendTest does a setup and then the first test used to be testCreate, which would create the module. The next two tests then used the result of that creation.</div><div><br></div><div>When I run with Java 7 testCreate is executed last. This cause the other two tests to fail in backend.initState() because the module does not exist.</div><div><br></div><div>Does anyone know JUnit 4 well enough to:</div><div>a) Have a test that merely tests module creation.</div><div>b) Executes that test before tests of that module.</div><div><br></div><div>That is forces the old JUnit 3 declaration order of execution or the equivalent.</div><div><br></div><div>When I've googled it there are all kinds of condescending "how stupid can you be to have dependency order between tests."</div><div><br></div><div>It seems that a test should do one thing and do it well. Obviously, the test class can be rewritten to have a single test that does it all. Then it is not an issue.</div><div><br></div><div>In Him,</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>DM</div><div><br><div><div>On Feb 1, 2014, at 6:20 AM, Chris Burrell &lt;<a href="mailto:chris@burrell.me.uk">chris@burrell.me.uk</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">This should now be fixed. Can someone re-test please?<div><br></div><div>I tested with an empty repo and everything worked fine.</div><div>Chris</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On 20 January 2014 16:38, DM Smith <span dir="ltr">&lt;<a href="mailto:dmsmith@crosswire.org" target="_blank">dmsmith@crosswire.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">We hope to get there. I'm no maven expert so Chris or Douglas "qmx" will be doing it.<span class="HOEnZb"><font color="#888888"><div><br></div><div>-- DM</div></font></span><div>
<div class="h5"><br><div><div>On Jan 20, 2014, at 11:35 AM, Greg Hellings &lt;<a href="mailto:greg.hellings@gmail.com" target="_blank">greg.hellings@gmail.com</a>&gt; wrote:</div><br><blockquote type="cite"><div dir="ltr">
If this gets resolved, would it then be possible for JSword to be hosted in the public Maven repositories? It would make building and deploying against JSword that much easier!<div><br></div><div>--Greg</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jan 20, 2014 at 10:33 AM, DM Smith <span dir="ltr">&lt;<a href="mailto:dmsmith@crosswire.org" target="_blank">dmsmith@crosswire.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Please do!<div><br></div><div>I had thought that the problem was that Maven was executing tests in a different order and that it always started with a clean slate. I just checked and the tests do not install the KJV or ESV. So that is needed and it needs to be forced to be early.</div>

<div><br></div><div>Since I maintain both the KJV and ESV, they are always in my local install.</div><div><br><div>In Him,</div><div><span style="white-space:pre-wrap">        </span>DM</div><div><br><div><div>
On Jan 20, 2014, at 11:21 AM, Chris Burrell &lt;<a href="mailto:chris@burrell.me.uk" target="_blank">chris@burrell.me.uk</a>&gt; wrote:</div><br><blockquote type="cite"><div dir="ltr">Apologies I hadn't read the whole thing. If we can include that test, then that would make it work.<div>

<br></div><div>Just add something like this in the plugins section in Maven;</div><div><br></div><div>
<pre style="font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;margin-top:0px;margin-bottom:0px;color:rgb(51,51,51);line-height:18px"><div style="padding-left:10px">&nbsp;<span style="color:navy">&lt;plugin&gt;</span></div>


<div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;groupId&gt;</span>org.apache.maven.plugins<span style="color:navy">&lt;/groupId&gt;</span></div><div style="padding-left:10px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;artifactId&gt;</span>maven-surefire-plugin<span style="color:navy">&lt;/artifactId&gt;</span></div><div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;executions&gt;</span></div>


<div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;execution&gt;</span></div><div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;configuration&gt;</span></div>


<div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;includes&gt;</span></div><div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;include&gt;</span>**/<span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;line-height:normal;white-space:normal">BookInstallerTest</span>.java<span style="color:navy">&lt;/include&gt;</span></div>


<div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;/includes&gt;</span></div><div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;/configuration&gt;</span></div>


<div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;phase&gt;</span>process-test-classes<span style="color:navy">&lt;/phase&gt;</span></div><div style="padding-left:10px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;goals&gt;</span></div><div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;goal&gt;</span>test<span style="color:navy">&lt;/goal&gt;</span></div>


<div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;/goals&gt;</span></div><div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;/execution&gt;</span></div>
<div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;/executions&gt;</span></div><div style="padding-left:10px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:navy">&lt;/plugin&gt;</span></div>
<div style="padding-left:10px"><span style="color:navy"><br></span></div><div style="padding-left:10px"><span style="color:navy"><br></span></div><div style="padding-left:10px">
<span style="color:navy">Chris</span></div><div style="padding-left:10px"><span style="color:navy"><br></span></div></pre></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On 20 January 2014 16:19, Chris Burrell <span dir="ltr">&lt;<a href="mailto:chris@burrell.me.uk" target="_blank">chris@burrell.me.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr">Indeed I think that's the issue. With STEP, as part of the Maven process we install the modules automatically.&nbsp;<div><br></div><div><a href="https://github.com/tyndale/step/blob/master/step-core/src/test/java/com/tyndalehouse/step/core/prebuild/DownloadJSwordBiblesPreReq.java" target="_blank">https://github.com/tyndale/step/blob/master/step-core/src/test/java/com/tyndalehouse/step/core/prebuild/DownloadJSwordBiblesPreReq.java</a></div>



<div><br></div><div>The above file is what I use to ensure the tests pass regardless... &nbsp;With a Maven snippet to ensure that test always run before every other test.&nbsp;</div><div><br></div><div>It uses the STEP service-orientated approach, so you'd have to rewrite bits of bit to make it work for JSword - I suspect it's worth it in the long run however. (Wouldn't take long I suspect)</div>


<span><font color="#888888">
<div>Chris</div><div><br></div><div><br></div><div><br></div><div><br></div></font></span></div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On 20 January 2014 16:13, Martin Denham <span dir="ltr">&lt;<a href="mailto:mjdenham@gmail.com" target="_blank">mjdenham@gmail.com</a>&gt;</span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I suppose CloudBees does not have any modules installed? &nbsp;The errors it reports look similar to the errors I had just now when I didn't have any Books installed on my local drive, before I installed KJV and ESV.<div>




<br></div><div>The junits do not seem to install any modules but assume kjv and esv are installed. &nbsp;I added the following to my local JSword and ran it before the junits and then they all ran fine. &nbsp;Maybe the fix would be to tell maven to only <a href="https://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html" target="_blank">include</a> AllTests.java and to add BookInstallerTest (below) as the first test in AllTests, but I am no expert with maven or CloudBees:</div>




<div><div><br></div><div><div>public class BookInstallerTest extends TestCase {</div><div><br></div><div>&nbsp; &nbsp; private BookInstaller underTest = new BookInstaller();</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; @Test</div><div>&nbsp; &nbsp; public void testInstallBook() {</div>




<div>&nbsp; &nbsp; &nbsp; &nbsp; try {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (Books.installed().getBook("KJV")==null) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Book kjv = underTest.getRepositoryBook("CrossWire", "KJV");</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; underTest.installBook("CrossWire", kjv);</div>




<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (Books.installed().getBook("ESV")==null) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Book esv = underTest.getRepositoryBook("CrossWire", "ESV");</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; underTest.installBook("CrossWire", esv);</div>




<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; } catch (Exception e) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fail(e.getMessage()); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; }</div><div>}</div><span><font color="#888888"><div>



<br>
</div>
</font></span><div class="gmail_extra"><span><font color="#888888">Martin</font></span><div><br><br><div class="gmail_quote">On 29 October 2013 21:39, Chris Burrell <span dir="ltr">&lt;<a href="mailto:chris@burrell.me.uk" target="_blank">chris@burrell.me.uk</a>&gt;</span> wrote:<br>





<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><p dir="ltr">I suspect names[i] refers to a module you don't have. </p><p dir="ltr">Step's maven build has something which automatically downloads missing modules before tests are run.&nbsp; Perhaps we can port that across?</p><span><font color="#888888"><p dir="ltr">Chris</p></font></span><div>


<div class="gmail_quote">On 29 Oct 2013 16:13, "Greg Hellings" &lt;<a href="mailto:greg.hellings@gmail.com" target="_blank">greg.hellings@gmail.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">






<div dir="ltr">The specific failures I'm seeing are:<div><div>Running org.crosswire.jsword.book.ConcurrencyTest</div><div>Exception in thread "Thread-3" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-5" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-7" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-9" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-11" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-13" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-15" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-17" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-19" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-21" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-23" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-25" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-27" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-29" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-31" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-33" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-35" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-37" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-39" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-41" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-43" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-45" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-47" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-49" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-51" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-53" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-55" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-57" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-59" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-61" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-63" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-65" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-67" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-69" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-71" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-73" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-75" java.lang.NullPointerException</div><div>Exception in thread "Thread-87" java.lang.NullPointerException</div>







<div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div><div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div>







<div>Exception in thread "Thread-89" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div><div>
<span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-91" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-93" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-95" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-97" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-99" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Exception in thread "Thread-101" java.lang.NullPointerException</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)</div>







<div><span style="white-space:pre-wrap">        </span>at java.lang.Thread.run(Thread.java:744)</div><div>Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.123 sec</div></div><div><br></div><div>This seems to be caused because&nbsp;</div>







<div>final Book b0 = Books.installed().getBook(names[1]);<br></div><div>returns empty.</div><div><br></div><div>I do have modules installed - iterating over the Books.installed().getBooks(); gives me a list of a half-dozen or so entries when I execute it from within Eclipse, but none when I execute it from the command line. I haven't had time to put my debugger on it yet to see what the difference between the two environments is, though. They were installed by the core Sword installmgr into my ~/.sword/ directory.</div>







<div><br></div><div>--Greg</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Oct 29, 2013 at 10:57 AM, DM Smith <span dir="ltr">&lt;<a href="mailto:dmsmith@crosswire.org" target="_blank">dmsmith@crosswire.org</a>&gt;</span> wrote:<br>







<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">I use ant to build and test. Maybe Chris B can chime in?<div>




<br></div><div>I do know that there is a failure in some of the tests because under ant the order is deterministic and a prerequisite of later test is satisfied by an earlier one. Under Jenkins on Cloudbees, which is configured to use maven, it fails. At JavaOne, I talked to the CloudBees folks and we narrowed it down. But we didn't have time to solve it.</div>







<div><br></div><div>Don't know if this is related to the failure that you are seeing.<span><font color="#888888"><br><div><br></div><div>DM Smith</div></font></span><div><br><div><div><div>
On Oct 29, 2013, at 11:49 AM, Greg Hellings &lt;<a href="mailto:greg.hellings@gmail.com" target="_blank">greg.hellings@gmail.com</a>&gt; wrote:</div><br></div><blockquote type="cite"><div><div dir="ltr">
<span style="font-family:arial,sans-serif;font-size:13px">I was just trying to build JSword, but I can't run an 'mvn package' in the current github master because it fails with several NPEs during the Concurrency Test.&nbsp;</span><span style="font-family:arial,sans-serif;font-size:13px">Is this a known issue?</span><div style="font-family:arial,sans-serif;font-size:13px">








<br></div><div style="font-family:arial,sans-serif;font-size:13px">Also, I can't locate a built jar of the core library in any maven repositories around. Is JSword not hosted in any of them?</div><div style="font-family:arial,sans-serif;font-size:13px">








<br></div><div style="font-family:arial,sans-serif;font-size:13px">--Greg</div></div></div><div>
_______________________________________________<br>jsword-devel mailing list<br><a href="mailto:jsword-devel@crosswire.org" target="_blank">jsword-devel@crosswire.org</a><br><a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>







</div></blockquote></div><br></div></div></div><br>_______________________________________________<br>
jsword-devel mailing list<br>
<a href="mailto:jsword-devel@crosswire.org" target="_blank">jsword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
jsword-devel mailing list<br>
<a href="mailto:jsword-devel@crosswire.org" target="_blank">jsword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
<br></blockquote></div>
</div><br>_______________________________________________<br>
jsword-devel mailing list<br>
<a href="mailto:jsword-devel@crosswire.org" target="_blank">jsword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
<br></blockquote></div><br></div></div></div></div></div>
<br>_______________________________________________<br>
jsword-devel mailing list<br>
<a href="mailto:jsword-devel@crosswire.org" target="_blank">jsword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
<br></blockquote></div><br></div>
</div></blockquote></div><br></div>
_______________________________________________<br>jsword-devel mailing list<br><a href="mailto:jsword-devel@crosswire.org" target="_blank">jsword-devel@crosswire.org</a><br><a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>

</blockquote></div><br></div></div></div><br>_______________________________________________<br>
jsword-devel mailing list<br>
<a href="mailto:jsword-devel@crosswire.org" target="_blank">jsword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>jsword-devel mailing list<br><a href="mailto:jsword-devel@crosswire.org" target="_blank">jsword-devel@crosswire.org</a><br><a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
</blockquote></div><br></div></div></div><br>_______________________________________________<br>
jsword-devel mailing list<br>
<a href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>jsword-devel mailing list<br><a href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>http://www.crosswire.org/mailman/listinfo/jsword-devel<br></blockquote></div><br></div></body></html>