Index: trunk/test/unit/org/openstreetmap/josm/io/ChangesetQueryUrlParserTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/ChangesetQueryUrlParserTest.java	(revision 14039)
+++ trunk/test/unit/org/openstreetmap/josm/io/ChangesetQueryUrlParserTest.java	(revision 14040)
@@ -14,4 +14,5 @@
 import org.openstreetmap.josm.io.ChangesetQuery.ChangesetQueryUrlException;
 import org.openstreetmap.josm.io.ChangesetQuery.ChangesetQueryUrlParser;
+import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -45,5 +46,5 @@
             fail("should throw exception");
         } catch (ChangesetQueryUrlException e) {
-            // OK
+            Logging.trace(e);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/io/ParseWithChangesetReaderTest.groovy
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/ParseWithChangesetReaderTest.groovy	(revision 14039)
+++ 	(revision )
@@ -1,206 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.io;
-
-import static groovy.test.GroovyAssert.shouldFail
-import static org.junit.Assert.*
-
-import java.nio.charset.StandardCharsets
-
-import org.junit.Test
-import org.openstreetmap.josm.data.osm.DataSet
-import org.openstreetmap.josm.data.osm.Node
-import org.openstreetmap.josm.data.osm.OsmPrimitiveType
-
-class ParseWithChangesetReaderTest {
-
-    private DataSet getDataSet(String doc) {
-        InputStream is = new ByteArrayInputStream(doc.getBytes(StandardCharsets.UTF_8))
-        DataSet ds = new OsmReader().parseDataSet(is, null)
-        is.close()
-        return ds
-    }
-
-    /**
-     * A new node with a changeset id. Ignore it.
-     */
-    @Test
-    public void test_1() {
-        String doc = """\
-         <osm version="0.6">
-        <node id="-1" lat="0.0" lon="0.0" changeset="1">
-            <tag k="external-id" v="-1"/>
-        </node>
-        </osm>
-        """
-
-        DataSet ds = getDataSet(doc)
-        Node n = ds.nodes.find {it.get("external-id") == "-1"}
-        assert n != null
-        assert n.changesetId == 0
-    }
-
-    /**
-     * A new node with an invalid changeset id. Ignore it.
-     */
-    @Test
-    public void test_11() {
-        String doc = """\
-         <osm version="0.6">
-        <node id="-1" lat="0.0" lon="0.0" changeset="0">
-            <tag k="external-id" v="-1"/>
-        </node>
-        </osm>
-        """
-
-        DataSet ds = getDataSet(doc)
-        Node n = ds.nodes.find {it.get("external-id") == "-1"}
-        assert n != null
-        assert n.changesetId == 0
-    }
-
-    /**
-     * A new node with an invalid changeset id. Ignore it.
-     */
-    @Test
-    public void test_12() {
-        String doc = """\
-         <osm version="0.6">
-        <node id="-1" lat="0.0" lon="0.0" changeset="-1">
-            <tag k="external-id" v="-1"/>
-        </node>
-        </osm>
-        """
-
-        DataSet ds = getDataSet(doc)
-        Node n = ds.nodes.find {it.get("external-id") == "-1"}
-        assert n != null
-        assert n.changesetId == 0
-    }
-
-    /**
-     * A new node with an invalid changeset id. Ignore it.
-     */
-    @Test
-    public void test_13() {
-        String doc = """\
-         <osm version="0.6">
-        <node id="-1" lat="0.0" lon="0.0" changeset="aaa">
-            <tag k="external-id" v="-1"/>
-        </node>
-        </osm>
-        """
-
-        DataSet ds = getDataSet(doc)
-        Node n = ds.nodes.find {it.get("external-id") == "-1"}
-        assert n != null
-        assert n.changesetId == 0
-    }
-
-    /**
-     * A new node with a missing changeset id. That's fine. The changeset id
-     * is reset to 0.
-     */
-    @Test
-    public void test_14() {
-        String doc = """\
-         <osm version="0.6">
-        <node id="-1" lat="0.0" lon="0.0" >
-            <tag k="external-id" v="-1"/>
-        </node>
-        </osm>
-        """
-
-        DataSet ds = getDataSet(doc)
-        Node n = ds.nodes.find {it.get("external-id") == "-1"}
-        assert n != null
-        assert n.changesetId == 0
-    }
-
-
-    /**
-     * An existing node with a missing changeset id. That's fine. The changeset id
-     * is reset to 0.
-     */
-    @Test
-    public void test_2() {
-        String doc = """\
-         <osm version="0.6">
-        <node id="1" lat="0.0" lon="0.0" version="1"/>
-        </osm>
-        """
-
-        DataSet ds = getDataSet(doc)
-        Node n = ds.getPrimitiveById(1, OsmPrimitiveType.NODE)
-        assert n != null
-        assert n.uniqueId == 1
-        assert n.changesetId == 0
-    }
-
-    /**
-     * An existing node with a valid changeset id id. That's fine. The changeset id
-     * is applied.
-     */
-    @Test
-    public void test_3() {
-        String doc = """\
-         <osm version="0.6">
-        <node id="1" lat="0.0" lon="0.0" version="1" changeset="4"/>
-        </osm>
-        """
-
-        DataSet ds = getDataSet(doc)
-        Node n = ds.getPrimitiveById(1, OsmPrimitiveType.NODE)
-        assert n != null
-        assert n.uniqueId == 1
-        assert n.changesetId == 4
-    }
-
-    /**
-     * An existing node with an invalid changeset id. That's a problem. An exception
-     * is thrown.
-     */
-    @Test
-    public void test_4() {
-        String doc = """\
-         <osm version="0.6">
-        <node id="1" lat="0.0" lon="0.0" version="1" changeset="-1"/>
-        </osm>
-        """
-
-        shouldFail(IllegalDataException) {
-            DataSet ds = getDataSet(doc)
-        }
-    }
-    /**
-     * An existing node with an invalid changeset id. That's a problem. An exception
-     * is thrown.
-     */
-    @Test
-    public void test_5() {
-        String doc = """\
-         <osm version="0.6">
-        <node id="1" lat="0.0" lon="0.0" version="1" changeset="0"/>
-        </osm>
-        """
-
-        shouldFail(IllegalDataException) {
-            DataSet ds = getDataSet(doc)
-        }
-    }
-    /**
-     * An existing node with an invalid changeset id. That's a problem. An exception
-     * is thrown.
-     */
-    @Test
-    public void test_6() {
-        String doc = """\
-             <osm version="0.6">
-            <node id="1" lat="0.0" lon="0.0" version="1" changeset="abc"/>
-            </osm>
-            """
-
-        shouldFail(IllegalDataException) {
-            DataSet ds = getDataSet(doc)
-        }
-    }
-}
Index: trunk/test/unit/org/openstreetmap/josm/io/ParseWithChangesetReaderTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/ParseWithChangesetReaderTest.java	(revision 14040)
+++ trunk/test/unit/org/openstreetmap/josm/io/ParseWithChangesetReaderTest.java	(revision 14040)
@@ -0,0 +1,230 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+import org.openstreetmap.josm.tools.Logging;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Additional unit tests for {@link OsmReader}.
+ */
+public class ParseWithChangesetReaderTest {
+
+    /**
+     * Setup rule
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    private static DataSet getDataSet(String doc) throws IOException, IllegalDataException {
+        try (InputStream is = new ByteArrayInputStream(doc.getBytes(StandardCharsets.UTF_8))) {
+            return OsmReader.parseDataSet(is, null);
+        }
+    }
+
+    private static void shouldFail(String doc) throws IOException {
+        try {
+            getDataSet(doc);
+            fail("should throw exception");
+        } catch (IllegalDataException e) {
+            Logging.trace(e);
+        }
+    }
+
+    /**
+     * A new node with a changeset id. Ignore it.
+     * @throws Exception never
+     */
+    @Test
+    public void test_1() throws Exception {
+        String doc =
+            "<osm version=\"0.6\">\n" +
+            "<node id=\"-1\" lat=\"0.0\" lon=\"0.0\" changeset=\"1\">\n" +
+            "    <tag k=\"external-id\" v=\"-1\"/>\n" +
+            "</node>\n" +
+            "</osm>";
+
+        DataSet ds = getDataSet(doc);
+        Node n = ds.getNodes().stream().filter(x -> "-1".equals(x.get("external-id"))).findFirst().get();
+        assertNotNull(n);
+        assertEquals(0, n.getChangesetId());
+    }
+
+    /**
+     * A new node with an invalid changeset id. Ignore it.
+     * @throws Exception never
+     */
+    @Test
+    public void test_11() throws Exception {
+        String doc =
+        "<osm version=\"0.6\">\n" +
+        "<node id=\"-1\" lat=\"0.0\" lon=\"0.0\" changeset=\"0\">\n" +
+        "    <tag k=\"external-id\" v=\"-1\"/>\n" +
+        "</node>\n" +
+        "</osm>";
+
+        DataSet ds = getDataSet(doc);
+        Node n = ds.getNodes().stream().filter(x -> "-1".equals(x.get("external-id"))).findFirst().get();
+        assertNotNull(n);
+        assertEquals(0, n.getChangesetId());
+    }
+
+    /**
+     * A new node with an invalid changeset id. Ignore it.
+     * @throws Exception never
+     */
+    @Test
+    public void test_12() throws Exception {
+        String doc =
+        "<osm version=\"0.6\">\n" +
+        "<node id=\"-1\" lat=\"0.0\" lon=\"0.0\" changeset=\"-1\">\n" +
+        "    <tag k=\"external-id\" v=\"-1\"/>\n" +
+        "</node>\n" +
+        "</osm>";
+
+        DataSet ds = getDataSet(doc);
+        Node n = ds.getNodes().stream().filter(x -> "-1".equals(x.get("external-id"))).findFirst().get();
+        assertNotNull(n);
+        assertEquals(0, n.getChangesetId());
+    }
+
+    /**
+     * A new node with an invalid changeset id. Ignore it.
+     * @throws Exception never
+     */
+    @Test
+    public void test_13() throws Exception {
+        String doc =
+        "<osm version=\"0.6\">\n" +
+        "<node id=\"-1\" lat=\"0.0\" lon=\"0.0\" changeset=\"aaa\">\n" +
+        "    <tag k=\"external-id\" v=\"-1\"/>\n" +
+        "</node>\n" +
+        "</osm>";
+
+        DataSet ds = getDataSet(doc);
+        Node n = ds.getNodes().stream().filter(x -> "-1".equals(x.get("external-id"))).findFirst().get();
+        assertNotNull(n);
+        assertEquals(0, n.getChangesetId());
+    }
+
+    /**
+     * A new node with a missing changeset id. That's fine. The changeset id
+     * is reset to 0.
+     * @throws Exception never
+     */
+    @Test
+    public void test_14() throws Exception {
+        String doc =
+        "<osm version=\"0.6\">\n" +
+        "<node id=\"-1\" lat=\"0.0\" lon=\"0.0\" >\n" +
+        "    <tag k=\"external-id\" v=\"-1\"/>\n" +
+        "</node>\n" +
+        "</osm>";
+
+        DataSet ds = getDataSet(doc);
+        Node n = ds.getNodes().stream().filter(x -> "-1".equals(x.get("external-id"))).findFirst().get();
+        assertNotNull(n);
+        assertEquals(0, n.getChangesetId());
+    }
+
+
+    /**
+     * An existing node with a missing changeset id. That's fine. The changeset id
+     * is reset to 0.
+     * @throws Exception never
+     */
+    @Test
+    public void test_2() throws Exception {
+        String doc =
+        "<osm version=\"0.6\">\n" +
+        "<node id=\"1\" lat=\"0.0\" lon=\"0.0\" version=\"1\"/>\n" +
+        "</osm>";
+
+        DataSet ds = getDataSet(doc);
+        OsmPrimitive n = ds.getPrimitiveById(1, OsmPrimitiveType.NODE);
+        assertNotNull(n);
+        assertEquals(1, n.getUniqueId());
+        assertEquals(0, n.getChangesetId());
+    }
+
+    /**
+     * An existing node with a valid changeset id id. That's fine. The changeset id
+     * is applied.
+     * @throws Exception never
+     */
+    @Test
+    public void test_3() throws Exception {
+        String doc =
+        "<osm version=\"0.6\">\n" +
+        "<node id=\"1\" lat=\"0.0\" lon=\"0.0\" version=\"1\" changeset=\"4\"/>\n" +
+        "</osm>";
+
+        DataSet ds = getDataSet(doc);
+        OsmPrimitive n = ds.getPrimitiveById(1, OsmPrimitiveType.NODE);
+        assertNotNull(n);
+        assertEquals(1, n.getUniqueId());
+        assertEquals(4, n.getChangesetId());
+    }
+
+    /**
+     * An existing node with an invalid changeset id. That's a problem. An exception
+     * is thrown.
+     * @throws IOException never
+     */
+    @Test
+    public void test_4() throws IOException {
+        String doc =
+        "<osm version=\"0.6\">\n" +
+        "<node id=\"1\" lat=\"0.0\" lon=\"0.0\" version=\"1\" changeset=\"-1\"/>\n" +
+        "</osm>";
+
+        shouldFail(doc);
+    }
+
+    /**
+     * An existing node with an invalid changeset id. That's a problem. An exception
+     * is thrown.
+     * @throws IOException never
+     */
+    @Test
+    public void test_5() throws IOException {
+        String doc =
+        "<osm version=\"0.6\">\n" +
+        "<node id=\"1\" lat=\"0.0\" lon=\"0.0\" version=\"1\" changeset=\"1.0\"/>\n" +
+        "</osm>";
+
+        shouldFail(doc);
+    }
+
+    /**
+     * An existing node with an invalid changeset id. That's a problem. An exception
+     * is thrown.
+     * @throws IOException never
+     */
+    @Test
+    public void test_6() throws IOException {
+        String doc =
+            "<osm version=\"0.6\">\n" +
+            "<node id=\"1\" lat=\"0.0\" lon=\"0.0\" version=\"1\" changeset=\"abc\"/>\n" +
+            "</osm>";
+
+        shouldFail(doc);
+    }
+}
