Changeset 19580 in josm for trunk/test


Ignore:
Timestamp:
2026-06-04T16:25:12+02:00 (12 hours ago)
Author:
GerdP
Message:

fix #24368: JOSM bombs on validation.

  • catch NumberFormatException, add unit test
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/data/validation/tests/ConnectivityRelationsTest.java

    r19519 r19580  
    33
    44import static org.junit.jupiter.api.Assertions.assertEquals;
     5import static org.junit.jupiter.api.Assertions.assertTrue;
    56
    67import org.junit.jupiter.api.BeforeEach;
     
    910import org.openstreetmap.josm.data.coor.LatLon;
    1011import org.openstreetmap.josm.data.osm.Node;
     12import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1113import org.openstreetmap.josm.data.osm.Relation;
    1214import org.openstreetmap.josm.data.osm.RelationMember;
     
    100102        assertEquals(++expectedFailures, check.getErrors().size());
    101103    }
     104
     105    /**
     106     * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/201821">Bug #20182</a>.
     107     */
     108    @Test
     109    void testTicket24368() {
     110        Relation relation = createDefaultTestRelation();
     111        check.visit(relation);
     112
     113        assertEquals(0, check.getErrors().size());
     114
     115        // change lanes for one way to an invalid value as reported in the ticket
     116        boolean changed = false;
     117        for (OsmPrimitive m : relation.getChildren()) {
     118            if ("4".equals(m.get("lanes"))) {
     119                m.put("lanes", "25 mph");
     120                changed = true;
     121                break;
     122            }
     123        }
     124        assertTrue(changed);
     125        check.visit(relation);
     126        assertEquals(0, check.getErrors().size());
     127
     128    }
    102129}
Note: See TracChangeset for help on using the changeset viewer.