do not log NotFound errors when collecting relations for relation members

(other NotFounds are already discarded)
master
Oliver Tonnhofer 2016-04-27 09:45:28 +02:00
parent ada5423e7e
commit 3c271279b2
3 changed files with 26 additions and 4 deletions

View File

@ -140,4 +140,18 @@
<tag k="type" v="route"/>
</relation>
<!-- relation with missing members -->
<node id="120101" version="1" timestamp="2015-12-31T23:59:99Z" lat="53.0" lon="8.200">
<tag k="name" v="Stop"/>
</node>
<relation id="120901" version="23" timestamp="2015-06-02T04:13:19Z">
<member type="node" ref="120101" role="stop"/>
<member type="relation" ref="120102" role="stop"/> <!-- missing -->
<member type="node" ref="120103" role="stop"/> <!-- missing -->
<tag k="route" v="bus"/>
<tag k="type" v="route"/>
</relation>
</osm>

View File

@ -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())
}

View File

@ -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 {