Skip to content
This repository was archived by the owner on Mar 14, 2025. It is now read-only.

Commit f1f7833

Browse files
Make PropfindResponseParser stateless (and thus threadsafe)
1 parent 48dcdcf commit f1f7833

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/main/java/org/cryptomator/cloudaccess/webdav/PropfindResponseParser.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ class PropfindResponseParser {
3737
}
3838

3939
private final SAXParser parser;
40-
private final List<PropfindEntryData> entries = new ArrayList<>();
4140

4241
PropfindResponseParser() {
4342
try {
@@ -48,12 +47,17 @@ class PropfindResponseParser {
4847
}
4948

5049
public List<PropfindEntryData> parse(final InputStream responseBody) throws SAXException, IOException {
51-
parser.parse(responseBody, new ParseHandler());
52-
return entries;
50+
if (responseBody == null) {
51+
return List.of();
52+
}
53+
var parseHandler = new ParseHandler();
54+
parser.parse(responseBody, parseHandler);
55+
return parseHandler.entries;
5356
}
5457

5558
private class ParseHandler extends DefaultHandler {
5659

60+
public final List<PropfindEntryData> entries = new ArrayList<>();
5761
private StringBuilder textBuffer;
5862
private String href;
5963
private String lastModified;

0 commit comments

Comments
 (0)