[jsword-devel] Compare method in JSword
Chris Burrell
chris at burrell.me.uk
Wed Sep 5 08:45:41 MST 2012
On the below, I was tempted, to fix this by using the distance() on the
versification. However, that does not seem to work. Not sure why. Here was
my code for VerseRange constructor:
int distance = v11n.distance(start, end);
if(distance < 0) {
this.start = end;
this.end = start;
this.verseCount = calcVerseCount();
} else if (distance == 0) {
this.start = start;
this.end = start;
this.verseCount = 1;
} else {
this.start = end;
this.end = start;
this.verseCount = calcVerseCount();
}
Loads of tests then start failing. Clearly, that's not quite replacing the
constructor, like for like.
Chris
On 5 September 2012 16:07, Chris Burrell <chris at burrell.me.uk> wrote:
> Hi
>
> While I'm trying to retrieve a passage it seems to want to compare some
> keys. I'm looking at the DRC module, with Tob 1, but the problem occurs
> elsewhere.
>
> Here's the stack trace I get. I'm at a lost to why we need to compare
> verse numbers here, but perhaps someone can enlighten me. Happy to fix it
> if I can understand what it's trying to do and a way forward.
>
> Also, I've made a small fix to the Versification elsewhere in the code
> (pull request in Git).
>
> Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
> at
> org.crosswire.jsword.versification.Versification.getOrdinal(Versification.java:503)
> at org.crosswire.jsword.passage.Verse.getOrdinal(Verse.java:440)
> at org.crosswire.jsword.passage.Verse.compareTo(Verse.java:261)
> at org.crosswire.jsword.passage.VerseRange.<init>(VerseRange.java:136)
> at
> org.crosswire.jsword.passage.VerseRangeFactory.fromText(VerseRangeFactory.java:124)
> at
> org.crosswire.jsword.passage.VerseRangeFactory.fromString(VerseRangeFactory.java:96)
> at
> org.crosswire.jsword.passage.VerseRangeFactory.fromString(VerseRangeFactory.java:61)
> at
> org.crosswire.jsword.passage.AbstractPassage.addVerses(AbstractPassage.java:879)
> at
> org.crosswire.jsword.passage.BitwisePassage.<init>(BitwisePassage.java:88)
> at
> org.crosswire.jsword.passage.RocketPassage.<init>(RocketPassage.java:70)
> at
> org.crosswire.jsword.passage.PassageType$1.createPassage(PassageType.java:44)
> at
> org.crosswire.jsword.passage.PassageKeyFactory.getKey(PassageKeyFactory.java:83)
> at
> org.crosswire.jsword.book.basic.AbstractPassageBook.getKey(AbstractPassageBook.java:217)
> at
> com.tyndalehouse.step.core.service.jsword.impl.JSwordPassageServiceImpl.getBookData(JSwordPassageServiceImpl.java:447)
> at
> com.tyndalehouse.step.core.service.jsword.impl.JSwordPassageServiceImpl.getOsisText(JSwordPassageServiceImpl.java:433)
> at
> com.tyndalehouse.step.core.service.impl.BibleInformationServiceImpl.getPassageText(BibleInformationServiceImpl.java:128)
> at
> com.tyndalehouse.step.rest.controllers.BibleController.getBibleText(BibleController.java:157)
> at
> com.tyndalehouse.step.rest.controllers.BibleController.getBibleText(BibleController.java:138)
> ... 30 more
>
>
> Crhis
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/jsword-devel/attachments/20120905/3785b926/attachment.html>
More information about the jsword-devel
mailing list