Modify

Opened 39 hours ago

Closed 30 hours ago

#24849 closed defect (invalid)

NoSuchFileException if photo deleted from disk while opening

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

Description

An unexpected exception occurs if you delete a file from the disk between first opening it and when JOSM opens the image.

  1. Drag a bunch of JPG images into JOSM
  2. While they are still loading, delete one of the images from the disk
  3. JOSM then throws an unexpected exception

It's expected in such a situation to silently ignore that removed file, or if you prefer to show a warning, not crash the whole application.

`

STACK TRACE

Thread: AWT-EventQueue-0 (33) of main
java.nio.file.NoSuchFileException: /tmp/photo.JPG

at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:261)
at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)
at java.base/java.nio.file.Files.newInputStream(Files.java:160)
at org.openstreetmap.josm.data.gpx.GpxImageEntry.getInputStream(GpxImageEntry.java:887)
at org.openstreetmap.josm.gui.layer.geoimage.ImageMetadata.extractExif(ImageMetadata.java:377)
at org.openstreetmap.josm.data.gpx.GpxImageEntry.extractExif(GpxImageEntry.java:882)
at org.openstreetmap.josm.gui.layer.geoimage.ImagesLoader.realRun(ImagesLoader.java:96)
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.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)

`

Attachments (0)

Change History (1)

comment:1 by GerdP, 30 hours ago

Resolution: invalid
Status: newclosed

I cannot reproduce a crash, JOSM shows the same stacktrace in the standard popup and allows to either report this as a bug or ignore the error. So, if you really faced a complete crash I guess that this was caused by JAVA, else you can close the popup with the ignore button.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
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.