<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -9,7 +9,9 @@ class Location &lt; ActiveRecord::Base
 
   def self.geocode(location_text)
     return nil if location_text.blank?
-    LocationAlias.locate(location_text)
+    Timeout.timeout(20) { LocationAlias.locate(location_text) }
+  rescue Timeout::Error =&gt; e
+    return nil
   end
     
   def latitude</diff>
      <filename>app/models/location.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,9 +9,9 @@
 #
 # It's strongly recommended to check this file into your version control system.
 
-ActiveRecord::Schema.define(:version =&gt; 20081104063853) do
+ActiveRecord::Schema.define(:version =&gt; 20081108124300) do
 
-  create_table &quot;alert_viewings&quot;, :force =&gt; true do |t|
+  create_table &quot;alert_viewings&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;user_id&quot;, :integer
     t.column &quot;reviewer_alert_id&quot;, :integer
     t.column &quot;created_at&quot;, :datetime
@@ -67,7 +67,7 @@ ActiveRecord::Schema.define(:version =&gt; 20081104063853) do
 
   add_index &quot;locations&quot;, [&quot;point&quot;], :name =&gt; &quot;index_locations_on_point&quot;, :spatial=&gt; true 
 
-  create_table &quot;polling_places&quot;, :force =&gt; true do |t|
+  create_table &quot;polling_places&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;location_id&quot;, :integer
     t.column &quot;name&quot;, :string, :limit =&gt; 80
     t.column &quot;address&quot;, :string, :limit =&gt; 80
@@ -86,7 +86,7 @@ ActiveRecord::Schema.define(:version =&gt; 20081104063853) do
   add_index &quot;report_filters&quot;, [&quot;report_id&quot;], :name =&gt; &quot;index_report_filters_on_report_id&quot;
   add_index &quot;report_filters&quot;, [&quot;filter_id&quot;], :name =&gt; &quot;index_report_filters_on_filter_id&quot;
 
-  create_table &quot;report_tags&quot;, :force =&gt; true do |t|
+  create_table &quot;report_tags&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;report_id&quot;, :integer
     t.column &quot;tag_id&quot;, :integer
   end
@@ -94,7 +94,7 @@ ActiveRecord::Schema.define(:version =&gt; 20081104063853) do
   add_index &quot;report_tags&quot;, [&quot;report_id&quot;], :name =&gt; &quot;index_report_tags_on_report_id&quot;
   add_index &quot;report_tags&quot;, [&quot;tag_id&quot;], :name =&gt; &quot;index_report_tags_on_tag_id&quot;
 
-  create_table &quot;reporters&quot;, :force =&gt; true do |t|
+  create_table &quot;reporters&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;location_id&quot;, :integer
     t.column &quot;type&quot;, :string, :limit =&gt; 30
     t.column &quot;uniqueid&quot;, :string, :limit =&gt; 80
@@ -109,7 +109,7 @@ ActiveRecord::Schema.define(:version =&gt; 20081104063853) do
 
   add_index &quot;reporters&quot;, [&quot;uniqueid&quot;, &quot;type&quot;], :name =&gt; &quot;index_reports_on_uniqueid_and_type&quot;, :unique =&gt; true
 
-  create_table &quot;reports&quot;, :force =&gt; true do |t|
+  create_table &quot;reports&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;source&quot;, :string, :limit =&gt; 3
     t.column &quot;reporter_id&quot;, :integer
     t.column &quot;location_id&quot;, :integer
@@ -130,12 +130,13 @@ ActiveRecord::Schema.define(:version =&gt; 20081104063853) do
     t.column &quot;dismissed_at&quot;, :datetime
     t.column &quot;tag_s&quot;, :string
     t.column &quot;is_chatter&quot;, :boolean, :default =&gt; false
+    t.column &quot;polling_place_name&quot;, :string
   end
 
   add_index &quot;reports&quot;, [&quot;created_at&quot;], :name =&gt; &quot;index_reports_on_created_at&quot;
   add_index &quot;reports&quot;, [&quot;reviewer_id&quot;], :name =&gt; &quot;index_reports_on_reviewer_id&quot;
 
