Skip to content

Commit 421b9dc

Browse files
wilxgarydgregory
authored andcommitted
[IO-634] Make getCause synchronized and use a Deque instead of Stack (#64)
* Fix "Non-synchronized override of synchronized method". * Replace synchronized Stack with unsynchronized Deque in FilenameUtils.
1 parent b0bbc43 commit 421b9dc

2 files changed

Lines changed: 6 additions & 5 deletions

File tree

src/main/java/org/apache/commons/io/FilenameUtils.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@
1818

1919
import java.io.File;
2020
import java.io.IOException;
21+
import java.util.ArrayDeque;
2122
import java.util.ArrayList;
2223
import java.util.Arrays;
2324
import java.util.Collection;
25+
import java.util.Deque;
2426
import java.util.List;
25-
import java.util.Stack;
2627
import java.util.regex.Matcher;
2728
import java.util.regex.Pattern;
2829

@@ -1385,11 +1386,11 @@ public static boolean wildcardMatch(final String fileName, final String wildcard
13851386
boolean anyChars = false;
13861387
int textIdx = 0;
13871388
int wcsIdx = 0;
1388-
final Stack<int[]> backtrack = new Stack<>();
1389+
final Deque<int[]> backtrack = new ArrayDeque<>(wcs.length);
13891390

13901391
// loop around a backtrack stack, to handle complex * matching
13911392
do {
1392-
if (backtrack.size() > 0) {
1393+
if (!backtrack.isEmpty()) {
13931394
final int[] array = backtrack.pop();
13941395
wcsIdx = array[0];
13951396
textIdx = array[1];
@@ -1448,7 +1449,7 @@ public static boolean wildcardMatch(final String fileName, final String wildcard
14481449
return true;
14491450
}
14501451

1451-
} while (backtrack.size() > 0);
1452+
} while (!backtrack.isEmpty());
14521453

14531454
return false;
14541455
}

src/main/java/org/apache/commons/io/TaggedIOException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public Serializable getTag() {
129129
* @return wrapped exception
130130
*/
131131
@Override
132-
public IOException getCause() {
132+
public synchronized IOException getCause() {
133133
return (IOException) super.getCause();
134134
}
135135

0 commit comments

Comments
 (0)