﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
22709	Exception when validating	nkamapper	team	"==== What steps will reproduce the problem?
1. Download this data from Overpass:
{{{
[out:xml][timeout:90];
{{geocodeArea:Sigdal}}->.searchArea;
(
  nwr[""waterway""](area.searchArea);
);
(._;>;<;);
out meta;
}}}
2. Hit the ""Validation"" button.

==== What is the expected result?
Normal validation.

==== What happens instead?
JOSM reports that an unexpected exception occurred (but is able to continue).

The warning reported below is part of a boundary relation: https://www.openstreetmap.org/way/50694770

Perhaps JOSM gets into trouble because some of the streams share nodes with such ways which are fetched with the ""recurse up"" (<) function above, but ''not'' all of their nodes. I get the same problem when loading files into JOSM and validating when some of the ways are missing nodes (""nd"" elements without corresponding ""node"" elements).

I noticed this error for the first time after using stable release #18622.

==== Please provide any additional information below. Attach a screenshot if possible.

{{{
Revision:18646
Build-Date:2023-01-30 15:17:59

Identification: JOSM/1.5 (18646 en_GB) Mac OS X 10.13.6
OS Build number: Mac OS X 10.13.6 (17G14042)
Memory Usage: 2864 MB / 4096 MB (957 MB allocated, but free)
Java version: 17.0.6+10-LTS, Azul Systems, Inc., OpenJDK 64-Bit Server VM
Look and Feel: com.apple.laf.AquaLookAndFeel
Screen: Display 69676352 2560×1440 (scaling 1.00×1.00)
Maximum Screen Size: 2560×1440
Best cursor sizes: 16×16→16×16, 32×32→32×32
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: en_GB
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-Djpackage.app-version=18646, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, -Djpackage.app-path=/Applications/JOSM.app/Contents/MacOS/JOSM]
Dataset consistency test: No problems found

Plugins:
+ Mapillary (2.1.1)
+ PicLayer (1.0.2)
+ SeaChart (35840)
+ apache-commons (36034)
+ apache-http (35924)
+ areaselector (1652822522)
+ austriaaddresshelper (master-4e80dc2e4261d321150187f4951684ad97342d5e)
+ conflation (0.6.9)
+ ejml (35924)
+ geotools (36028)
+ imagery-xml-bounds (35976)
+ jackson (36034)
+ jaxb (35952)
+ jna (36005)
+ jts (36004)
+ log4j (36034)
+ opendata (36025)
+ pdfimport (35976)
+ reverter (36043)
+ tageditor (36011)
+ todo (30306)
+ turnlanes (36011)
+ turnlanes-tagging (v0.0.5)
+ turnrestrictions (36011)
+ utilsplugin2 (36011)
+ wikipedia (605)

Tagging presets:
+ https://josm.openstreetmap.de/josmfile?page=Presets/LaneAttributes&zip=1
+ https://raw.githubusercontent.com/OpenNauticalChart/josm/master/INT-1-preset.xml

Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1
- https://raw.githubusercontent.com/OpenSeaMap/josm/master/INT1_Seamark.mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/Enhanced_Lane_and_Road_Attributes&zip=1
- http://osm.wzh.be/josm/different_buildings/different_buildings.mapcss

Last errors/warnings:
- 13295.777 W: Crossing ways test skipped WaySegment [way=50694770, lowerIndex=1775]
- 13295.777 W: Crossing ways test skipped WaySegment [way=50694770, lowerIndex=1776]
- 13295.777 W: Crossing ways test skipped WaySegment [way=50694770, lowerIndex=1777]
- 13295.777 W: Crossing ways test skipped WaySegment [way=50694770, lowerIndex=1778]
- 13295.777 W: Crossing ways test skipped WaySegment [way=50694770, lowerIndex=1779]
- 13295.777 W: Crossing ways test skipped WaySegment [way=50694770, lowerIndex=1780]
- 13370.627 E: Handled by bug report queue: java.lang.IllegalArgumentException: Parameter 'en2' must not be null
- 13649.257 E: Handled by bug report queue: java.lang.IllegalArgumentException: Parameter 'en1' must not be null
- 14086.427 E: Handled by bug report queue: java.lang.IllegalArgumentException: Parameter 'en1' must not be null
- 14196.294 E: Handled by bug report queue: java.lang.IllegalArgumentException: Parameter 'en1' must not be null



=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (24) of main
java.lang.IllegalArgumentException: Parameter 'en1' must not be null
	at org.openstreetmap.josm.tools.CheckParameterUtil.ensureParameterNotNull(CheckParameterUtil.java:26)
	at org.openstreetmap.josm.data.validation.util.ValUtil.getSegmentCells(ValUtil.java:139)
	at org.openstreetmap.josm.data.validation.util.ValUtil.getSegmentCells(ValUtil.java:123)
	at org.openstreetmap.josm.data.validation.tests.CrossingWays.getSegments(CrossingWays.java:426)
	at org.openstreetmap.josm.data.validation.tests.PowerLines.addWaterWaySegments(PowerLines.java:133)
	at java.base/java.lang.Iterable.forEach(Unknown Source)
	at org.openstreetmap.josm.data.validation.tests.PowerLines.visit(PowerLines.java:142)
	at org.openstreetmap.josm.data.osm.Relation.accept(Relation.java:176)
	at org.openstreetmap.josm.data.validation.Test.visit(Test.java:216)
	at org.openstreetmap.josm.data.validation.ValidationTask.realRun(ValidationTask.java:94)
	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(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
"	defect	closed	normal		Core validator	tested	duplicate	template_report	
