Skip to content

Commit 0f7ed2b

Browse files
committed
make road_class parser more resilient
1 parent a26d3ee commit 0f7ed2b

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

core/src/main/java/com/graphhopper/routing/util/parsers/OSMRoadClassParser.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public IntsRef handleWayTags(IntsRef edgeFlags, ReaderWay readerWay, EncodingMan
4848
return edgeFlags;
4949

5050
String roadClassTag = readerWay.getTag("highway");
51+
if (roadClassTag == null)
52+
return edgeFlags;
5153
RoadClass roadClass = RoadClass.find(roadClassTag);
5254
if (roadClass == OTHER && roadClassTag.endsWith("_link"))
5355
roadClass = RoadClass.find(roadClassTag.substring(0, roadClassTag.length() - 5));

core/src/test/java/com/graphhopper/routing/util/parsers/OSMRoadClassParserTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,12 @@ public void testIgnore() {
5252
parser.handleWayTags(intsRef, readerWay, FERRY, 0);
5353
assertEquals(RoadClass.OTHER, rcEnc.getEnum(false, intsRef));
5454
}
55+
56+
@Test
57+
public void testNoNPE() {
58+
ReaderWay readerWay = new ReaderWay(1);
59+
IntsRef intsRef = em.createEdgeFlags();
60+
parser.handleWayTags(intsRef, readerWay, WAY, 0);
61+
assertEquals(RoadClass.OTHER, rcEnc.getEnum(false, intsRef));
62+
}
5563
}

0 commit comments

Comments
 (0)