Modify

Opened 8 weeks ago

Closed 8 weeks ago

Last modified 8 weeks ago

#18357 closed defect (fixed)

"New layer for untagged images" crashes if there are no tagged images

Reported by: StephaneP Owned by: holgermappt
Priority: normal Milestone:
Component: Plugin photoadjust Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. Import an image without geotagging metadata
  2. right click on the geottaged images layer
  3. Select "New layer for untagged images"

What is the expected result?

A new layer with only images without geo metadata

What happens instead?

Crash

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

Same behaviour on Windows and Ubuntu

URL:https://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2019-11-24 21:23:35 +0100 (Sun, 24 Nov 2019)
Build-Date:2019-11-25 02:31:03
Revision:15541
Relative:URL: ^/trunk

Identification: JOSM/1.5 (15541 en) Windows 10 64-Bit
OS Build number: Windows 10 Pro 1903 (18362)
Memory Usage: 1901 MB / 7223 MB (883 MB allocated, but free)
Java version: 1.8.0_191-b12, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: \Display0 1920x1080, \Display1 2560x1440
Maximum Screen Size: 2560x1440

Plugins:
+ DirectUpload (35221)
+ Mapillary (1.5.20)
+ OpeningHoursEditor (34977)
+ PicLayer (35104)
+ PolygonCutOut (v0.7)
+ apache-commons (35092)
+ apache-http (34908)
+ cadastre-fr (35194)
+ changeset-viewer (22)
+ continuosDownload (82)
+ contourmerge (v0.1.5)
+ ejml (35122)
+ geotools (35169)
+ graphview (34977)
+ imagery-xml-bounds (35100)
+ indoorhelper (35228)
+ javafx-windows
+ jaxb (35014)
+ jna (34908)
+ jts (35122)
+ measurement (35221)
+ opendata (35179)
+ photo_geotagging (34908)
+ photoadjust (35108)
+ poly (34991)
+ reverter (35226)
+ tag2link (35149)
+ tageditor (34977)
+ todo (30306)
+ turnlanes-tagging (281)
+ turnrestrictions (34977)
+ undelete (34977)
+ utilsplugin2 (35230)

Tagging presets:
+ https://raw.githubusercontent.com/yopaseopor/traffic_signs_preset_JOSM/master/FR.zip

Map paint styles:
- https://josm.openstreetmap.de/josmfile?page=Styles/RecyclingMaterials&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Maxspeed&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Sidewalks&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/MaxspeedIcons&zip=1
- https://raw.githubusercontent.com/species/josm-preset-traffic_sign_direction/master/direction.mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/Cycleways&zip=1
- http://kolesar.turistautak.hu/osm/opencellid/api/styles/measurements.mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_features&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_features_ryg&zip=1
+ <josm.pref>\styles\sit.mapcss

Last errors/warnings:
- W: Update plugins - org.openstreetmap.josm.plugins.PluginHandler$UpdatePluginsMessagePanel[,0,0,0x0,invalid,layout=java.awt.GridBagLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]
- W: Plugin javafx-windows requires Java version 10. The current Java version is 8. You have to update Java in order to use this plugin.
- W: No configuration settings found.  Using hardcoded default values for all pools.
- E: Error reading EXIF from file: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
- E: java.lang.ClassNotFoundException: controller.IndoorHelperController
- E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
- E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0


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

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (18) of main
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.rangeCheck(Unknown Source)
	at java.util.ArrayList.get(Unknown Source)
	at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.util.stream.ReferencePipeline.collect(Unknown Source)
	at org.openstreetmap.josm.data.ImageData.getSelectedImages(ImageData.java:131)
	at org.openstreetmap.josm.gui.layer.geoimage.ImageViewerDialog.imageDataUpdated(ImageViewerDialog.java:626)
	at org.openstreetmap.josm.data.ImageData.lambda$notifyImageUpdate$4(ImageData.java:323)
	at org.openstreetmap.josm.tools.ListenerList.fireEvent(ListenerList.java:150)
	at org.openstreetmap.josm.data.ImageData.notifyImageUpdate(ImageData.java:323)
	at org.openstreetmap.josm.data.ImageData.removeImage(ImageData.java:296)
	at org.openstreetmap.josm.plugins.photoadjust.UntaggedGeoImageLayerAction.actionPerformed(UntaggedGeoImageLayerAction.java:56)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.AbstractButton.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Attachments (0)

Change History (7)

comment:1 Changed 8 weeks ago by holgermappt

Status: newassigned
Summary: Crash with "New layer for untagged images""New layer for untagged images" crashes if there are no tagged images

I can reproduce the crash. It also happens if there are many untagged images.

If there are no tagged images then the menu should not be available.

comment:2 Changed 8 weeks ago by holgermappt

Resolution: fixed
Status: assignedclosed

Fixed in [o35236:35237]. Thanks for reporting this! I assume this bug was there since I created the menu entry for the untagged layer.

comment:3 Changed 8 weeks ago by StephaneP

No, I've used this feature successfuly a lot of time before this bug.

Did you test your new release with a mix of geotagged and untagged images?

comment:4 in reply to:  3 Changed 8 weeks ago by holgermappt

Replying to StephaneP:

No, I've used this feature successfuly a lot of time before this bug.

Also with just untagged photos? I didn't debug it further, but according to the bug trace the problem was that the original layer was empty after the untagged photos were moved to the new layer. Anyway, I consider it a bug to end up with an empty layer, and that was always the case.

Did you test your new release with a mix of geotagged and untagged images?

Sure, I tested with all three combinations: Just tagged (menu inactive), just untagged (menu inactive), tagged and untagged (menu active).

comment:5 Changed 8 weeks ago by StephaneP

Hmm sorry, it's possible this bug was there since a long time.
I probably mixed up things when I saw this bug because I was searching why I could not place an untagged image. I didn't know the shortcut modification from shift to ctrl+alt.

BTW: Let's say you have an image layer with only untagged image, and the image window closed. It's difficult for a beginner to know that he must right click the image layer and click on jump to next/previous marker to view an image and be able to place it with ctrl+alt.
I create another ticket for this if you want.

comment:6 in reply to:  5 Changed 8 weeks ago by holgermappt

Replying to StephaneP:

BTW: Let's say you have an image layer with only untagged image, and the image window closed. It's difficult for a beginner to know that he must right click the image layer and click on jump to next/previous marker to view an image and be able to place it with ctrl+alt.
I create another ticket for this if you want.

That would be a new ticket for the Core image mapping component. Do you have an idea how this could be handled in a more intuitive way? The image viewer can also be opened (and closed) with the camera icon on the left in the edit toolbar, which has the keyboard shortcut y.

comment:7 Changed 8 weeks ago by StephaneP

I don't have any idea yet.

If you import a folder containing 2 images, one tagged and one untagged, then create a "new layer for untagged images", the image viewer doesn't help. You have to right click the untagged images layer and click on jump to next/previous marker.

I will create a new ticket.

Thank you!

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain holgermappt.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.