Index: trunk/src/org/openstreetmap/josm/io/GeoJSONReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/GeoJSONReader.java	(revision 16933)
+++ trunk/src/org/openstreetmap/josm/io/GeoJSONReader.java	(revision 16934)
@@ -67,9 +67,13 @@
     }
 
-    private void setParser(final JsonParser parser) {
-        this.parser = parser;
-    }
-
-    private void parse() throws IllegalDataException {
+    private void parse(InputStream inputStream) throws IllegalDataException {
+        try (JsonParser parser = Json.createParser(inputStream)) {
+            parse(parser);
+        } catch (JsonParsingException e) {
+            throw new IllegalDataException(e);
+        }
+    }
+
+    private void parse(final JsonParser parser) throws IllegalDataException {
         while (parser.hasNext()) {
             Event event = parser.next();
@@ -390,10 +394,5 @@
                     line = line.replaceFirst(rs, "");
                     try (InputStream is = new ByteArrayInputStream(line.getBytes())) {
-                        setParser(Json.createParser(is));
-                        parse();
-                    } catch (JsonParsingException e) {
-                        throw new IllegalDataException(e);
-                    } finally {
-                        parser.close();
+                        parse(is);
                     }
                 }
@@ -402,10 +401,5 @@
             }
         } else {
-            setParser(Json.createParser(markSupported));
-            try {
-                parse();
-            } catch (JsonParsingException e) {
-                throw new IllegalDataException(e);
-            }
+            parse(markSupported);
         }
         return getDataSet();
