Skip to content

Commit 50b972f

Browse files
committed
Avoid NPE in
org.apache.commons.io.filefilter.WildcardFilter.accept(File) Internal refactoring
1 parent 53371a2 commit 50b972f

File tree

6 files changed

+13
-4
lines changed

6 files changed

+13
-4
lines changed

src/changes/changes.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ The <action> type attribute can be add,update,fix,remove.
6868
<action dev="ggregory" type="fix" due-to="Gary Gregory">Fix SpotBugs [ERROR] Medium: Shared primitive variable "propagateClose" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.BoundedInputStream] At BoundedInputStream.java:[line 555] AT_STALE_THREAD_WRITE_OF_PRIMITIVE.</action>
6969
<action dev="ggregory" type="fix" due-to="maxxedev, Piotr P. Karwasz, Gary Gregory">QueueInputStream reads all but the first byte without waiting. #748.</action>
7070
<action dev="ggregory" type="fix" due-to="Gary Gregory">Javadoc fixes and improvements.</action>
71+
<action dev="ggregory" type="fix" due-to="Gary Gregory">Avoid NPE in org.apache.commons.io.filefilter.WildcardFilter.accept(File).</action>
7172
<!-- ADD -->
7273
<action dev="ggregory" type="add" issue="IO-875" due-to="Pierre Baumard, Gary Gregory">Add org.apache.commons.io.file.CountingPathVisitor.accept(Path, BasicFileAttributes) #743.</action>
7374
<action dev="ggregory" type="add" due-to="Gary Gregory">Add org.apache.commons.io.Charsets.isAlias(Charset, String).</action>

src/main/java/org/apache/commons/io/filefilter/AbstractFileFilter.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,14 @@ protected FileVisitResult handle(final Throwable t) {
136136
return FileVisitResult.TERMINATE;
137137
}
138138

139+
boolean isDirectory(final File file) {
140+
return file != null && file.isDirectory();
141+
}
142+
143+
boolean isFile(final File file) {
144+
return file != null && file.isFile();
145+
}
146+
139147
@Override
140148
public FileVisitResult postVisitDirectory(final Path dir, final IOException exc) throws IOException {
141149
return FileVisitResult.CONTINUE;

src/main/java/org/apache/commons/io/filefilter/DirectoryFileFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ protected DirectoryFileFilter() {
9797
*/
9898
@Override
9999
public boolean accept(final File file) {
100-
return file != null && file.isDirectory();
100+
return isDirectory(file);
101101
}
102102

103103
/**

src/main/java/org/apache/commons/io/filefilter/FileFileFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ protected FileFileFilter() {
9797
*/
9898
@Override
9999
public boolean accept(final File file) {
100-
return file != null && file.isFile();
100+
return isFile(file);
101101
}
102102

103103
/**

src/main/java/org/apache/commons/io/filefilter/MagicNumberFileFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ public MagicNumberFileFilter(final String magicNumber, final long offset) {
258258
*/
259259
@Override
260260
public boolean accept(final File file) {
261-
if (file != null && file.isFile() && file.canRead()) {
261+
if (isFile(file) && file.canRead()) {
262262
try {
263263
return RandomAccessFileMode.READ_ONLY.apply(file.toPath(),
264264
raf -> Arrays.equals(magicNumbers, RandomAccessFiles.read(raf, byteOffset, magicNumbers.length)));

src/main/java/org/apache/commons/io/filefilter/WildcardFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public WildcardFilter(final String... wildcards) {
132132
*/
133133
@Override
134134
public boolean accept(final File file) {
135-
if (file.isDirectory()) {
135+
if (isDirectory(file)) {
136136
return false;
137137
}
138138
return Stream.of(wildcards).anyMatch(wildcard -> FilenameUtils.wildcardMatch(file.getName(), wildcard));

0 commit comments

Comments
 (0)