Modify

Opened 8 years ago

Closed 8 years ago

#12811 closed defect (duplicate)

crash while trying to add way to relation

Reported by: kennykb Owned by: Don-vip
Priority: normal Milestone:
Component: Core Version: tested
Keywords: relation NullPointerException Cc:

Description (last modified by Don-vip)

I was trying to add a way to an existing relation. The relation was huge, so I downloaded the relation and all members (using Download Object), and then the local area of the way. In the 'Edit relation' dialog, I got a crash while trying to set up to add ways to the relation.

Stack trace was:

ERROR: java.lang.NullPointerException
java.lang.NullPointerException
	at org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionTypeCalculator.makeLoopIfNeeded(WayConnectionTypeCalculator.java:116)
	at org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionTypeCalculator.updateLinks(WayConnectionTypeCalculator.java:100)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.getWayConnection(MemberTableModel.java:777)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTable$ZoomToGapAction.getConnectionType(MemberTable.java:203)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTable$ZoomToGapAction.hasGap(MemberTable.java:210)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTable$ZoomToGapAction.updateEnabledState(MemberTable.java:231)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTable$ZoomToGapAction.valueChanged(MemberTable.java:239)
	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.addSelectionInterval(DefaultListSelectionModel.java:518)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.addMembersAtIndex(MemberTableModel.java:456)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.addMembersAtEnd(MemberTableModel.java:492)
	at org.openstreetmap.josm.gui.dialogs.relation.actions.AddSelectedAtEndAction.actionPerformed(AddSelectedAtEndAction.java:42)
	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.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.Component.processMouseEvent(Component.java:6535)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6300)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4891)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	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:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:697)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	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)
INFO: GET https://josm.openstreetmap.de/wiki/TestedVersion?format=txt -> 200
INFO: Registered toolbar action bug overwritten: org.openstreetmap.josm.actions.ReportBugAction gets org.openstreetmap.josm.actions.ReportBugAction
INFO: Opening URL: https://josm.openstreetmap.de/newticket
Xlib:  extension "XInputExtension" missing on display ":0.0".
INFO: GET https://api.openstreetmap.org/api/0.6/user/details (get number of unread messages) -> 200 (532 B)

Attachments (1)

bug.osm (5.0 MB ) - added by kennykb 8 years ago.
Workspace on which bug can be reproduced

Change History (14)

comment:1 by kennykb, 8 years ago

Just tried it with incrementally loading sections of the map so that the entire relation was in memory without 'Download Relation' - it didn't affect the behaviour.

It's 100% reproducible for me at this point - edit relation osmwww:relation/91942, then select way osmwww:way/293250237 with the 'Edit Relation' dialog open, and NullPointerException, even before trying to insert it in the relation.

Last edited 8 years ago by Don-vip (previous) (diff)

comment:2 by kennykb, 8 years ago

Oh... neglected to include the status report.

URL:http://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2016-04-28 12:48:16 +0200 (Thu, 28 Apr 2016)
Build-Date:2016-04-28 10:51:36
Revision:10161
Relative:URL: ^/trunk

Identification: JOSM/1.5 (10161 en) Linux Ubuntu 15.10
Memory Usage: 1305 MB / 7122 MB (492 MB allocated, but free)
Java version: 1.8.0_66-internal-b17, Oracle Corporation, OpenJDK 64-Bit Server VM
Dataset consistency test: No problems found

Plugins:
- ImportImagePlugin (31772)
- ejml (31895)
- geotools (31895)
- jts (31772)
- log4j (31895)
- utilsplugin2 (32099)

Last errors/warnings:
- E: org.openstreetmap.josm.io.OsmTransferException: Could not connect to the OSM server. Please check your internet connection.. Cause: java.net.SocketTimeoutException: Read timed out
- E: IO Exception - <html>Failed to upload data to or download data from<br>'https://api.openstreetmap.org/api/0.6/map?bbox=-73.9834332,40.8368165,-73.9289307,40.8976998'<br>due to a problem with transferring data.<br>Details (untranslated): Read timed out</html>
- E: org.openstreetmap.josm.io.OsmApiException: ResponseCode=400, Error Header=<You requested too many nodes (limit is 50000). Either request a smaller area, or use planet.osm>, Error Body=<Reading error text failed.>
- E: Bad Request - <html>The OSM server 'api.openstreetmap.org' reported a bad request.<br><br>The area you tried to download is too big or your request was too large.<br>Either request a smaller area or use an export file provided by the OSM community.</html>
- E: java.lang.NullPointerException

