I have been debugging a crash of mkgamp where it fails with the exception

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.RangeCheck(Unknown Source)
        at java.util.ArrayList.get(Unknown Source)
        at
uk.me.parabola.mkgmap.reader.osm.MultiPolygonRelation$JoinedWay.<init
>(MultiPolygonRelation.java:2199)
        at
uk.me.parabola.mkgmap.reader.osm.MultiPolygonRelation.joinWays(MultiP
olygonRelation.java:245)
        at
uk.me.parabola.mkgmap.reader.osm.MultiPolygonRelation.processElements
(MultiPolygonRelation.java:763)
        at
uk.me.parabola.mkgmap.reader.osm.ElementSaver.addRelation(ElementSave
r.java:166)
        at
uk.me.parabola.mkgmap.reader.osm.xml.Osm5XmlHandler$SaxHandler.endEle
ment(Osm5XmlHandler.java:182)

The reason seems to be inconsistent data: a way without the nodes it
references. As mkgmap siletntly drops missing ways, but crashes on missing
nodes I assume this is a bug.

This can be fixed by changing Osm5XmlHandler, line 263 to

                        if ("way".equals(type)){
                                el = saver.getWay(id);
                                // remove ways without points
                                if( el != null && 
((Way)el).getPoints().isEmpty() )
                                        el = null;
                         }

Maybe someone would like to apply this fix to make mkgmap more robust.

bye
                Nop


--
View this message in context: 
http://gis.19327.n5.nabble.com/mkgmap-crashes-if-nodes-are-missing-tp5711811.html
Sent from the Mkgmap Development mailing list archive at Nabble.com.
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to