diff options
author | Matthias Sohn <matthias.sohn@sap.com> | 2020-12-03 02:04:36 +0100 |
---|---|---|
committer | Christian Halstrick <christian.halstrick@sap.com> | 2020-12-17 18:42:00 +0100 |
commit | 90b046e7abcfe56f072d0cf8733ffb576d2997af (patch) | |
tree | d298756b411d39e6be6cc620d2df3e9dc22f6598 | |
parent | b1d8e8642f1143edc1141f1ce00e39a5b95f0b6d (diff) | |
download | jgit-90b046e7abcfe56f072d0cf8733ffb576d2997af.tar.gz jgit-90b046e7abcfe56f072d0cf8733ffb576d2997af.zip |
[spotbugs] Fix potential NPE in WorkingTreeIterator#isModified
File#list can return null. Fix the potential NPE by using Files#list
which is also faster since it retrieves directory entries lazily while
File#list retrieves them eagerly.
Change-Id: Idf4bda398861c647587e357326b8bc8b587a2584
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java index 72278dc9c3..1a9d473a78 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java @@ -25,6 +25,7 @@ import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.CharacterCodingException; import java.nio.charset.CharsetEncoder; +import java.nio.file.Files; import java.nio.file.Path; import java.text.MessageFormat; import java.time.Instant; @@ -983,8 +984,9 @@ public abstract class WorkingTreeIterator extends AbstractTreeIterator { return true; } else if (ObjectId.zeroId().compareTo(idBuffer, idOffset) == 0) { - return new File(repository.getWorkTree(), - entry.getPathString()).list().length > 0; + Path p = repository.getWorkTree().toPath() + .resolve(entry.getPathString()); + return Files.list(p).findAny().isPresent(); } return false; } else if (mode == FileMode.SYMLINK.getBits()) |