Modify

Opened 7 months ago

Last modified 7 months ago

#24368 new defect

[Patch] JOSM bombs on validation.

Reported by: BalooUriza Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. Load map data around west Tulsa, Oklahoma
  2. Click validate.

What is the expected result?

Validation results.

What happens instead?

This crash.

Please provide any additional information below. Attach a screenshot if possible.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2025-06-02 16:42:20 +0200 (Mon, 02 Jun 2025)
Revision:19412
Build-Date:2025-06-03 01:30:55
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (19412 en) Linux Debian GNU/Linux 12 (bookworm)
Memory Usage: 1234 MB / 4096 MB (847 MB allocated, but free)
Java version: 24.0.1+9-30, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Screen: :0.0 3200x1080x[Multi depth]@50Hz (scaling 1.00×1.00) :0.1 1280x1024x[Multi depth]@[Unknown refresh rate] (scaling 1.00×1.00)
Maximum Screen Size: 3200×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: en_US.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: KDE
libcommons-logging-java: libcommons-logging-java:-
fonts-noto: fonts-noto:all-20201225-1
VM arguments: [--module-path=/usr/share/openjfx/lib, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, -Djosm.restart=true, -Djava.net.useSystemProxies=true, -Dsun.java2d.ddforcevram=true, -Dsun.java2d.opengl=True, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED]
Dataset consistency test: No problems found

Plugins:
+ AddrInterpolation (36438)
+ ColorPlugin (c1a2305)
+ CustomizePublicTransportStop (36438)
+ FixAddresses (36438)
+ ImportImagePlugin (36438)
+ MapRoulette (2ba1146)
+ Mapillary (5bfecee)
+ apache-commons (36438)
+ auto_tools (6c6bb6f)
+ buildings_tools (36438)
+ centernode (v1.0.4)
+ conflation (8459beb)
+ continuosDownload (6eecaa8)
+ easypresets (1623509627)
+ ejml (36438)
+ geotools (36438)
+ imagery_offset_db (36438)
+ jackson (36438)
+ jaxb (36438)
+ josm-batch-downloader (1.0.4)
+ jts (36438)
+ mapwithai (839)
+ merge-overlap (36438)
+ notesolver (0.5.0)
+ opendata (36440)
+ openqa (113)
+ photo_geotagging (36438)
+ photoadjust (36438)
+ pmtiles (36438)
+ pt_assistant (656)
+ reltoolbox (36438)
+ routes (36438)
+ tageditor (36438)
+ terracer (36438)
+ todo (21c177b)
+ turnlanes-tagging (1746100629)
+ turnrestrictions (36438)
+ uberterracer (1718729454)
+ utilsplugin2 (36438)
+ wikipedia (435)

Tagging presets:
+ https://josm.openstreetmap.de/josmfile?page=Presets/BicycleJunction&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Ghost%20Bike&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/MastAndTower&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/NonMotorizedRoutes&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/OneClick&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/ParcelLockers&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Toll_Infrastructure&zip=1
+ https://raw.githubusercontent.com/yopaseopor/traffic_signs_preset_JOSM/master/US.zip
+ https://raw.githubusercontent.com/osmlab/name-suggestion-index/main/dist/presets/nsi-josm-presets.min.xml
+ https://raw.githubusercontent.com/species/josm-preset-wheelchair/master/sidewalks_kerbs.xml
+ https://github.com/kendzi/Simple3dBuildingsPreset/releases/download/0.9_2018-05-08/s3db-preset.zip
+ https://josm.openstreetmap.de/josmfile?page=Presets/Wikidata&zip=1
+ https://raw.githubusercontent.com/OpenNauticalChart/josm/master/INT-1-preset.xml
+ https://josm.openstreetmap.de/josmfile?page=Presets/Radwege&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Power_Mapping_Utility_Simple&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/public_bookcase&zip=1
+ <josm.userdata>/EasyPresets.xml
+ https://josm.openstreetmap.de/josmfile?page=Presets/Disc_Golf_Course&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/StreetCabinet&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/OpenSeaMap-PresetForSeamarks&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Healthcare&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/PublicTransportOneClick&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/PublicTransportGtfs&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Surveillance&zip=1
+ https://raw.githubusercontent.com/katycat5e/OSM-US-Historic/main/us-historic-presets.xml

Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/MapWithAI&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/DestinationSignRelation&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/Direction&zip=1
+ https://raw.githubusercontent.com/species/josm-preset-traffic_sign_direction/master/direction.mapcss
- https://www.dropbox.com/s/qo3ai47fpv241jf/Styles_Fixme_and_Notes.zip?raw=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Fixme&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/HighwayAreas&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/PublicTransportV2&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/SimpleBuildingTags&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/SimpleRoofTags&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/MaxspeedIcons&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/Surface-DataEntry&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Admin_Boundaries&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/Bench&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/AddressValidator&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Enhanced_Lane_and_Road_Attributes&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/Maxspeed&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/PTStops&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/PublicTransport&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Surface&zip=1
+ https://raw.githubusercontent.com/yopaseopor/traffic_signs_style_JOSM/master/US.zip
+ https://josm.openstreetmap.de/josmfile?page=Styles/DiscGolfCourse&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/TigerReviewedNo&zip=1

