﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
3909	NPE and broken data during upload attempt. (QuadBuckets)	bilbo	hansendc	"I edited some data (using JOSM 2437), then I wanted to use validator and do upload and I got just a messagebox saying ""nullpointer exception"" and on console I found this stacktrace:
{{{
Exception occurred during event dispatching:
java.lang.NullPointerException
        at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.nextContentNode QuadBuckets.java:485)
        at org.openstreetmap.josm.data.osm.QuadBuckets$QuadBucketIterator.next_content_node(QuadBuckets.java:969)
        at org.openstreetmap.josm.data.osm.QuadBuckets$QuadBucketIterator.peek(QuadBuckets.java:1015)
        at org.openstreetmap.josm.data.osm.QuadBuckets$QuadBucketIterator.hasNext(QuadBuckets.java:993)
        at org.openstreetmap.josm.data.osm.QuadBuckets.toArrayList(QuadBuckets.java:943)
        at org.openstreetmap.josm.data.osm.QuadBuckets.toArray(QuadBuckets.java:953)
        at java.util.Collections$UnmodifiableCollection.toArray(Collections.java:1001)
        at java.util.ArrayList.<init>(ArrayList.java:131)
        at org.openstreetmap.josm.data.osm.visitor.MapPaintVisitor.selectedLast(MapPaintVisitor.java:1429)
        at org.openstreetmap.josm.data.osm.visitor.MapPaintVisitor.visitAll(MapPaintVisitor.java:1523)
        at org.openstreetmap.josm.gui.layer.OsmDataLayer.paint(OsmDataLayer.java:247)
        at org.openstreetmap.josm.gui.MapView.paint(MapView.java:388)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5131)
        at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1475)
        at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1406)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:294)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
        at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
        at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
        at java.awt.Container.paint(Container.java:1780)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
        at java.awt.Dialog$1.run(Dialog.java:1045)
        at java.awt.Dialog$3.run(Dialog.java:1097)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Dialog.show(Dialog.java:1095)
        at java.awt.Component.show(Component.java:1563)
        at java.awt.Component.setVisible(Component.java:1515)
        at java.awt.Window.setVisible(Window.java:841)
        at java.awt.Dialog.setVisible(Dialog.java:985)
        at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$3.run(PleaseWaitProgressMonitor.java:79)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
java.lang.NullPointerException
        at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.split(QuadBuckets.java:289)
        at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.add_to_leaf(QuadBuckets.java:328)
        at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.add(QuadBuckets.java:564)
        at org.openstreetmap.josm.data.osm.QuadBuckets.add(QuadBuckets.java:819)
        at org.openstreetmap.josm.data.osm.QuadBuckets.addAll(QuadBuckets.java:873)
        at org.openstreetmap.josm.data.osm.DataSet.reindexAll(DataSet.java:767)
        at org.openstreetmap.josm.plugins.validator.tests.UnconnectedWays.startTest(UnconnectedWays.java:77)
        at org.openstreetmap.josm.plugins.validator.ValidateAction$ValidationTask.realRun(ValidateAction.java:164)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:63)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:105)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
java.lang.NullPointerException
        at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.split(QuadBuckets.java:289)
        at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.add_to_leaf(QuadBuckets.java:328)
        at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.add(QuadBuckets.java:564)
        at org.openstreetmap.josm.data.osm.QuadBuckets.add(QuadBuckets.java:819)
        at org.openstreetmap.josm.data.osm.QuadBuckets.addAll(QuadBuckets.java:873)
        at org.openstreetmap.josm.data.osm.DataSet.reindexAll(DataSet.java:767)
        at org.openstreetmap.josm.plugins.validator.tests.UnconnectedWays.startTest(UnconnectedWays.java:77)
        at org.openstreetmap.josm.plugins.validator.ValidateAction$ValidationTask.realRun(ValidateAction.java:164)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:63)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:105)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
p1 elapesd: 0
p2 elapesd: 0
p99 elapesd: 0

I then tried to upload data to server to save my work and I found that nodes were uploaded fine, but ways were not uploaded at all (the changeset contained no ways, even though I've modified some of them)

Also, all ways disappeared from my view - from the dataset I've seen in JOSM."	defect	closed	major		Core	latest	fixed	QuadBuckets NPE	
