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:<div><br></div><div><div> int distance = v11n.distance(start, end);</div>
<div> if(distance < 0) {</div><div> this.start = end;</div><div> this.end = start;</div><div> this.verseCount = calcVerseCount();</div><div> } else if (distance == 0) {</div>
<div> this.start = start;</div><div> this.end = start;</div><div> this.verseCount = 1;</div><div> } else {</div><div> this.start = end;</div><div> this.end = start;</div>
<div> this.verseCount = calcVerseCount();</div><div> }</div><div><br></div><div>Loads of tests then start failing. Clearly, that's not quite replacing the constructor, like for like.</div><div><br></div>
<div>Chris</div><div><br></div><br><div class="gmail_quote">On 5 September 2012 16:07, Chris Burrell <span dir="ltr"><<a href="mailto:chris@burrell.me.uk" target="_blank">chris@burrell.me.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi<div><br></div><div>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.</div><div><br></div><div>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.</div>
<div><br></div><div>Also, I've made a small fix to the Versification elsewhere in the code (pull request in Git).</div><div><br></div><div><div>Caused by: java.lang.ArrayIndexOutOfBoundsException: -1</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.versification.Versification.getOrdinal(Versification.java:503)</div>
<div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.Verse.getOrdinal(Verse.java:440)</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.Verse.compareTo(Verse.java:261)</div>
<div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.VerseRange.<init>(VerseRange.java:136)</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.VerseRangeFactory.fromText(VerseRangeFactory.java:124)</div>
<div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.VerseRangeFactory.fromString(VerseRangeFactory.java:96)</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.VerseRangeFactory.fromString(VerseRangeFactory.java:61)</div>
<div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.AbstractPassage.addVerses(AbstractPassage.java:879)</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.BitwisePassage.<init>(BitwisePassage.java:88)</div>
<div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.RocketPassage.<init>(RocketPassage.java:70)</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.PassageType$1.createPassage(PassageType.java:44)</div>
<div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.passage.PassageKeyFactory.getKey(PassageKeyFactory.java:83)</div><div><span style="white-space:pre-wrap">        </span>at org.crosswire.jsword.book.basic.AbstractPassageBook.getKey(AbstractPassageBook.java:217)</div>
<div><span style="white-space:pre-wrap">        </span>at com.tyndalehouse.step.core.service.jsword.impl.JSwordPassageServiceImpl.getBookData(JSwordPassageServiceImpl.java:447)</div><div><span style="white-space:pre-wrap">        </span>at com.tyndalehouse.step.core.service.jsword.impl.JSwordPassageServiceImpl.getOsisText(JSwordPassageServiceImpl.java:433)</div>
<div><span style="white-space:pre-wrap">        </span>at com.tyndalehouse.step.core.service.impl.BibleInformationServiceImpl.getPassageText(BibleInformationServiceImpl.java:128)</div><div><span style="white-space:pre-wrap">        </span>at com.tyndalehouse.step.rest.controllers.BibleController.getBibleText(BibleController.java:157)</div>
<div><span style="white-space:pre-wrap">        </span>at com.tyndalehouse.step.rest.controllers.BibleController.getBibleText(BibleController.java:138)</div><div><span style="white-space:pre-wrap">        </span>... 30 more</div>
</div><div><br></div><div><br></div><div>Crhis</div><div><br></div>
</blockquote></div><br></div>