logo separator

[mkgmap-dev] NullPointerException & housenumber rules

From WanMil wmgcnfg at web.de on Mon Apr 8 19:25:43 BST 2013

Hi Minko,

great test!
The problem was caused by the "delete addr:housenumber" action.
The housenumber generator collects the nodes and ways containing the 
housenumber information *before* the style file is processed. But the 
housenumber itself is parsed *after* the style file is processed. So it 
kept the nodes with addr:housenumber which was removed by your style 
file and therefore the parser failed.

This case is now catched and you have given me a good hint that I have 
to improve the housenumber generator to work with the style file house 
number assignments.

Thanks!
WanMil

> Hi,
>
> I've got a NullPointerException error when I add the following line to the address rules (inc/address file)
>
> addr:housenumber=* & addr:street=* & source=BAG {delete addr:housenumber}
>
> I put this line before the following lines:
>
> mkgmap:street!=* & addr:street=* { set mkgmap:street='${addr:street}' }
> mkgmap:street!=* & addr:housename=* { set mkgmap:street='${addr:housename}' }
>
> This rule I want to add because I merge so called BAG dataset later to my osm extract,
> and I want to filter all BAG data that has already been imported in the NL's until now.
>
> If you put the line at the end of the address file everything is ok (but probably doesn't do anything).
> It happens with the default style as well as my own styles.
>
> The NPE occurs with mkgmap-r2544, r2560 and mkgmap-overview2 jar files with --x-housenumbers
> With mkgmap-r2538 this NPE does not occur.
>
> One of the tiles that is affected and contains the tag addr:housenumber=* & addr:street=* & source=BAG as well as my merged BAG data is uploaded here:
> http://mijndev.openstreetmap.nl/~ligfietser/test/10010033.o5m
>
> The error message is
>
> java.lang.NullPointerException
> 	at java.util.regex.Matcher.getTextLength(Unknown Source)
> 	at java.util.regex.Matcher.reset(Unknown Source)
> 	at java.util.regex.Matcher.<init>(Unknown Source)
> 	at java.util.regex.Pattern.matcher(Unknown Source)
> 	at uk.me.parabola.mkgmap.osmstyle.housenumber.HousenumberMatch.parseHousenumber(HousenumberMatch.java:121)
> 	at uk.me.parabola.mkgmap.osmstyle.housenumber.HousenumberMatch.<init>(HousenumberMatch.java:50)
> 	at uk.me.parabola.mkgmap.osmstyle.housenumber.HousenumberGenerator.match(HousenumberGenerator.java:206)
> 	at uk.me.parabola.mkgmap.osmstyle.housenumber.HousenumberGenerator.generate(HousenumberGenerator.java:147)
> 	at uk.me.parabola.mkgmap.osmstyle.StyledConverter.end(StyledConverter.java:342)
> 	at uk.me.parabola.mkgmap.reader.osm.ElementSaver.convert(ElementSaver.java:244)
> 	at uk.me.parabola.mkgmap.reader.osm.o5m.O5mBinMapDataSource.load(O5mBinMapDataSource.java:53)
> 	at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDataSource.java:115)
> 	at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:144)
> 	at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:56)
> 	at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:228)
> 	at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:225)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
> 	at java.util.concurrent.FutureTask.run(Unknown Source)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> 	at java.lang.Thread.run(Unknown Source)
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev at lists.mkgmap.org.uk
> http://lists.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>



More information about the mkgmap-dev mailing list