Modify

#19473 closed defect (fixed)

When using the MapWithAI plugin, JOSM stopped being able to find 7 of my JOSM plugins

Reported by: anonymous Owned by: taylor.smock
Priority: normal Milestone:
Component: Plugin mapwithai Version:
Keywords: template_report Cc: taylor.smock

Description

What steps will reproduce the problem?

What is the expected result?

What happens instead?

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

URL:https://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2020-06-30 19:13:42 +0200 (Tue, 30 Jun 2020)
Build-Date:2020-07-01 01:30:51
Revision:16731
Relative:URL: ^/trunk

Identification: JOSM/1.5 (16731 en) Mac OS X 10.15.5
OS Build number: Mac OS X 10.15.5 (19F101)
Memory Usage: 1623 MB / 3641 MB (1114 MB allocated, but free)
Java version: 1.8.0_251-b08, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Look and Feel: com.apple.laf.AquaLookAndFeel
Screen: Display 722470549 2560x1600 (scaling 1.0x1.0), Display 69733382 1680x1050 (scaling 1.0x1.0)
Maximum Screen Size: 2560x1600
Best cursor sizes: 16x16 -> 16x16, 32x32 -> 32x32

Plugins:
+ ImportImagePlugin (35248)
+ apache-commons (35362)
+ apache-http (35092)
+ ejml (35313)
+ geotools (35169)
+ jaxb (35092)
+ jna (35092)
+ jts (35122)
+ log4j (35092)
+ mapwithai-dev (af51c59)
+ measurement (35405)
+ opendata (35405)
+ undelete (35499)
+ utilsplugin2 (35487)

Tagging presets:
+ ${HOME}/Desktop/JSOM/FB_presets (1).xml
+ ${HOME}/Desktop/JSOM/indo_preset.xml

Map paint styles:
- ${HOME}/Desktop/JSOM/FB_style(test).mapcss
- ${HOME}/Desktop/JSOM/FB_style (2).mapcss
- https://github.com/osmlab/appledata/archive/josm_paint_inline_validation.zip
+ ${HOME}/Desktop/JSOM/FB_style (3).mapcss
- ${HOME}/Desktop/JSOM/FB_style (3).mapcss
- ${HOME}/Desktop/JSOM/rainbow_roads.mapcss
+ ${HOME}/Desktop/JSOM/FBedits (1).mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/MapWithAI&zip=1

Validator rules:
+ ${HOME}/Desktop/JSOM/FB_rules5.10.validator.mapcss
- ${HOME}/Desktop/JSOM/FB_rules5.10.TEST.validator.mapcss
+ ${HOME}/Desktop/JSOM/FB_rules5.12.validator.mapcss

Last errors/warnings:
- W: Unable to convert property color to type class java.awt.Color: found Keyword{transparent} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
- W: Unable to convert property color to type class java.awt.Color: found Keyword{transparent} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
- W: Unable to convert property color to type class java.awt.Color: found Keyword{transparent} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
- W: Unable to convert property color to type class java.awt.Color: found Keyword{transparent} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
- W: Unable to convert property color to type class java.awt.Color: found Keyword{transparent} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
- W: Unable to convert property color to type class java.awt.Color: found Keyword{transparent} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
- E: Thread main-worker-0 raised java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
- E: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory. Cause: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
- E: Handled by bug report queue: java.lang.NullPointerException
- W: Warning - <html>JOSM could not find information about the following plugins:<ul><li>mapwithai-dev</li><li>apache-commons</li><li>geotools</li><li>opendata</li><li>jts</li><li>ejml</li><li>measurement</li><li>jaxb</li><li>utilsplugin2</li><li>ImportImagePlugin</li><li>undelete</li><li>jna</li><li>apache-http</li><li>log4j</li></ul>The plugins are not going to be loaded.</html>


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

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (19) of main
java.lang.NullPointerException
	at java.util.Objects.requireNonNull(Objects.java:203)
	at java.lang.String.join(String.java:2501)
	at org.openstreetmap.josm.plugins.mapwithai.gui.preferences.mapwithai.MapWithAIProvidersPanel$MapWithAITypeTableCellRenderer.lambda$new$0(MapWithAIProvidersPanel.java:247)
	at org.openstreetmap.josm.plugins.mapwithai.gui.preferences.mapwithai.MapWithAIProvidersPanel$MapWithAITableCellRenderer.getTableCellRendererComponent(MapWithAIProvidersPanel.java:174)
	at javax.swing.JTable$AccessibleJTable.getAccessibleChild(JTable.java:7037)
	at javax.swing.JTable$AccessibleJTable.getAccessibleAt(JTable.java:7424)
	at javax.swing.JTable$AccessibleJTable.valueChanged(JTable.java:6939)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:184)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:164)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:211)
	at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:405)
	at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:415)
	at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:459)
	at javax.swing.JTable.changeSelectionModel(JTable.java:2392)
	at javax.swing.JTable.changeSelection(JTable.java:2459)
	at javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(BasicTableUI.java:1115)
	at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:1038)
	at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mousePressed(BasicTableUI.java:798)
	at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)
	at java.awt.Component.processMouseEvent(Component.java:6536)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6304)
	at java.awt.Container.processEvent(Container.java:2239)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4532)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
	at java.awt.Container.dispatchEventImpl(Container.java:2283)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.awt.Dialog.show(Dialog.java:1084)
	at java.awt.Component.show(Component.java:1671)
	at java.awt.Component.setVisible(Component.java:1623)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at org.openstreetmap.josm.gui.download.DownloadDialog.setVisible(DownloadDialog.java:485)
	at org.openstreetmap.josm.actions.DownloadAction.actionPerformed(DownloadAction.java:37)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
	at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:125)
	at java.awt.MenuItem.processActionEvent(MenuItem.java:669)
	at java.awt.MenuItem.processEvent(MenuItem.java:628)
	at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:357)
	at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:345)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:763)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Attachments (0)

Change History (3)

comment:1 Changed 18 months ago by skyper

Cc: taylor.smock added
Component: CorePlugin mapillary
Owner: changed from team to cbeddow

comment:2 Changed 18 months ago by taylor.smock

Component: Plugin mapillaryPlugin mapwithai
Owner: changed from cbeddow to taylor.smock
Status: newassigned

I'll see if I can track down the issue.

comment:3 Changed 18 months ago by taylor.smock

Resolution: fixed
Status: assignedclosed

I wasn't able to reproduce (so I don't have a regression test). However, there is only one way for that NullPointerException to be raised, and that is for the list to be null. I've added a check for that, but all of the code paths I could think to test for it already had safeguards. I've added another safeguard, but it should never be hit. I'll be releasing this to the -dev build soonish, while I continue to try to find other code paths that might be causing the NPE.

Modify Ticket

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