From 1666843aa94a10ff1ea6727c701e1ef1a307c9c1 Mon Sep 17 00:00:00 2001
From: Raphael Sofaer <raphael@joindiaspora.com>
Date: Mon, 14 Mar 2011 16:48:07 -0700
Subject: [PATCH] Fix 500 in publicsController

---
 app/controllers/publics_controller.rb       | 2 +-
 spec/controllers/publics_controller_spec.rb | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/app/controllers/publics_controller.rb b/app/controllers/publics_controller.rb
index 2c864fd0b6..6e54615067 100644
--- a/app/controllers/publics_controller.rb
+++ b/app/controllers/publics_controller.rb
@@ -49,7 +49,7 @@ class PublicsController < ApplicationController
 
     person = Person.where(:guid => params[:guid]).first
 
-    if person.owner_id.nil?
+    if person.nil? || person.owner_id.nil?
       Rails.logger.error("Received post for nonexistent person #{params[:guid]}")
       render :nothing => true, :status => 404
       return
diff --git a/spec/controllers/publics_controller_spec.rb b/spec/controllers/publics_controller_spec.rb
index a4eb80d1fd..01c958e83c 100644
--- a/spec/controllers/publics_controller_spec.rb
+++ b/spec/controllers/publics_controller_spec.rb
@@ -55,6 +55,10 @@ describe PublicsController do
       post :receive, "guid" => @person.guid.to_s, "xml" => xml
       response.should be_not_found
     end
+    it 'returns a 404 if no person is found' do
+      post :receive, :guid => '2398rq3948yftn', :xml => xml
+      response.should be_not_found
+    end
   end
 
   describe '#hcard' do
-- 
GitLab