<div dir="ltr">I suppose CloudBees does not have any modules installed?  The errors it reports look similar to the errors I had just now when I didn&#39;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.  I added the following to my local JSword and ran it before the junits and then they all ran fine.  Maybe the fix would be to tell maven to only <a href="https://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html">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>    private BookInstaller underTest = new BookInstaller();</div><div>    </div><div>    @Test</div><div>    public void testInstallBook() {</div>
<div>        try {</div><div>            if (Books.installed().getBook(&quot;KJV&quot;)==null) {</div><div>                Book kjv = underTest.getRepositoryBook(&quot;CrossWire&quot;, &quot;KJV&quot;);</div><div>                underTest.installBook(&quot;CrossWire&quot;, kjv);</div>
<div>            }</div><div>            if (Books.installed().getBook(&quot;ESV&quot;)==null) {</div><div>                Book esv = underTest.getRepositoryBook(&quot;CrossWire&quot;, &quot;ESV&quot;);</div><div>                underTest.installBook(&quot;CrossWire&quot;, esv);</div>
<div>            }</div><div>        } catch (Exception e) {</div><div>            e.printStackTrace();</div><div>            fail(e.getMessage());            </div><div>        }</div><div>    }</div><div>}</div><div><br>
</div>
<div class="gmail_extra">Martin<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&#39;t have. </p>

<p dir="ltr">Step&#39;s maven build has something which automatically downloads missing modules before tests are run.  Perhaps we can port that across?</p><span><font color="#888888">
<p dir="ltr">Chris</p></font></span><div><div>
<div class="gmail_quote">On 29 Oct 2013 16:13, &quot;Greg Hellings&quot; &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&#39;m seeing are:<div><div>Running org.crosswire.jsword.book.ConcurrencyTest</div><div>Exception in thread &quot;Thread-3&quot; 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 &quot;Thread-5&quot; 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 &quot;Thread-7&quot; 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 &quot;Thread-9&quot; 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 &quot;Thread-11&quot; 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 &quot;Thread-13&quot; 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 &quot;Thread-15&quot; 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 &quot;Thread-17&quot; 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 &quot;Thread-19&quot; 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 &quot;Thread-21&quot; 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 &quot;Thread-23&quot; 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 &quot;Thread-25&quot; 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 &quot;Thread-27&quot; 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 &quot;Thread-29&quot; 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 &quot;Thread-31&quot; 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 &quot;Thread-33&quot; 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 &quot;Thread-35&quot; 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 &quot;Thread-37&quot; 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 &quot;Thread-39&quot; 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 &quot;Thread-41&quot; 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 &quot;Thread-43&quot; 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 &quot;Thread-45&quot; 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 &quot;Thread-47&quot; 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 &quot;Thread-49&quot; 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 &quot;Thread-51&quot; 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 &quot;Thread-53&quot; 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 &quot;Thread-55&quot; 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 &quot;Thread-57&quot; 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 &quot;Thread-59&quot; 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 &quot;Thread-61&quot; 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 &quot;Thread-63&quot; 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 &quot;Thread-65&quot; 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 &quot;Thread-67&quot; 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 &quot;Thread-69&quot; 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 &quot;Thread-71&quot; 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 &quot;Thread-73&quot; 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 &quot;Thread-75&quot; java.lang.NullPointerException</div><div>Exception in thread &quot;Thread-87&quot; 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 &quot;Thread-89&quot; 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 &quot;Thread-91&quot; 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 &quot;Thread-93&quot; 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 &quot;Thread-95&quot; 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 &quot;Thread-97&quot; 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 &quot;Thread-99&quot; 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 &quot;Thread-101&quot; 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 </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&#39;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&#39;t have time to solve it.</div>



<div><br></div><div>Don&#39;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><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></div><blockquote type="cite"><div><div><div dir="ltr">
<span style="font-family:arial,sans-serif;font-size:13px">I was just trying to build JSword, but I can&#39;t run an &#39;mvn package&#39; in the current github master because it fails with several NPEs during the Concurrency Test. </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&#39;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><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></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>