locked-fg / trafficmining

Automatically exported from code.google.com/p/trafficmining
9 stars 4 forks source link

java.lang.NumberFormatException: For input string: "2147725216" on loading .osm file #25

Open matkoniecz opened 9 years ago

matkoniecz commented 9 years ago

I used https://trafficmining.googlecode.com/files/MARiO_v2.zip on Lubuntu 14.04

java -version gives

java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) Server VM (build 25.40-b25, mixed mode)

osm file acquired from Overpass ( http://overpass-api.de/api/interpreter?data=(node(50,19.78,50.11,20.09);<;);out meta; )

I used File > Load Graph to download acquired file.

It resulted in crash with following stacktrace:

INFO: parsing XML: /home/mateusz/Documents/OSM/tilemill/kr.osm; filesize: 215 mb
java.lang.NumberFormatException: For input string: "2147725216"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:583)
    at java.lang.Integer.parseInt(Integer.java:615)
    at de.lmu.ifi.dbs.paros.utils.XmlOsmHandler.startElement(XmlOsmHandler.java:84)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:356)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:328)
    at de.lmu.ifi.dbs.paros.utils.XmlOsmGraphReader.parseOSMxml(XmlOsmGraphReader.java:43)
    at de.lmu.ifi.dbs.paros.utils.XmlOsmGraphReader.getGraph(XmlOsmGraphReader.java:61)
    at de.lmu.ifi.dbs.paros.utils.GraphFactory.readOsmGraphXML(GraphFactory.java:22)
    at de.lmu.ifi.dbs.paros.LoadGraphWorker.doInBackground(LoadGraphWorker.java:52)
    at de.lmu.ifi.dbs.paros.LoadGraphWorker.doInBackground(LoadGraphWorker.java:17)
    at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at javax.swing.SwingWorker.run(SwingWorker.java:334)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
locked-fg commented 9 years ago

Oh damn. The OSM node ids have passed the max integer range. Well. Either the code base needs to be adjusted to use long instead of int or you preprocess the data to get back into the integer range.

I would of course appreciate any contribution regarding this issue

matkoniecz commented 9 years ago

It seems to be caused by http://wiki.openstreetmap.org/wiki/64-bit_Identifiers