Validator rules:
+ https://josm.openstreetmap.de/josmfile?page=Rules/CheckDate&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/KeepRight&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingWeekdays&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/PublicTransportGtfs&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/SourceObjectTag&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingOpeningHours&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/NotCheck&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/FacebookWebsite&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/QAToolInspiredValidations&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingStreetnumberOrConscriptionnumber&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/InvalidWebsiteProtocol&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/AddrFullWarning&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingMain&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/ThisOrThat&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/CountryCodeCheck&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/Runways&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/SuspiciousSwimming_Pool&zip=1

Last errors/warnings:
- 00104.470 W: Unable to convert property text-color to type class java.awt.Color: found 9c3b96 of type class java.lang.String!
- 00104.470 W: Unable to convert property color to type class java.awt.Color: found 9c3b96 of type class java.lang.String!
- 00104.471 W: Unable to convert property text-color to type class java.awt.Color: found 9c3b96 of type class java.lang.String!
- 00104.471 W: Unable to convert property color to type class java.awt.Color: found 246932 of type class java.lang.String!
- 00104.471 W: Unable to convert property text-color to type class java.awt.Color: found 246932 of type class java.lang.String!
- 00104.472 W: Unable to convert property color to type class java.awt.Color: found 246932 of type class java.lang.String!
- 00104.472 W: Unable to convert property text-color to type class java.awt.Color: found 246932 of type class java.lang.String!
- 00104.472 W: Unable to convert property color to type class java.awt.Color: found 9c3b96 of type class java.lang.String!
- 00104.472 W: Unable to convert property text-color to type class java.awt.Color: found 9c3b96 of type class java.lang.String!
- 00404.173 E: Handled by bug report queue: java.lang.NumberFormatException: For input string: "25 mph"



=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (52) of main
java.lang.NumberFormatException: For input string: "25 mph"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
	at java.base/java.lang.Long.parseLong(Long.java:594)
	at java.base/java.lang.Long.parseLong(Long.java:698)
	at org.openstreetmap.josm.data.validation.tests.ConnectivityRelations.checkForInconsistentLanes(ConnectivityRelations.java:182)
	at org.openstreetmap.josm.data.validation.tests.ConnectivityRelations.visit(ConnectivityRelations.java:135)
	at org.openstreetmap.josm.data.osm.Relation.accept(Relation.java:176)
	at org.openstreetmap.josm.data.validation.Test.visit(Test.java:219)
	at org.openstreetmap.josm.data.validation.ValidationTask.realRun(ValidationTask.java:192)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619)
	at java.base/java.lang.Thread.run(Thread.java:1447)

Attachments (1)

24368.patch (3.0 KB ) - added by GerdP 7 months ago.
catch exception, unit test

Download all attachments as: .zip

Change History (3)

comment:1 by GerdP, 7 months ago

Seems the data contains a highway with the tag lanes="25 mph" which is member of a type=connectivity relation.
The JOSM code to verify the relation doesn't make sure that the lanes=* value is a valid number:

                    if (prim.hasTag("lanes")) {
                        laneCounts.add(Long.parseLong(prim.get("lanes")));
                    }

I guess it should catch the NumberFormatException.

by GerdP, 7 months ago

Attachment: 24368.patch added

catch exception, unit test

comment:2 by GerdP, 7 months ago

Summary: JOSM bombs on validation.[Patch] JOSM bombs on validation.

The patch stops the validation for a connectivity relation when the member has an invalid lanes=* tag. The invalid lanes value is reported as error with another test.

Last edited 7 months ago by GerdP (previous) (diff)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from team to the specified user.
Next status will be 'needinfo'. The owner will be changed from team to BalooUriza.
as duplicate The resolution will be set to duplicate. Next status will be 'closed'. The specified ticket will be cross-referenced with this ticket.
The owner will be changed from team to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.