int nextOffset = nextLocation.getOffset();
if (nextOffset + nextLocation.getLength() <= currentEndOffset) {
current = new TraceRegion(nextOffset, nextLocation.getLength(), nextLocation.getLineNumber(), nextLocation.getEndLineNumber(),
createLocationData(nextRegion, myPath), current);
currentEndOffset = nextLocation.getOffset() + nextLocation.getLength();
locations.add(Tuples.create(splitted, nextRegion));
current = new TraceRegion(nextOffset, nextLength, nextLocation.getLineNumber(), splittedBeginLine,
createLocationData(nextRegion, myPath), current);
currentEndOffset = nextOffset + nextLength;
current = new TraceRegion(nextLocation.getOffset(), nextLocation.getLength(), nextLocation.getLineNumber(), nextLocation.getEndLineNumber(),
createLocationData(nextRegion, myPath), null);
currentEndOffset = nextLocation.getOffset() + nextLocation.getLength();