From 269e885812d317bdd9169d6551ceb55af9115d47 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Tue, 3 Dec 2019 14:02:57 +1100 Subject: [PATCH] Issue #4383 - avoid NPE from MultiPart Cleanup Always assign _parts when constructed so it is never null. Signed-off-by: Lachlan Roberts --- .../eclipse/jetty/http/MultiPartFormInputStream.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/MultiPartFormInputStream.java b/jetty-http/src/main/java/org/eclipse/jetty/http/MultiPartFormInputStream.java index a9757cfc999f..57619873f425 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/MultiPartFormInputStream.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/MultiPartFormInputStream.java @@ -59,11 +59,10 @@ public class MultiPartFormInputStream { private static final Logger LOG = Log.getLogger(MultiPartFormInputStream.class); - private static final MultiMap EMPTY_MAP = new MultiMap<>(Collections.emptyMap()); private InputStream _in; private MultipartConfigElement _config; private String _contentType; - private MultiMap _parts; + private MultiMap _parts = new MultiMap<>(); private Throwable _err; private File _tmpDir; private File _contextTmpDir; @@ -345,7 +344,6 @@ public MultiPartFormInputStream(InputStream in, String contentType, MultipartCon { if (((ServletInputStream)in).isFinished()) { - _parts = EMPTY_MAP; _parsed = true; return; } @@ -358,7 +356,7 @@ public MultiPartFormInputStream(InputStream in, String contentType, MultipartCon */ public boolean isEmpty() { - if (_parts == null) + if (_parts.isEmpty()) return true; Collection> values = _parts.values(); @@ -379,7 +377,7 @@ public boolean isEmpty() @Deprecated public Collection getParsedParts() { - if (_parts == null) + if (_parts.isEmpty()) return Collections.emptyList(); Collection> values = _parts.values(); @@ -492,9 +490,6 @@ protected void parse() Handler handler = new Handler(); try { - // initialize - _parts = new MultiMap<>(); - // if its not a multipart request, don't parse it if (_contentType == null || !_contentType.startsWith("multipart/form-data")) return;