For further analysis
Okay, It's the following line that makes mkgmap crash (this is in the points file):

ele>0 & natural=* {set name='${name} ${ele}m' | '${ele}m' }

ele=* & natural=* {set name='${name} ${ele}m' | '${ele}m' } is fine however.

I can upload a osm.pbf file that will cause a crash for analysis. But I hope the problem is easy to identify.
It seems that any comparison with > or < will cause a crash if it is inside the map data too.

On 04.10.2011 15:55, Felix Hartmann wrote:
I have never seen this bug before, it appears since mkgmap rev 2038.
Rev 2037 was still fine.

It does not happen very often, just on a few tiles. Also without my style-file it does not happen...
So there seems to be some serious problem related to those decimal numbers....

I'll try to find out which line in my style-file is responsible for this crash...
so far the error log:



java.lang.NumberFormatException
        at java.math.BigDecimal.<init>(Unknown Source)
        at java.math.BigDecimal.<init>(Unknown Source)
        at uk.me.parabola.mkgmap.osmstyle.eval.ValueWithUnit.<init>(ValueWithUnit.java:47)
        at uk.me.parabola.mkgmap.osmstyle.eval.NumericOp.eval(NumericOp.java:51)
        at uk.me.parabola.mkgmap.osmstyle.eval.AndOp.eval(AndOp.java:34)
        at uk.me.parabola.mkgmap.osmstyle.eval.LinkedOp.eval(LinkedOp.java:55)
        at uk.me.parabola.mkgmap.osmstyle.ActionRule.resolveType(ActionRule.java:59)
        at uk.me.parabola.mkgmap.osmstyle.RuleSet.resolveType(RuleSet.java:79)
        at uk.me.parabola.mkgmap.osmstyle.StyledConverter.convertNode(StyledConverter.java:349)
        at uk.me.parabola.mkgmap.reader.osm.ElementSaver.convert(ElementSaver.java:234)
        at uk.me.parabola.mkgmap.reader.osm.bin.OsmBinMapDataSource.load(OsmBinMapDataSource.java:72)
        at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:148)
        at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:58)
        at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:222)
        at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:219)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)