summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Sohn <matthias.sohn@sap.com>2020-12-03 02:04:36 +0100
committerChristian Halstrick <christian.halstrick@sap.com>2020-12-17 18:42:00 +0100
commit90b046e7abcfe56f072d0cf8733ffb576d2997af (patch)
treed298756b411d39e6be6cc620d2df3e9dc22f6598
parentb1d8e8642f1143edc1141f1ce00e39a5b95f0b6d (diff)
downloadjgit-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.java6
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())