From 49ec85ae154a8062e6fcf8bad95ecc3b611e7812 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 14 Nov 2011 15:24:02 +0000 Subject: Do a ScenePresence null check in HGMessageTransferModule.SendIMToScene() to stop a NullReferenceException being thrown if an HG IM is sent to a simulator running multiple regions This is an attempt to address http://opensimulator.org/mantis/view.php?id=5791 --- .../CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs | 3 ++- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs index 321a705..560d913 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs @@ -225,12 +225,13 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage foreach (Scene scene in m_Scenes) { ScenePresence sp = scene.GetScenePresence(toAgentID); - if(!sp.IsChildAgent) + if(sp != null && !sp.IsChildAgent) { scene.EventManager.TriggerIncomingInstantMessage(gim); successful = true; } } + if (!successful) { // If the message can't be delivered to an agent, it diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 3fee642..9ebb6dd 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -2854,6 +2854,8 @@ namespace OpenSim.Region.Framework.Scenes Velocity = Vector3.Zero; AbsolutePosition = pos; +// m_log.DebugFormat("[SCENE PRESENCE]: Prevented flyoff for {0} at {1}", Name, AbsolutePosition); + AddToPhysicalScene(isFlying); } } -- cgit v1.1