]> source.dussan.org Git - jgit.git/commit
Handle invalid tree extensions 39/40339/1
authorChristian Halstrick <christian.halstrick@sap.com>
Mon, 26 Jan 2015 10:12:27 +0000 (11:12 +0100)
committerChristian Halstrick <christian.halstrick@sap.com>
Mon, 26 Jan 2015 10:16:53 +0000 (11:16 +0100)
commit3d17be85bac795d7da3caa15b5b09adb46052584
tree985cf55b3377516ce048d2e6511631f5720c4886
parente314e42d41cca60748a5f4e6dec1682bdb8bdbe4
Handle invalid tree extensions

In case the index contains wrong tree extensions don't throw a
ArrayIndexOutOfBounds exception but revalidate the tree extension.

It happened that the git index written by Git for Windows contained valid
(means entryCount>0) tree extensions for pathes which are not existing
in the index. Native git handles this inconsistency silently but JGit
was crashing with a ArrayIndexOutOfBounds exception. Teach JGit to
better recognize such cases and revalidate such extensions.

It's hard to write a test because JGit doesn't write such extensions. It
only reads, validates and makes use of them. But the bug tells how to
create such situations.

Bug: 457152
Change-Id: Id3ffd7dc7ae1c55674d88bf1b43953234fe0b68d
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheTree.java