Modify

Opened 2 years ago

Closed 2 years ago

#22514 closed defect (needinfo)

JOSM cannot open some GeoJSON

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

Description

What steps will reproduce the problem?

  1. Open complicated GeoJSON file, for example having contour of Russia.
  2. Make some edition and save it.
  3. See many LineString instead of Polygon on MultiPolygon in GeoJSON file.
  4. Google the problem, find #17453 and #18902, change settings.
  5. Repeat steps 2 and 3.
  6. Restart JOSM.
  7. Repeat steps 2 and 3.
  8. Edit GeoJSON in Codium (VSCode), change LineString with MultiPolygon, do not duplicate first points of each feature to the end of point sequence because these points are already duplicated.
  9. Open edited file in JOSM.

What is the expected result?

Silent file opening.

What happens instead?

Message about bug.

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

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2022-10-31 17:29:20 +0100 (Mon, 31 Oct 2022)
Revision:18583
Build-Date:2022-11-01 02:30:58
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18583 en) Linux Debian GNU/Linux 11 (bullseye)
Memory Usage: 1019 MB / 2938 MB (625 MB allocated, but free)
Java version: 11.0.16+8-post-Debian-1deb11u1, Debian, OpenJDK 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Screen: :0.0 1600×900 (scaling 1.00×1.00) :0.1 1600×900 (scaling 1.00×1.00)
Maximum Screen Size: 1600×900
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: GNOME
Java package: openjdk-11-jre:amd64-11.0.16+8-1~deb11u1
Java ATK Wrapper package: libatk-wrapper-java:all-0.38.0-2+deb11u1
libcommons-logging-java: libcommons-logging-java:all-1.2-2
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, --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]

Plugins:
+ FastDraw (35978)
+ Mapillary (2.0.1)
+ apache-commons (36003)
+ apache-http (35924)
+ buildings_tools (36011)
+ ext_tools (35893)
+ imagery_offset_db (35978)
+ jna (36005)
+ reverter (36011)
+ russia-address-helper (0.8.5.1)
+ turnrestrictions (36011)
+ undelete (36011)
+ utilsplugin2 (36011)

Map paint styles:
- https://josm.openstreetmap.de/josmfile?page=Styles/ColourTag&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/PriorityRoad&zip=1

Last errors/warnings:
- 00403.532 E: Handled by bug report queue: java.lang.ClassCastException: Cannot cast org.glassfish.json.JsonNumberImpl$JsonBigDecimalNumber to javax.json.JsonArray



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

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: main-worker-0 (18) of main
java.lang.ClassCastException: Cannot cast org.glassfish.json.JsonNumberImpl$JsonBigDecimalNumber to javax.json.JsonArray
	at java.base/java.lang.Class.cast(Class.java:3605)
	at javax.json.JsonValue.asJsonArray(JsonValue.java:153)
	at org.openstreetmap.josm.io.GeoJSONReader.lambda$createWay$10(GeoJSONReader.java:342)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at org.openstreetmap.josm.io.GeoJSONReader.createWay(GeoJSONReader.java:343)
	at org.openstreetmap.josm.io.GeoJSONReader.parsePolygon(GeoJSONReader.java:299)
	at org.openstreetmap.josm.io.GeoJSONReader.parseGeometry(GeoJSONReader.java:228)
	at org.openstreetmap.josm.io.GeoJSONReader.parseFeature(GeoJSONReader.java:164)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at org.openstreetmap.josm.io.GeoJSONReader.parseFeatureCollection(GeoJSONReader.java:149)
	at org.openstreetmap.josm.io.GeoJSONReader.parseRoot(GeoJSONReader.java:100)
	at org.openstreetmap.josm.io.GeoJSONReader.parse(GeoJSONReader.java:87)
	at org.openstreetmap.josm.io.GeoJSONReader.doParseDataSet(GeoJSONReader.java:471)
	at org.openstreetmap.josm.io.GeoJSONReader.parseDataSet(GeoJSONReader.java:536)
	at org.openstreetmap.josm.gui.io.importexport.GeoJSONImporter.importData(GeoJSONImporter.java:54)
	at org.openstreetmap.josm.gui.io.importexport.FileImporter.importDataHandleExceptions(FileImporter.java:103)
	at org.openstreetmap.josm.actions.OpenFileAction$OpenFileTask.importData(OpenFileAction.java:401)
	at org.openstreetmap.josm.actions.OpenFileAction$OpenFileTask.realRun(OpenFileAction.java:350)
	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:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

=== RUNNING THREADS ===
Thread: Common-Cleaner (10) of InnocuousThreadGroup
java.base@11.0.16/java.lang.Object.wait(Native Method)
java.base@11.0.16/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@11.0.16/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)
java.base@11.0.16/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:161)

