Index: trunk/test/data/regress/23599/w1194668585.orig.osm
===================================================================
--- trunk/test/data/regress/23599/w1194668585.orig.osm	(revision 19033)
+++ trunk/test/data/regress/23599/w1194668585.orig.osm	(revision 19033)
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<osm version='0.6' generator='JOSM'>
+  <node id='11088568973' timestamp='2023-08-04T06:42:51Z' uid='533465' user='GerdP' visible='true' version='1' changeset='139425106' lat='52.7901028' lon='8.4290125' />
+  <node id='11088568974' timestamp='2023-08-04T06:42:51Z' uid='533465' user='GerdP' visible='true' version='1' changeset='139425106' lat='52.7898498' lon='8.4292298' />
+  <node id='11088568975' timestamp='2023-08-04T06:42:51Z' uid='533465' user='GerdP' visible='true' version='1' changeset='139425106' lat='52.7897903' lon='8.4290403' />
+  <node id='11088568976' timestamp='2023-08-04T06:42:51Z' uid='533465' user='GerdP' visible='true' version='1' changeset='139425106' lat='52.7900433' lon='8.4288231' />
+  <way id='1194668585' timestamp='2024-01-07T11:40:04Z' uid='12616326' user='os-emmer' visible='true' version='4' changeset='145987123'>
+    <nd ref='11088568976' />
+    <nd ref='11088568973' />
+    <nd ref='11088568974' />
+    <nd ref='11088568975' />
+    <nd ref='11088568976' />
+    <tag k='addr:housenumber' v='62' />
+    <tag k='addr:street' v='Hauptstraße' />
+    <tag k='building' v='apartments' />
+  </way>
+</osm>
Index: trunk/test/unit/org/openstreetmap/josm/gui/io/importexport/OsmPbfImporterTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/io/importexport/OsmPbfImporterTest.java	(revision 19029)
+++ trunk/test/unit/org/openstreetmap/josm/gui/io/importexport/OsmPbfImporterTest.java	(revision 19033)
@@ -24,6 +24,8 @@
 import org.openstreetmap.josm.data.osm.AbstractPrimitive;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.UploadPolicy;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.protobuf.ProtobufTest;
@@ -159,3 +161,55 @@
         assertDoesNotThrow(() -> importer.parseDataSet(new ByteArrayInputStream(badData), NullProgressMonitor.INSTANCE));
     }
+
+    @Test
+    void testNonRegression23599a() throws IOException, IllegalDataException {
+        final DataSet dataSet;
+        try (InputStream inputStream = TestUtils.getRegressionDataStream(23599, "visible.osm.pbf")) {
+            dataSet = importer.parseDataSet(inputStream, NullProgressMonitor.INSTANCE);
+        }
+        assertTrue(dataSet.getNodes().stream().allMatch(OsmPrimitive::isVisible));
+        assertTrue(dataSet.getWays().stream().allMatch(OsmPrimitive::isVisible));
+        assertTrue(dataSet.getRelations().stream().allMatch(OsmPrimitive::isVisible));
+
+    }
+
+    @Test
+    void testNonRegression23599b() throws IOException, IllegalDataException {
+        final DataSet dataSet;
+        // osmconvert w1194668585.orig.osm -o=w1194668585.full.osm.pbf
+        try (InputStream inputStream = TestUtils.getRegressionDataStream(23599, "w1194668585.full.osm.pbf")) {
+            dataSet = importer.parseDataSet(inputStream, NullProgressMonitor.INSTANCE);
+        }
+        assertNotNull(dataSet.getPrimitiveById(1194668585L, OsmPrimitiveType.WAY));
+        assertEquals(145987123, dataSet.getPrimitiveById(1194668585L, OsmPrimitiveType.WAY).getChangesetId());
+        assertEquals(4, dataSet.getPrimitiveById(1194668585L, OsmPrimitiveType.WAY).getVersion());
+        assertEquals(UploadPolicy.NORMAL, dataSet.getUploadPolicy());
+    }
+
+    @Test
+    void testNonRegression23599c() throws IOException, IllegalDataException {
+        final DataSet dataSet;
+        // osmconvert --drop-author w1194668585.orig.osm -o=w1194668585.full.osm.pbf
+        try (InputStream inputStream = TestUtils.getRegressionDataStream(23599, "w1194668585.drop-author.osm.pbf")) {
+            dataSet = importer.parseDataSet(inputStream, NullProgressMonitor.INSTANCE);
+        }
+        assertNotNull(dataSet.getPrimitiveById(1194668585L, OsmPrimitiveType.WAY));
+        assertEquals(0, dataSet.getPrimitiveById(1194668585L, OsmPrimitiveType.WAY).getChangesetId());
+        assertEquals(4, dataSet.getPrimitiveById(1194668585L, OsmPrimitiveType.WAY).getVersion());
+        assertEquals(UploadPolicy.NORMAL, dataSet.getUploadPolicy());
+    }
+
+    @Test
+    void testNonRegression23599d() throws IOException, IllegalDataException {
+        final DataSet dataSet;
+        // osmconvert --drop-version w1194668585.orig.osm -o=w1194668585.full.osm.pbf
+        try (InputStream inputStream = TestUtils.getRegressionDataStream(23599, "w1194668585.drop-version.osm.pbf")) {
+            dataSet = importer.parseDataSet(inputStream, NullProgressMonitor.INSTANCE);
+        }
+        assertNotNull(dataSet.getPrimitiveById(1194668585L, OsmPrimitiveType.WAY));
+        assertEquals(0, dataSet.getPrimitiveById(1194668585L, OsmPrimitiveType.WAY).getChangesetId());
+        assertEquals(0, dataSet.getPrimitiveById(1194668585L, OsmPrimitiveType.WAY).getVersion());
+        assertEquals(UploadPolicy.DISCOURAGED, dataSet.getUploadPolicy());
+    }
+
 }
