jgit/org.eclipse.jgit.test
Dmitrii Filippov 1e04046a6d Fix crashes on rare combination of file names
The NameConflictTreeWalk class is used in merge for iterating over
entries in commits. The class uses a separate iterator for each
commit's tree. In rare cases it can incorrectly report the same entry
twice. As a result, duplicated entries are added to the merge result
and later jgit throws an exception when it tries to process merge
result.

The problem appears only when there is a directory-file conflict for
the last item in trees. Example from the bug:
Commit 1:
* subtree - file
* subtree-0 - file
Commit 2:
* subtree - directory
* subtree-0 - file
Here the names are ordered like this:
"subtree" file <"subtree-0" file < "subtree" directory.

The NameConflictTreeWalk handles similar cases correctly if there are
other files after subtree... in commits - this is processed in the
AbstractTreeIterator.min function. Existing code has a special
optimization for the case, when all trees are pointed to the same
entry name - it skips additional checks. However, this optimization
incorrectly skips checks if one of trees reached the end.

The fix processes a situation when some trees reached the end, while
others are still point to an entry.

bug: 535919
Change-Id: I62fde3dd89779fac282479c093400448b4ac5c86
2022-11-03 14:09:56 -04:00
..
.settings Merge branch 'stable-5.5' into stable-5.6 2021-12-04 18:06:32 +01:00
META-INF Prepare 6.4.0-SNAPSHOT builds 2022-09-14 13:56:40 +02:00
exttst/org/eclipse/jgit Add a cgit interoperability test for LockFile 2021-05-09 22:49:19 +02:00
findBugs [spotbugs] Silence CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE in jgit tests 2020-12-22 10:53:00 +01:00
src/org/eclipse/jgit Decouple JSch from JGit Core 2020-06-01 01:46:59 +02:00
tst/org/eclipse/jgit Fix crashes on rare combination of file names 2022-11-03 14:09:56 -04:00
tst-rsrc AmazonS3: Add support for AWS API signature version 4 2022-06-13 09:44:23 +02:00
.classpath Bump minimum required Java version to 11 2021-09-29 17:12:12 +02:00
.gitignore Fix test setup for Eclipse Photon and greater 2018-11-02 18:50:26 +01:00
.project Remove references to org.eclipse.jgit.java7 2016-08-05 11:22:27 +09:00
BUILD Fix BUILD rules for FilteredRenameDetectorTest 2022-08-01 13:31:13 -04:00
build.properties Use slf4j-simple instead of log4j for logging 2021-12-31 01:09:52 +01:00
org.eclipse.jgit.core--All-Tests (Java 11) (de).launch Bump minimum required Java version to 11 2021-09-29 17:12:12 +02:00
org.eclipse.jgit.core--All-Tests (Java 11).launch Bump minimum required Java version to 11 2021-09-29 17:12:12 +02:00
org.eclipse.jgit.core--All-Tests.launch
org.eclipse.jgit.test-WalkEncryptionTest-Proxy.launch Adding AES Walk Encryption support in http://www.jets3t.org/ mode 2015-10-18 19:14:31 +00:00
org.eclipse.jgit.test-WalkEncryptionTest.launch Adding AES Walk Encryption support in http://www.jets3t.org/ mode 2015-10-18 19:14:31 +00:00
plugin.properties Fix bundle localization of Apache SSH bundle 2019-06-21 17:54:06 +02:00
pom.xml Prepare 6.4.0-SNAPSHOT builds 2022-09-14 13:56:40 +02:00
tests.bzl Use slf4j-simple instead of log4j for logging 2021-12-31 01:09:52 +01:00