X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/e4d7b3ee6631e1c5aee23ebe52adb32c716f5cbd..685a35524a6e4f91155008e9850049feff298593:/app/models/way.rb diff --git a/app/models/way.rb b/app/models/way.rb index f9d36be93..cc9343e7c 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -34,6 +34,7 @@ class Way < ActiveRecord::Base doc.find('//osm/way').each do |pt| return Way.from_xml_node(pt, create) end + raise OSM::APIBadXMLError.new("node", xml, "XML doesn't contain an osm/way element.") rescue LibXML::XML::Error, ArgumentError => ex raise OSM::APIBadXMLError.new("way", xml, ex.message) end @@ -61,6 +62,8 @@ class Way < ActiveRecord::Base way.visible = true pt.find('tag').each do |tag| + raise OSM::APIBadXMLError.new("way", pt, "tag is missing key") if tag['k'].nil? + raise OSM::APIBadXMLError.new("way", pt, "tag is missing value") if tag['v'].nil? way.add_tag_keyval(tag['k'], tag['v']) end @@ -231,8 +234,8 @@ class Way < ActiveRecord::Base def preconditions_ok?(old_nodes = []) return false if self.nds.empty? - if self.nds.length > APP_CONFIG['max_number_of_way_nodes'] - raise OSM::APITooManyWayNodesError.new(self.nds.length, APP_CONFIG['max_number_of_way_nodes']) + if self.nds.length > MAX_NUMBER_OF_WAY_NODES + raise OSM::APITooManyWayNodesError.new(self.id, self.nds.length, MAX_NUMBER_OF_WAY_NODES) end # check only the new nodes, for efficiency - old nodes having been checked last time and can't