Elsewhere in JGit we often speak of ranges in terms of [start, end) and not [start, start + length).  Its probably a fair amount of code change to modify the semantics here, but I wonder if we shouldn't anyway.  Our Edit class for example in diff package uses [start, end) semantics.  And that's what we use in RawParseUtils for pretty much every parse function.  Etc.