aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs11
-rw-r--r--OpenSim/Services/AssetService/AssetService.cs10
2 files changed, 19 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 1e111e5..5465ca4 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3164,16 +3164,25 @@ namespace OpenSim.Region.Framework.Scenes
3164 public void SendKillObject(uint localID) 3164 public void SendKillObject(uint localID)
3165 { 3165 {
3166 SceneObjectPart part = GetSceneObjectPart(localID); 3166 SceneObjectPart part = GetSceneObjectPart(localID);
3167 UUID attachedAvatar = UUID.Zero;
3168
3167 if (part != null) // It is a prim 3169 if (part != null) // It is a prim
3168 { 3170 {
3169 if (!part.ParentGroup.IsDeleted) // Valid 3171 if (!part.ParentGroup.IsDeleted) // Valid
3170 { 3172 {
3171 if (part.ParentGroup.RootPart != part) // Child part 3173 if (part.ParentGroup.RootPart != part) // Child part
3172 return; 3174 return;
3175
3176 if (part.ParentGroup.IsAttachment && part.ParentGroup.AttachmentPoint >= 31 && part.ParentGroup.AttachmentPoint <= 38)
3177 attachedAvatar = part.ParentGroup.AttachedAvatar;
3173 } 3178 }
3174 } 3179 }
3175 3180
3176 ForEachClient(delegate(IClientAPI client) { client.SendKillObject(m_regionHandle, localID); }); 3181 ForEachClient(delegate(IClientAPI client)
3182 {
3183 if (attachedAvatar == UUID.Zero || attachedAvatar == client.AgentId)
3184 client.SendKillObject(m_regionHandle, localID);
3185 });
3177 } 3186 }
3178 3187
3179 #endregion 3188 #endregion
diff --git a/OpenSim/Services/AssetService/AssetService.cs b/OpenSim/Services/AssetService/AssetService.cs
index 2ea513b..b3af8e3 100644
--- a/OpenSim/Services/AssetService/AssetService.cs
+++ b/OpenSim/Services/AssetService/AssetService.cs
@@ -117,7 +117,15 @@ namespace OpenSim.Services.AssetService
117 return null; 117 return null;
118 } 118 }
119 119
120 return m_Database.GetAsset(assetID); 120 try
121 {
122 return m_Database.GetAsset(assetID);
123 }
124 catch (Exception e)
125 {
126 m_log.ErrorFormat("[ASSET SERVICE]: Exception getting asset {0} {1}", assetID, e);
127 return null;
128 }
121 } 129 }
122 130
123 public virtual AssetBase GetCached(string id) 131 public virtual AssetBase GetCached(string id)