[jsword-devel] Concurrent Test failure?

Martin Denham mjdenham at gmail.com
Mon Jan 20 09:13:05 MST 2014


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't have any
Books installed on my local drive, before I installed KJV and ESV.

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 include<https://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html>AllTests.java
and to add BookInstallerTest (below) as the first test in
AllTests, but I am no expert with maven or CloudBees:

public class BookInstallerTest extends TestCase {

    private BookInstaller underTest = new BookInstaller();

    @Test
    public void testInstallBook() {
        try {
            if (Books.installed().getBook("KJV")==null) {
                Book kjv = underTest.getRepositoryBook("CrossWire", "KJV");
                underTest.installBook("CrossWire", kjv);
            }
            if (Books.installed().getBook("ESV")==null) {
                Book esv = underTest.getRepositoryBook("CrossWire", "ESV");
                underTest.installBook("CrossWire", esv);
            }
        } catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
    }
}

Martin

On 29 October 2013 21:39, Chris Burrell <chris at burrell.me.uk> wrote:

> I suspect names[i] refers to a module you don't have.
>
> Step's maven build has something which automatically downloads missing
> modules before tests are run.  Perhaps we can port that across?
>
> Chris
> On 29 Oct 2013 16:13, "Greg Hellings" <greg.hellings at gmail.com> wrote:
>
>> The specific failures I'm seeing are:
>> Running org.crosswire.jsword.book.ConcurrencyTest
>> Exception in thread "Thread-3" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-5" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-7" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-9" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-11" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-13" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-15" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-17" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-19" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-21" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-23" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-25" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-27" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-29" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-31" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-33" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-35" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-37" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-39" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-41" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-43" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-45" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-47" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-49" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-51" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-53" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-55" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-57" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-59" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-61" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-63" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-65" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-67" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-69" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-71" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-73" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-75" java.lang.NullPointerException
>> Exception in thread "Thread-87" java.lang.NullPointerException
>>  at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>> at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-89" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-91" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-93" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-95" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-97" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-99" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Exception in thread "Thread-101" java.lang.NullPointerException
>> at
>> org.crosswire.jsword.book.ConcurrencyTest$2.run(ConcurrencyTest.java:57)
>>  at java.lang.Thread.run(Thread.java:744)
>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.123 sec
>>
>> This seems to be caused because
>> final Book b0 = Books.installed().getBook(names[1]);
>> returns empty.
>>
>> 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.
>>
>> --Greg
>>
>>
>> On Tue, Oct 29, 2013 at 10:57 AM, DM Smith <dmsmith at crosswire.org> wrote:
>>
>>> I use ant to build and test. Maybe Chris B can chime in?
>>>
>>> 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.
>>>
>>> Don't know if this is related to the failure that you are seeing.
>>>
>>> DM Smith
>>>
>>> On Oct 29, 2013, at 11:49 AM, Greg Hellings <greg.hellings at gmail.com>
>>> wrote:
>>>
>>> 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. Is this a known issue?
>>>
>>> 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?
>>>
>>> --Greg
>>> _______________________________________________
>>> jsword-devel mailing list
>>> jsword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/jsword-devel
>>>
>>>
>>>
>>> _______________________________________________
>>> jsword-devel mailing list
>>> jsword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/jsword-devel
>>>
>>>
>>
>> _______________________________________________
>> jsword-devel mailing list
>> jsword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/jsword-devel
>>
>>
> _______________________________________________
> jsword-devel mailing list
> jsword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/jsword-devel/attachments/20140120/6b1b3ff9/attachment-0001.html>


More information about the jsword-devel mailing list