﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
20703	GeographicReader.createOrGetWay is slow due to many Arrays.copyOf	simon04	Don-vip	"==== What steps will reproduce the problem?
1. Run profiler while opening https://osmdata.openstreetmap.de/download/simplified-land-polygons-complete-3857.zip

==== What is the expected result?

==== What happens instead?
A considerable amount of time is spent in GeographicReader.createOrGetWay is slow due to many Arrays.copyOf

[[Image(flamegraph.png,width=100%)]]

==== Please provide any additional information below. Attach a screenshot if possible.

{{{
java.util.Arrays.copyOf(Object[], int)
org.openstreetmap.josm.tools.Utils.addInArrayCopy(Object[], Object)
org.openstreetmap.josm.data.osm.Way.addNode(Node)
org.openstreetmap.josm.plugins.opendata.core.io.geographic.GeographicReader.createOrGetWay(LineString)
org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpReader.processGeometryCollection(GeometryCollection)
org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpReader.parseFeature(Feature, Component)
org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpReader.parse(File, ProgressMonitor)
org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpReader.parseDataSet(InputStream, File, AbstractDataSetHandler, ProgressMonitor)
org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpImporter.parseDataSet(InputStream, ProgressMonitor)
org.openstreetmap.josm.gui.io.importexport.OsmImporter.loadLayer(InputStream, File, String, ProgressMonitor)
org.openstreetmap.josm.gui.io.importexport.OsmImporter.importData(InputStream, File, ProgressMonitor)
org.openstreetmap.josm.plugins.opendata.core.io.AbstractImporter.importData(File, ProgressMonitor)
org.openstreetmap.josm.gui.io.importexport.FileImporter.importDataHandleExceptions(File, ProgressMonitor)
org.openstreetmap.josm.actions.OpenFileAction$OpenFileTask.importData(FileImporter, List)
org.openstreetmap.josm.actions.OpenFileAction$OpenFileTask.realRun()
org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun()
org.openstreetmap.josm.gui.PleaseWaitRunnable.run()
java.util.concurrent.Executors$RunnableAdapter.call()
java.util.concurrent.FutureTask.run()
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
java.util.concurrent.ThreadPoolExecutor$Worker.run()
java.lang.Thread.run()

}}}
"	defect	new	normal		Plugin opendata			template_report performance profiling intellij yourkit	
