From ed846f11f17b7497c9a0bcf599fcb6431504c18e Mon Sep 17 00:00:00 2001 From: Dan Lake Date: Thu, 2 Feb 2012 18:06:34 -0800 Subject: OpenSim tests do not always create an EventManager so calls to trigger events during tests must check for null EventManager --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 9b660b6..9fb11d3 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -2729,7 +2729,9 @@ namespace OpenSim.Region.Framework.Scenes if (ParentGroup == null) return; - ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); + // When running OpenSim tests, EventManager can be null. Maybe tests should create an EventManager. + if(ParentGroup.Scene.EventManager != null) + ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); ParentGroup.QueueForUpdateCheck(); @@ -2763,7 +2765,9 @@ namespace OpenSim.Region.Framework.Scenes if (ParentGroup == null) return; - ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); + // When running OpenSim tests, EventManager can be null. Maybe tests should create an EventManager. + if (ParentGroup.Scene.EventManager != null) + ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); // This was pulled from SceneViewer. Attachments always receive full updates. // I could not verify if this is a requirement but this maintains existing behavior -- cgit v1.1 From 61adf36339f15fcbcc16d96ff7089f03edf72c10 Mon Sep 17 00:00:00 2001 From: Dan Lake Date: Thu, 2 Feb 2012 18:19:22 -0800 Subject: Commenting out new event until I can fix OpenSim tests. Currently, testing objects does not create a Scene or EventManager so triggering events crashes some tests --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 9fb11d3..27bcc09 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -2729,9 +2729,9 @@ namespace OpenSim.Region.Framework.Scenes if (ParentGroup == null) return; - // When running OpenSim tests, EventManager can be null. Maybe tests should create an EventManager. - if(ParentGroup.Scene.EventManager != null) - ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); + // When running OpenSim tests, Scene (and EventManager can be null). + // Need to fix tests before we can trigger this here + // ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); ParentGroup.QueueForUpdateCheck(); @@ -2765,9 +2765,9 @@ namespace OpenSim.Region.Framework.Scenes if (ParentGroup == null) return; - // When running OpenSim tests, EventManager can be null. Maybe tests should create an EventManager. - if (ParentGroup.Scene.EventManager != null) - ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); + // When running OpenSim tests, Scene (and EventManager can be null). + // Need to fix tests before we can trigger this here + // ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); // This was pulled from SceneViewer. Attachments always receive full updates. // I could not verify if this is a requirement but this maintains existing behavior -- cgit v1.1 From 1a18948935eb6dcb65fb7a75b241ede9d42af055 Mon Sep 17 00:00:00 2001 From: Snoopy Pfeffer Date: Fri, 3 Feb 2012 23:04:18 +0100 Subject: Corrected console help texts for "save iar" --- .../CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs index 150d913..09b4ba6 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs @@ -122,7 +122,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver scene.AddCommand( this, "save iar", - "save iar [-h|--home=] [--noassets] [] [--v|-verbose]", + "save iar [-p|--profile=] [--noassets] [] [-c|--creators] [-v|--verbose]", "Save user inventory archive (IAR).", " is the user's first name." + Environment.NewLine + " is the user's last name." + Environment.NewLine @@ -408,7 +408,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver if (mainParams.Count < 6) { m_log.Error( - "[INVENTORY ARCHIVER]: usage is save iar [--p|-profile=] [--noassets] []"); + "[INVENTORY ARCHIVER]: usage is save iar [-p|--profile=] [--noassets] [] [-c|--creators] [-v|--verbose]"); return; } -- cgit v1.1 From ce34b359ad0254b6b4f460e2740e1a1ed30c456b Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 3 Feb 2012 23:04:26 +0000 Subject: Extend m_avatars lock in NpcModule.CreateNPC over both creation of NPC scene presence and population of m_avatars. This is required to stop a race where the SensorRepeat module can detect an NPC avatar before m_avatars is populated. Extending the lock is the easiest to understand solution rather than getting complicated with null checks. Hopefully resolves http://opensimulator.org/mantis/view.php?id=5872 --- .../Region/OptionalModules/World/NPC/NPCModule.cs | 30 ++++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs index 3831d7a..6a48b89 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs @@ -140,24 +140,26 @@ namespace OpenSim.Region.OptionalModules.World.NPC // acd.AgentID, i, acd.Appearance.Texture.FaceTextures[i]); // } - scene.AuthenticateHandler.AddNewCircuit(npcAvatar.CircuitCode, acd); - scene.AddNewClient(npcAvatar, PresenceType.Npc); - - ScenePresence sp; - if (scene.TryGetScenePresence(npcAvatar.AgentId, out sp)) + lock (m_avatars) { - m_log.DebugFormat( - "[NPC MODULE]: Successfully retrieved scene presence for NPC {0} {1}", sp.Name, sp.UUID); + scene.AuthenticateHandler.AddNewCircuit(npcAvatar.CircuitCode, acd); + scene.AddNewClient(npcAvatar, PresenceType.Npc); - sp.CompleteMovement(npcAvatar, false); - } - else - { - m_log.WarnFormat("[NPC MODULE]: Could not find scene presence for NPC {0} {1}", sp.Name, sp.UUID); - } + ScenePresence sp; + if (scene.TryGetScenePresence(npcAvatar.AgentId, out sp)) + { + m_log.DebugFormat( + "[NPC MODULE]: Successfully retrieved scene presence for NPC {0} {1}", sp.Name, sp.UUID); + + sp.CompleteMovement(npcAvatar, false); + } + else + { + m_log.WarnFormat("[NPC MODULE]: Could not find scene presence for NPC {0} {1}", sp.Name, sp.UUID); + } - lock (m_avatars) m_avatars.Add(npcAvatar.AgentId, npcAvatar); + } m_log.DebugFormat("[NPC MODULE]: Created NPC with id {0}", npcAvatar.AgentId); -- cgit v1.1