Thread: changeset-updater-0 (45) of main
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
java.base@11.0.16/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
java.base@11.0.16/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@11.0.16/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: image-fetcher-0 (36) of main
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.16/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.16/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: AWT-EventQueue-0 (19) of main
java.desktop@11.0.16/com.sun.java.swing.plaf.gtk.GTKEngine.native_paint_box(Native Method)
java.desktop@11.0.16/com.sun.java.swing.plaf.gtk.GTKEngine.paintBox(GTKEngine.java:399)
java.desktop@11.0.16/com.sun.java.swing.plaf.gtk.GTKPainter.paintProgressBarForeground(GTKPainter.java:661)
java.desktop@11.0.16/javax.swing.plaf.synth.SynthProgressBarUI.paint(SynthProgressBarUI.java:311)
java.desktop@11.0.16/javax.swing.plaf.synth.SynthProgressBarUI.update(SynthProgressBarUI.java:215)
java.desktop@11.0.16/javax.swing.JComponent.paintComponent(JComponent.java:797)
java.desktop@11.0.16/javax.swing.JComponent.paint(JComponent.java:1074)
java.desktop@11.0.16/javax.swing.JComponent.paintToOffscreen(JComponent.java:5255)
java.desktop@11.0.16/javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:246)
java.desktop@11.0.16/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
java.desktop@11.0.16/javax.swing.JComponent._paintImmediately(JComponent.java:5203)
java.desktop@11.0.16/javax.swing.JComponent.paintImmediately(JComponent.java:5013)
java.desktop@11.0.16/javax.swing.RepaintManager$4.run(RepaintManager.java:865)
java.desktop@11.0.16/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
java.base@11.0.16/java.security.AccessController.doPrivileged(Native Method)
java.base@11.0.16/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
java.desktop@11.0.16/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
java.desktop@11.0.16/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
java.desktop@11.0.16/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
java.desktop@11.0.16/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1890)
java.desktop@11.0.16/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
java.desktop@11.0.16/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
java.desktop@11.0.16/java.awt.EventQueue$4.run(EventQueue.java:721)
java.desktop@11.0.16/java.awt.EventQueue$4.run(EventQueue.java:715)
java.base@11.0.16/java.security.AccessController.doPrivileged(Native Method)
java.base@11.0.16/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
java.desktop@11.0.16/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
java.desktop@11.0.16/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
java.desktop@11.0.16/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
java.desktop@11.0.16/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
java.desktop@11.0.16/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
java.desktop@11.0.16/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
java.desktop@11.0.16/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
java.base@11.0.16/java.security.AccessController.doPrivileged(Native Method)
java.desktop@11.0.16/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
java.desktop@11.0.16/java.awt.Dialog.show(Dialog.java:1070)
java.desktop@11.0.16/java.awt.Component.show(Component.java:1716)
java.desktop@11.0.16/java.awt.Component.setVisible(Component.java:1663)
java.desktop@11.0.16/java.awt.Window.setVisible(Window.java:1031)
java.desktop@11.0.16/java.awt.Dialog.setVisible(Dialog.java:1005)
app//org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor.lambda$doBeginTask$3(PleaseWaitProgressMonitor.java:255)
app//org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor$$Lambda$879/0x000000084064e040.run(Unknown Source)
app//org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor.lambda$doInEDT$0(PleaseWaitProgressMonitor.java:113)
app//org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor$$Lambda$880/0x000000084064e440.run(Unknown Source)
java.desktop@11.0.16/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
java.desktop@11.0.16/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
java.desktop@11.0.16/java.awt.EventQueue$4.run(EventQueue.java:721)
java.desktop@11.0.16/java.awt.EventQueue$4.run(EventQueue.java:715)
java.base@11.0.16/java.security.AccessController.doPrivileged(Native Method)
java.base@11.0.16/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
java.desktop@11.0.16/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
java.desktop@11.0.16/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
java.desktop@11.0.16/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
java.desktop@11.0.16/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
java.desktop@11.0.16/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
java.desktop@11.0.16/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
java.desktop@11.0.16/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Thread: CacheEventQueue.QProcessor-TMS_BLOCK_v2Thread-2 (39) of main
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.16/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.16/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: Finalizer (3) of system
java.base@11.0.16/java.lang.Object.wait(Native Method)
java.base@11.0.16/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@11.0.16/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
java.base@11.0.16/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)

Thread: Timer-2 (52) of main
java.base@11.0.16/java.lang.Object.wait(Native Method)
java.base@11.0.16/java.lang.Object.wait(Object.java:328)
java.base@11.0.16/java.util.TimerThread.mainLoop(Timer.java:527)
java.base@11.0.16/java.util.TimerThread.run(Timer.java:506)

Thread: File Watcher (23) of main
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.16/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.16/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
java.base@11.0.16/java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:671)
java.base@11.0.16/sun.nio.fs.AbstractWatchService.take(AbstractWatchService.java:118)
app//org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:120)
app//org.openstreetmap.josm.io.FileWatcher$$Lambda$311/0x0000000840373440.run(Unknown Source)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: TimerQueue (21) of system
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
java.base@11.0.16/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
java.base@11.0.16/java.util.concurrent.DelayQueue.take(DelayQueue.java:229)
java.desktop@11.0.16/javax.swing.TimerQueue.run(TimerQueue.java:171)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: Timer-1 (51) of main
java.base@11.0.16/java.lang.Object.wait(Native Method)
java.base@11.0.16/java.util.TimerThread.mainLoop(Timer.java:553)
java.base@11.0.16/java.util.TimerThread.run(Timer.java:506)

