PendingChunk (int start1, int start2, int end1, int end2, boolean hasEqualWords) { int startOffset1 = getOffset(myWords1, myText1, start1); int startOffset2 = getOffset(myWords2, myText2, start2); int endOffset1 = getOffset(myWords1, myText1, end1); int endOffset2 = getOffset(myWords2, myText2, end2); start1 = Math.max(0, start1 + 1); start2 = Math.max(0, start2 + 1); end1 = Math.min(end1 + 1, myWords1.size()); end2 = Math.min(end2 + 1, myWords2.size()); WordBlock block = new WordBlock(new Range(start1, end1, start2, end2), new Range(startOffset1, endOffset1, startOffset2, endOffset2)); return new PendingChunk(block, hasEqualWords, hasWordsInside(block), isEqualsIgnoreWhitespace(block)); }