diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 11 | ||||
-rw-r--r-- | OpenSim/Services/AssetService/AssetService.cs | 10 |
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) |