Thread: AWT-Shutdown (20) of system
java.base@11.0.16/java.lang.Object.wait(Native Method)
java.base@11.0.16/java.lang.Object.wait(Object.java:328)
java.desktop@11.0.16/sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:291)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: DestroyJavaVM (46) of main

Thread: FileSystemWatchService (22) of main
java.base@11.0.16/sun.nio.fs.LinuxWatchService.poll(Native Method)
java.base@11.0.16/sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:316)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: JCS-ElementEventQueue-Thread-1 (38) of main
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.16/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.16/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: Weak reference cleaner (24) of main
java.base@11.0.16/java.lang.Object.wait(Native Method)
java.base@11.0.16/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@11.0.16/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
app//org.openstreetmap.josm.tools.ListenableWeakReference.clean(ListenableWeakReference.java:60)
app//org.openstreetmap.josm.tools.ListenableWeakReference$$Lambda$368/0x00000008403df040.run(Unknown Source)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: ForkJoinPool.commonPool-worker-7 (31)
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:275)
java.base@11.0.16/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1619)
java.base@11.0.16/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: RemoteControl HTTP Server (43) of main
java.base@11.0.16/java.net.PlainSocketImpl.socketAccept(Native Method)
java.base@11.0.16/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:474)
java.base@11.0.16/java.net.ServerSocket.implAccept(ServerSocket.java:565)
java.base@11.0.16/java.net.ServerSocket.accept(ServerSocket.java:533)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Thread: main-worker-0 (18) of main
Stacktrace see above.

Thread: RemoteControl HTTP Server (42) of main
java.base@11.0.16/java.net.PlainSocketImpl.socketAccept(Native Method)
java.base@11.0.16/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:474)
java.base@11.0.16/java.net.ServerSocket.implAccept(ServerSocket.java:565)
java.base@11.0.16/java.net.ServerSocket.accept(ServerSocket.java:533)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Thread: ForkJoinPool.commonPool-worker-5 (30) of main
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.16/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628)
java.base@11.0.16/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: message-notifier-0 (44) of main
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
java.base@11.0.16/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
java.base@11.0.16/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@11.0.16/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.16/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: AWT-XAWT (16) of system
java.desktop@11.0.16/sun.awt.X11.XToolkit.waitForEvents(Native Method)
java.desktop@11.0.16/sun.awt.X11.XToolkit.run(XToolkit.java:685)
java.desktop@11.0.16/sun.awt.X11.XToolkit.run(XToolkit.java:649)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: Java2D Disposer (15) of system
java.base@11.0.16/java.lang.Object.wait(Native Method)
java.base@11.0.16/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@11.0.16/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
java.desktop@11.0.16/sun.java2d.Disposer.run(Disposer.java:144)
java.base@11.0.16/java.lang.Thread.run(Thread.java:829)

Thread: Reference Handler (2) of system
java.base@11.0.16/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
java.base@11.0.16/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
java.base@11.0.16/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)

Thread: Timer-0 (40) of main
java.base@11.0.16/java.lang.Object.wait(Native Method)
java.base@11.0.16/java.util.TimerThread.mainLoop(Timer.java:553)
java.base@11.0.16/java.util.TimerThread.run(Timer.java:506)

Thread: styled-map-renderer-2 (56) of main
java.base@11.0.16/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.16/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.16/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628)
java.base@11.0.16/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: Signal Dispatcher (4) of system

Attachments (0)

Change History (3)

comment:1 by taylor.smock, 2 years ago

Owner: changed from team to shoorick
Status: newneedinfo

Well, the problem here is step 5. The GeoJSON specification (RFC 9746) specifies that a MultiPolygon is made like so:

   {
       "type": "MultiPolygon",
       "coordinates": [
           [
               [
                   [180.0, 40.0], [180.0, 50.0], [170.0, 50.0],
                   [170.0, 40.0], [180.0, 40.0]
               ]
           ],
           [
               [
                   [-170.0, 40.0], [-170.0, 50.0], [-180.0, 50.0],
                   [-180.0, 40.0], [-170.0, 40.0]
               ]
           ]
       ]
   }

While a LineString is made like so:

    {
         "type": "LineString",
         "coordinates": [
             [-170, 10],
             [170, 11]
         ]
    }

You'll note that the MultiPolygon coordinates are [[[ (actual coordinate arrays) ]]] while the LineString is [ (actual coordinate arrays) ].

This jives with the exception java.lang.ClassCastException: Cannot cast org.glassfish.json.JsonNumberImpl$JsonBigDecimalNumber to javax.json.JsonArray since we are expecting 2 inner arrays.

I'll go ahead and give you a chance to upload the original file so we can look and see where we can improve the import or export process of a geojson, but it might be unavoidable to lose information between the import and export process.

comment:2 by pangoSE, 2 years ago

I suggest we close this.

comment:3 by taylor.smock, 2 years ago

Resolution: needinfo
Status: needinfoclosed

@shoorick: If you can upload the original file that has issues with export, please do so and reopen this ticket.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain shoorick.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


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