cache.bing.attribution.xml=1462053337
cache.capabilities-131030235=1429479123
cache.capabilities1637351842=1461542325
cache.motd.html=1462053242
cache.motd.html.java=1.8.0_66-internal
cache.motd.html.lang=En:
cache.motd.html.version=10161
commandstack.visible=true
coordinates=DECIMAL_DEGREES
downloadprimitive.lasttype=2
file-open.history=[/storage/kennykb/Pictures/20160424wolfcreekfalls/imglocs.gpx, ${HOME}/Maps/20160424wolfcreek/20160424.gpx, ${HOME}/Maps/NPT/npt-2015-reroute/reroute-comparison.gpx, ${HOME}/Maps/20150927npt/20150927npt.gpx, ${HOME}/Maps/20150816npt/20150816npt0819.gpx, ${HOME}/Maps/20150706npt/20150706npt0709.gpx, ${HOME}/Maps/batona/topher-baum/Batona Trail Final.gpx, ${HOME}/Maps/batona/topher-baum/Batona Trail to Lower Forge Camp.gpx, ${HOME}/Maps/batona/topher-baum/Lower Forge Camp Waypoint.gpx, ${HOME}/Maps/20150606npt/20150606npt0606.gpx, ${HOME}/Maps/batona/activity_254361028.gpx, ${HOME}/Maps/batona/activity_79924912.gpx, ${HOME}/Maps/batona/activity_79925335.gpx, ${HOME}/Maps/batona/activity_98283232.gpx, ${HOME}/Maps/20150425huyck/20150425huyck0425.gpx]
gui.geometry=x=0,y=33,width=1920,height=1047
imagery.entries=[{name=Bing aerial imagery, id=Bing, type=bing, url=http://www.bing.com/maps/, max-zoom=22, icon=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAdVBMVEX/phX/04r/////6cX/zXz/7Mz/vFD/u0z/1I7/tT3/yXH/uEX/v1f/rCT/2pz/vlP/qRz/4a//yG3/xmn//Pj/9eb/+/T/897/t0H/wl7/sTL//vv/+O3/2Jn/7dD/+vH/9+n/3KT/tDr/9OL/8Nf/26D/ynSCVQVOAAAAkklEQVR4Xq3R1w7DIBQD0NiQne69d///E3tvBYVU6UsVPyEdCYycIOlOv5AB004Aaf6DCpLtF4yxp8tkFMGCkiEkKyGz9qCxrkxuhLIAeaijMvAwi/vMycJDuyi5/AVUaPwTPik5UdCDiWCjtd5Q70TK+KKD26M+6o+tdGxwIlmFPeyZn1yuraFKFOnt/sCz/81f+9UEaf1lPCAAAAAASUVORK5CYII=, noTileHeaders={"X-VE-Tile-Info":["no-tile"]}, metadataHeaders={"X-VE-TILEMETA-CaptureDatesRange":"Capture Date"}}, {name=kbk-catskills, type=tms, url=http://kbk.is-a-geek.net/catskills/tiles/{zoom}/{x}/{y}.jpg, max-zoom=16}, {name=Mapbox Satellite, id=Mapbox, type=tms, url=http://{switch:a,b,c}.tiles.mapbox.com/v4/openstreetmap.map-inh7ifmo/{zoom}/{x}/{y}.png?access_token=pk.eyJ1Ijoib3BlbnN0cmVldG1hcCIsImEiOiJncjlmd0t3In0.DmZsIeOW-3x-C5eX-wAqTw, max-zoom=19, icon=data:image/png;base64,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YmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuMS4yIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzE8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzI8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFjb3JuIHZlcnNpb24gMy41PC94bXA6Q3JlYXRvclRvb2w+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgqb9JbbAAAGd0lEQVRIDX1We4xVRxn/zZzXfd9l9+7efcCy9LqsYFtAAVHTFaQtrba1plltDKVRUfoHxeCDBE0FTI3+gTXWxkRNUVpNWtbExDSUlhQW2kKjDZWHCyzs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, noTileHeaders={"ETag":["\"067736a547cafe90014b4e59b6510abe\"|\"ee1f6802b0234046b553cbbc672ac7d9\"|\"9f5a2f1d7cc131e58befc2052c71c827\""]}, noTileChecksums={"MD5":["811bb5f56a0e672f674a2a820d340c61"]}}, {name=MapQuest Open Aerial, id=mapquest-oa, type=tms, url=http://oatile{switch:1,2,3,4}.mqcdn.com/tiles/1.0.0/sat/{zoom}/{x}/{y}.png, attribution-text=Tiles Courtesy of MapQuest. Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency, attribution-url=http://open.mapquest.com/, icon=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD9QTFRFAAAAi8ZBi8ZBi8ZBi8ZBkslMmc1YoNBkqNRwr9d8ttuIvd6UxeKgzOar0+m32u3D4vDP6fTb8Pfn9/vz////1BI4LwAAAAR0Uk5TAF+fzylxRuMAAADBSURBVDjLxZPRDoMgDEVVClRlgML/f+tKUTLNgGV72H0okXskLbTD8IFGAW8lxuxPUNXE/0ND6QzRAgQB0NS3gEbEBjDvkRSWGoDx0FwB3An4CrCRZ0wiKkC27oDSOX0F4MlyNqVZAMmfVvNi7JmDK4CPrypJbvIA1MWPATdeYlwPgAvPmxw1SEQpnTtPMFzzg68mEXh/iwwYtvyfgIU2d5kAy8AKJlwAKor6I0UNKsfl15a7AN227w5Od/T6w9vWE6pGGxHVqV03AAAAAElFTkSuQmCC, noTileHeaders={"ETag":[".*?:OC4CjEZcEJv8Az5u7fOqgEP\\+NpkA\""]}}, {name=OpenStreetMap (Mapnik Black & White), id=osm-mapnik-black_and_white, type=tms, url=https://tiles.wmflabs.org/bw-mapnik/{zoom}/{x}/{y}.png, attribution-text=© OpenStreetMap contributors, CC-BY-SA, attribution-url=https://openstreetmap.org/, max-zoom=18, icon=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADJElEQVR4Xo2SS2hcZRSAv/+//70zkzszeU+okVqaaGLjI0akTRGl3ehGdCEiutO6c6PgwoWCSMUXdRFaCurGTRGVUtqNraKmTDA1KtIQzat3TKczSW0mznTuzNznL1zoxo1+q3PgwPnOA8cufVU647y+PnYps6Wq9lbfxvTiqdnzs+/PH7re/bY6nV7tqT5UmanOkUDJcN5w9BW9phcuXDtW/bqy7ejfdVH/qhd0cfXsO9998VN5Xq/qTffaAwACnGl9VvcHePSiaOMidSzWdb+wsRG0CLmhc8E9r/YcbyNgqZA6w4E6ETksoI3gIofIYCCT3KPD39z49OkjIGHf9aikyWFyE4EgzwoHyJFBoQmxsAmQyH1TAyABrMDCJIvCI2Ibk24kYGCTIwXksbD3P3sYDCjtMV8xhsACJHXK5BjCRBMQ0CbAxUdpQ27Xrp5XYI7oEYgQ+IBHjKBDkOiZSJqESGLSZMYOWrJEPK67NDEtIhpoTAQxMRDSpE4H0AgUSkhkaPmTAaGGJiYWWSxCOmgU0CaEpI9Bmmj1+0AthnvXMwRCEBPSh4ekSh8dBNBFAChSZESD8i9LsXxKr/wRNWWy/XTi2sO3rBGjk2lMUqSTLa3+eHJuzJIwX/bLApOYiE4y/F18xNUkInG3iFjxi5/vVJSU6FMld9NHYLCDxqPKEoqPuUQjubLLNgtsmIcnXB1HCso1qyYJiMmzwSdY9PIww2zRhUEOjYsgJ8zhXtnyFXzT218IscizzHHcROsxdhPzFzdxsBDkGYjW13bcQqhgdCS+s0MWhxPUCTCZIotAspeYCgoPqZve5SKtZSQ0RrwhmyvMUMFF8TjTFPBJ4REyiEaAiN2jP6BBzqjOhMEi7+HQIstzyada9BFqQ9u4eFpphe+wCaAMM9q1HB41POGzixe4H7d18cJAauJgd75JiIkpDOq1y1+SAAa3vXvkrcZ4PFZ7bf3k7Itvsp9hbufBl14+fe7nP8/NfXDi0ee5l25uUUTc8eFnT/42esx+gmEMbiGxGUyO/G+mcnseue+ZycmpDP+PAneb4+lRA2D3f9T+A2BEVdbaZSWbAAAAAElFTkSuQmCC, valid-georeference=true}, {name=OpenStreetMap (Mapnik), id=MAPNIK, type=tms, url=https://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png, attribution-text=© OpenStreetMap contributors, CC-BY-SA, attribution-url=https://openstreetmap.org/, max-zoom=19, icon=data:image/png;base64,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}]
imagery.layers.addedIds=[Bing, MAPNIK, Mapbox, mapquest-oa, osm-mapnik-black_and_white]
imagery.layers.default=[http://oatile{switch:1,2,3,4}.mqcdn.com/tiles/1.0.0/sat/{zoom}/{x}/{y}.png, http://www.bing.com/maps/, http://{switch:a,b,c}.tiles.mapbox.com/v4/openstreetmap.map-inh7ifmo/{zoom}/{x}/{y}.png?access_token=pk.eyJ1Ijoib3BlbnN0cmVldG1hcCIsImEiOiJncjlmd0t3In0.DmZsIeOW-3x-C5eX-wAqTw, http://{switch:a,b,c}.www.toolserver.org/tiles/bw-mapnik/{zoom}/{x}/{y}.png, https://tiles.wmflabs.org/bw-mapnik/{zoom}/{x}/{y}.png, https://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png]
imagery.offsetnagging=false
josm.version=10161
lastDirectory=/storage/kennykb/Pictures/20160424wolfcreekfalls
mappaint.renderer-class-name=org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer
mappaint.style.entries=[{title=JOSM default (MapCSS), active=true, ptoken=standard, url=resource://styles/standard/elemstyles.mapcss}, {title=Potlatch 2, active=false, ptoken=standard, url=resource://styles/standard/potlatch2.mapcss}]
mappaint.style.known-defaults=[resource://styles/standard/elemstyles.mapcss, resource://styles/standard/potlatch2.mapcss]
mappaint.style.migration.switchedToMapCSS=true
message.imagery.nagPanel.http://kbk.is-a-geek.net/catskills/tiles/{zoom}/{x}/{y}.jpg=false
mirror.<josm.pref>/cache/images.http://openclipart.org/people/secretlondon/secretlondon_chocolate_present.svg=[1429479124711, <josm.pref>/cache/images/mirror_http___openclipart.org_people_secretlondon_secretlondon_chocolate_present.svg]
mirror.http://josm.openstreetmap.de/maps=[1429479124322, <josm.pref>/cache/mirror_http___josm.openstreetmap.de_maps]
mirror.https://josm.openstreetmap.de/maps=[1462053126787, <josm.pref>/cache/mirror_https___josm.openstreetmap.de_maps]
org.openstreetmap.josm.gui.actionsupport.DeleteFromRelationConfirmationDialog.geometry=x=760,y=452,width=400,height=200
org.openstreetmap.josm.gui.conflict.tags.CombinePrimitiveResolverDialog.geometry=x=660,y=352,width=600,height=400
org.openstreetmap.josm.gui.dialogs.DeleteFromRelationConfirmationDialog.geometry=x=760,y=452,width=400,height=200
org.openstreetmap.josm.gui.dialogs.InspectPrimitiveDialog.geometry=x=585,y=277,width=750,height=550
org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog.geometry=x=963,y=597,width=904,height=426
org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$EditTagDialog.geometry=x=474,y=671,width=850,height=186
org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor.geometry=x=989,y=233,width=869,height=804
org.openstreetmap.josm.gui.download.DownloadDialog.geometry=x=460,y=253,width=1000,height=600
org.openstreetmap.josm.gui.download.DownloadObjectDialog.primitivesHistory=[919642, 178091714, 60859299, 198403636, 209110143, 216333080, 180905120, 2402520, 199428707, 221560458, 2406732, 214859301, 223060800, 205854157, 183766759]
org.openstreetmap.josm.gui.history.HistoryBrowserDialogManager.geometry=x=535,y=290,width=850,height=500
org.openstreetmap.josm.gui.io.UploadDialog.geometry=x=1094,y=200,width=400,height=600
org.openstreetmap.josm.gui.io.UploadSelectionDialog.geometry=x=860,y=352,width=200,height=400
org.openstreetmap.josm.gui.oauth.OAuthAuthorizationWizard.geometry=x=735,y=286,width=600,height=540
org.openstreetmap.josm.gui.preferences.PreferenceDialog.geometry=x=610,y=153,width=700,height=800
osm-download.bounds=42.6245249;-74.1829895;42.8610308;-73.9649796
osm-server.upload-strategy=singlerequest
pluginmanager.lastupdate=1462053241594
pluginmanager.version=10161
plugins=[ImportImagePlugin, ejml, geotools, jts, log4j, utilsplugin2]
plugins.importimage.importpath=${HOME}/Maps/20160424wolfcreek
progressdialog.size=457
projection.sub=[]
projection.sub.core:mercator=[]
properties.recent-tags=[operator, Mohawk-Hudson Land Conservancy, url, http://mohawkhudson.org/our-preserves/keleher-preserve/, note, Letter S is correct. S does not stand for anything., operator, Edmund Niles Huyck Preserve and Biological Research Station, access, public, opening_hours, dawn-dusk, bridge, boardwalk, horse, no, note, County maintains the road up to the Forest Preserve boundary (the old Spruceton Road actually continues as the bridle path), fireplace, yes, foot, public, ski, yes, surface, gravel, surface, wood, bridge, yes, material, wood, copper, start_date, 2015, ele, 535.5, area, no, access, no]
proxy.policy=no-proxy
relationlist.visible=false
remotecontrol.enabled=true
remotecontrol.https.enabled=true
search.history=[R name="Northville Placid Trail", R Northville Placid]
sourcetag.value=usgs_dlg
taggingpreset.entries=[{title=Internal Preset, url=resource://data/defaultpresets.xml}]
toggleDialogs.width=502
upload.comment.history=[Tidy a few alignments from aerial images and make boundary consistent, Facilities in Wolf Creek Falls Preserve, Old stone walls in Wolf Creek Falls Preserve, Wolf Creek Falls trails north of Bozenkill Road, Wolf Creek Falls trails south of Bozenkill Road, Wolf Creek Falls parking, Add boundary of Wolf Creek Falls Preserve, misidentified water body, Vly is NOT an abbreviation for Valley, fix typo, USGS and NYSDOT both omit apostrophe, combine Beaver Ponds, Deer Lake -> Deer Pond per topos, All USGS and NYSDOT topos from 1903 to present have Deer Pond, Fix typo]
upload.comment.last-used=1461552452
upload.source.history=[survey; Bing, http://mohawkhudson.org/our-preserves/wolf-creek-falls-preserve/, NYSDOT topo, USGS topo, NYSDOT topo, USGS topos pre 1990, USGS topo, NYSDOT topo, USGS topo, NYSDOT topo both show name without apostrophe, USGS topo, GPS; Bing; NYSDEC unit management plans, wiki recommends tagging a node, Topher Baum, field notes, Batona Trail alignments obtained from Kayak Karl's GPS tracks, survey; Bing; www.mohawkhudson.org, survey; Bing; http://www.huyckpreserve.org, https://www.huyckpreserve.org/]
validator.org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.entries=[{active=true, title=Addresses, url=resource://data/validator/addresses.mapcss}, {active=true, title=Tag combinations, url=resource://data/validator/combinations.mapcss}, {active=true, title=Deprecated features, url=resource://data/validator/deprecated.mapcss}, {active=true, title=Geometry, url=resource://data/validator/geometry.mapcss}, {active=true, title=Highways, url=resource://data/validator/highway.mapcss}, {active=true, title=Multiple values, url=resource://data/validator/multiple.mapcss}, {active=true, title=Numeric values, url=resource://data/validator/numeric.mapcss}, {active=true, title=Religion, url=resource://data/validator/religion.mapcss}, {active=true, title=Relations, url=resource://data/validator/relation.mapcss}, {active=true, title=Unnecessary tags, url=resource://data/validator/unnecessary.mapcss}, {active=true, title=Wikipedia, url=resource://data/validator/wikipedia.mapcss}]
validator.skip=[]
validator.skipBeforeUpload=[]
validator.visible=true

comment:3 by Don-vip, 8 years ago

Description: modified (diff)

in reply to:  1 comment:4 by Don-vip, 8 years ago

Replying to kevin.b.kenny@…:

It's 100% reproducible for me at this point - edit relation osmwww:relation/91942, then select way osmwww:way/293250237 with the 'Edit Relation' dialog open, and NullPointerException, even before trying to insert it in the relation.

Cannot reproduce, are you sure about object ids? The way is far from the relation.

comment:5 by Don-vip, 8 years ago

Owner: changed from team to kennykb
Status: newneedinfo

comment:6 by anonymous, 8 years ago

Copy-n-paste error: the correct relation id was 919642.

It appears that the relation was too large to handle; perhaps a race condition between the Swing thread that was rendering it and whatever thread was checking for coherency? I worked around the problem by creating a superrelation and breaking the relation into pieces. I knew that was coming, anyway, because 400 track segments is simply too many for a lot of tools. I'd not tried editing a route that big before.

It might be significant that when I started, the track segments were badly scrambled. The relation had been created initially without an eye toward connecting them.

comment:7 by kennykb, 8 years ago

Oops, the comment above should have been identified as me...

comment:8 by Don-vip, 8 years ago

would you have a working copy of the .osm file before your corrections? It would help us to reproduce and fix the JOSM bug.

comment:9 by kennykb, 8 years ago

I don't have one, but I'm trying now to create one that tickles the bug.

by kennykb, 8 years ago

Attachment: bug.osm added

Workspace on which bug can be reproduced

comment:10 by kennykb, 8 years ago

Owner: changed from kennykb to Don-vip
Status: needinfonew

I've attached an OSM file where the bug crops up. (It may be less than 100%, but it's failing at least three times out of four for me,)

Sequence of actions that I perform:

  1. Launch JOSM.
  2. Open 'bug.osm'
  3. Bring up the 'Relations' window if it's not already up.
  4. Click on 'route("Bad Long Path", 405 members)'
  5. Right-click and pull 'Select Relation'.
  6. Navigate to the north end of the selected relation and select its northernmost way ('Bridge Street'. 2 nodes)
  7. In the 'Tags/Memberships' window, double-click the 'route("Bad Long Path", 405 members)' to bring up the relation editor with Bridge Street selected.
  8. Using the mouse in the main map window, select the westbound way of the dual carriageway connected to Bridge Street on the north side of the river ("Amsterdam Road").
  9. If the relation editor doesn't crash, "Amsterdam Road, 5 nodes" appears in the right-hand column of the Relation Editor. Try to add it at the top of the relation.
  10. If the relation editor still doesn't crash, try to dismiss it with the 'OK' button.

I'm finding that it's very rare that steps 7-10 will succeed without the NullPointerException.

I recognize that the 'Bad Long Path' relation includes a number of disconnected graphs. It was worse when I'd started with the Long Path. I was trying to use JOSM to clean up the mess.

comment:11 by Don-vip, 8 years ago

I'm still unable to reproduce it. Can you please try to disable assistive_technologies=org.GNOME.Accessibility.AtkWrapper in /etc/java-8-openjdk/accessibility.properties and see if that makes the bug disappear? It could be another strange effect of GNOME Atk wrapper (see #12022)

comment:12 by kennykb, 8 years ago

Thank you! With that line commented out, it appears that JOSM is considerably more stable. I'd seen some of the other symptoms of 12022 as well, and those are also mitigated.

Thanks for the assistance. I guess this is a reason to upgrade to 16.04 sooner rather than later. I'm not looking forward to it, because I have a ton of other software that's patched and is unquestionably going to break when I do.

Go ahead and close the ticket: this is obviously AtkWrapper's bug and not yours.

comment:13 by Don-vip, 8 years ago

Resolution: duplicate
Status: newclosed

Closed as duplicate of #12022.
ok thanks. Note that upgrading to 16.04 will help but will probably not remove the need to comment this line. AtkWrapper is still very buggy.

Modify Ticket

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