1

I'm using GraphHopper in the following way:

    GraphHopper hopper = new GraphHopper().forServer();
    hopper.setCHEnable(false);
    hopper.setGraphHopperLocation(GraphHoperMasterFile);
    hopper.setOSMFile(OSMFile);
    hopper.setEncodingManager(new EncodingManager("car,bike"));

    hopper.importOrLoad();

    GHRequest req = new GHRequest().addPoint(new GHPoint (latFrom, lonFrom)).addPoint(new GHPoint(latTo, lonTo))
            .setVehicle("car")
            .setWeighting("fastest")
            .setAlgorithm(AlgorithmOptions.ASTAR_BI);;
    req.getHints().put("pass_through", true);
    GHResponse res = hopper.route(req);

I obtained the GraphHoperMasterFile by downloading the zip from https://github.com/graphhopper/graphhopper/blob/0.5/docs/core/routing.md.

I obtained the .osm file from http://download.geofabrik.de/europe/great-britain/england/greater-london.html.

I also added the maven dependancy from http://mvnrepository.com/artifact/com.graphhopper/graphhopper-web/0.5.0. I get the sense that it's wrong to have the maven dependancy and reference the graphHopperLocation, but i'm not sure.

When I run this code sometime (not all the time) get the following errors:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: To avoid reading partial data we need to obtain the read lock but it failed.
Caused by: java.lang.RuntimeException: To avoid reading partial data we need to obtain the read lock but it failed.
Caused by: java.nio.channels.OverlappingFileLockException

When it works I get the following:

2016-01-28 08:48:14,551 [pool-1-thread-8] INFO  com.graphhopper.GraphHopper - version 0.5.0|2015-08-12T12:33:51+0000 (4,12,3,2,2,1)
2016-01-28 08:48:14,551 [pool-1-thread-8] INFO  com.graphhopper.GraphHopper - graph car,bike|RAM_STORE|2D|NoExt|4,12,3,2,2, details:edges:387 339(12MB), nodes:291 068(4MB), name:(2MB), geo:960 828(4MB), bounds:-0.5177850019436703,0.33744369456418666,51.28324388600686,51.69833101402963

I see the thrown error over here https://github.com/graphhopper/graphhopper/blob/master/core/src/main/java/com/graphhopper/GraphHopper.java

How can I stop this error from happening?

MTA
  • 739
  • 2
  • 9
  • 29
  • 1
    Which OS and JVM version are you using? You have to make sure that you do not start multiple GH processes using the identical graphHopperLocation. If you want to run multiple GH in one JVM (or from different JVMs) you need to ensure that either the import is done fully from one instance alone OR you use different graphHopperLocation's – Karussell Jan 28 '16 at 14:00
  • I'm using OS X Yosemite and Java 1.8. Is graphHopperLocation just the file from git? – MTA Jan 28 '16 at 17:53
  • Ah, no. You specify some directory where GraphHopper will place its files :) – Karussell Jan 29 '16 at 15:39

0 Answers0