-  create_table &quot;reviewer_alerts&quot;, :force =&gt; true do |t|
+  create_table &quot;reviewer_alerts&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;text&quot;, :string
     t.column &quot;user_id&quot;, :integer
     t.column &quot;created_at&quot;, :datetime
@@ -151,12 +152,25 @@ ActiveRecord::Schema.define(:version =&gt; 20081104063853) do
     t.column &quot;decimal_value&quot;, :integer, :limit =&gt; 10
   end
 
-  create_table &quot;tags&quot;, :force =&gt; true do |t|
+  create_table &quot;tags&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;pattern&quot;, :string, :limit =&gt; 30
     t.column &quot;description&quot;, :string, :limit =&gt; 80
     t.column &quot;score&quot;, :integer
   end
 
+  create_table &quot;tvr_statuses&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
+    t.column &quot;tid&quot;, :integer
+    t.column &quot;user_id&quot;, :integer
+    t.column &quot;created_at&quot;, :datetime
+    t.column &quot;text&quot;, :string
+    t.column &quot;language&quot;, :string, :limit =&gt; 2
+    t.column &quot;location_id&quot;, :integer
+  end
+
+  add_index &quot;tvr_statuses&quot;, [&quot;tid&quot;], :name =&gt; &quot;index_statuses_on_tid&quot;, :unique =&gt; true
+  add_index &quot;tvr_statuses&quot;, [&quot;user_id&quot;], :name =&gt; &quot;index_statuses_on_user_id&quot;
+  add_index &quot;tvr_statuses&quot;, [&quot;text&quot;], :name =&gt; &quot;index_statuses_on_text&quot;
+
   create_table &quot;users&quot;, :options=&gt;'ENGINE=MyISAM', :force =&gt; true do |t|
     t.column &quot;first_name&quot;, :string, :limit =&gt; 80
     t.column &quot;last_name&quot;, :string, :limit =&gt; 80</diff>
      <filename>db/schema.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,10 +31,12 @@ module Geo
           country_code = r['country']=='United States' ? 'US' : nil
           { :locality =&gt; r['city'], :administrative_area =&gt; r['region'], :country_code =&gt; country_code }
         end.uniq
+        return nil if results.empty?
         loc = results.first
         point = latlon.split(',')
         loc.merge(:point =&gt; Point.from_x_y(point[1].to_f, point[0].to_f), :geo_source_id =&gt; 1)
-      rescue
+      rescue =&gt; e
+        logger.info &quot;#{e.message}&quot;
         tries += 1
         retry if tries&lt;3
         loc = nil</diff>
      <filename>vendor/plugins/geocoding/lib/geocoders/001_google/geocode.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,7 @@ module Geo
       pstring = params.map { |k,v| &quot;#{k}=#{URI.encode(v)}&quot; }.join('&amp;')
       url = &quot;http://api.local.yahoo.com/MapsService/V1/geocode?#{pstring}&quot;
       loc = ExtractableHash.new.merge(Hash.from_xml(open(url).read))
+      return nil unless loc.extract('ResultSet City')
       
       point = Point.from_x_y(loc.extract('ResultSet Result Longitude').to_f, loc.extract('ResultSet Result Latitude').to_f)
       loc = loc.transform( :thoroughfare =&gt; 'ResultSet Result Address',</diff>
      <filename>vendor/plugins/geocoding/lib/geocoders/002_yahoo/geocode.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>65aa15fbee6a074c86a8fdd98fbd90b297571da1</id>
    </parent>
  </parents>
  <author>
    <name>David Troy</name>
    <email>dave@popvox.com</email>
  </author>
  <url>http://github.com/davetroy/votereport/commit/cf75707109765099041a81547833f21bfe2f3d0c</url>
  <id>cf75707109765099041a81547833f21bfe2f3d0c</id>
  <committed-date>2008-11-08T13:20:08-08:00</committed-date>
  <authored-date>2008-11-08T13:20:08-08:00</authored-date>
  <message>Tune reverse geocoding</message>
  <tree>45af559224ada4cf3954256925b477dee0c4e8ea</tree>
  <committer>
    <name>David Troy</name>
    <email>dave@popvox.com</email>
  </committer>
</commit>
