From 3c271279b211c89aabe2bfd3825c9e8f548b651a Mon Sep 17 00:00:00 2001 From: Oliver Tonnhofer Date: Wed, 27 Apr 2016 09:45:28 +0200 Subject: [PATCH] do not log NotFound errors when collecting relations for relation members (other NotFounds are already discarded) --- test/route_relation.osm | 14 ++++++++++++++ test/route_relation_test.go | 12 ++++++++++-- writer/relations.go | 4 ++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/test/route_relation.osm b/test/route_relation.osm index 608a5af..9050239 100644 --- a/test/route_relation.osm +++ b/test/route_relation.osm @@ -140,4 +140,18 @@ + + + + + + + + + + + + + + diff --git a/test/route_relation_test.go b/test/route_relation_test.go index ae7a587..ed3181c 100644 --- a/test/route_relation_test.go +++ b/test/route_relation_test.go @@ -60,7 +60,7 @@ func TestRouteRelation_MemberGeomUpdated1(t *testing.T) { t.Fatal(rows) } g := ts.g.FromWkt(rows[0]["wkt"]) - if math.Abs(g.Length() - 111.32448543701321) > 0.00000001 { + if math.Abs(g.Length()-111.32448543701321) > 0.00000001 { t.Fatal(g.Length()) } @@ -73,6 +73,14 @@ func TestRouteRelation_MemberGeomUpdated1(t *testing.T) { } } +func TestRouteRelation_NoRouteWithMissingMember(t *testing.T) { + // current implementation: route members are all or nothing. + // if one member is missing, no member is imported + if r := ts.queryDynamic(t, "osm_route_members", "osm_id = -120901 AND member = 120101"); len(r) > 0 { + t.Error("found member from route with missing members") + } +} + // ####################################################################### func TestRouteRelation_Update(t *testing.T) { @@ -87,7 +95,7 @@ func TestRouteRelation_MemberGeomUpdated2(t *testing.T) { t.Fatal(rows) } g := ts.g.FromWkt(rows[0]["wkt"]) - if math.Abs(g.Length() - 184.97560221624542) > 0.00000001 { + if math.Abs(g.Length()-184.97560221624542) > 0.00000001 { t.Fatal(g.Length()) } diff --git a/writer/relations.go b/writer/relations.go index 1925c87..311e193 100644 --- a/writer/relations.go +++ b/writer/relations.go @@ -225,10 +225,10 @@ func handleRelationMembers(rw *RelationWriter, r *element.Relation, geos *geosp. if m.Type == element.RELATION { mrel, err := rw.osmCache.Relations.GetRelation(m.Id) if err != nil { - if err == cache.NotFound { + if err != cache.NotFound { log.Warn(err) - return false } + return false } r.Members[i].Elem = &mrel.OSMElem } else if m.Type == element.NODE {