aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-08-23 00:04:38 +0100
committerJustin Clark-Casey (justincc)2011-08-23 00:04:38 +0100
commit1f3ce48be110ad048784aef22ee8458466d3fe06 (patch)
treeeae7f3ddfe03a5a9125d2068bae8ecf254dff35a /OpenSim
parentIf an attachment fails, then start logging the exception for now, in order to... (diff)
downloadopensim-SC-1f3ce48be110ad048784aef22ee8458466d3fe06.zip
opensim-SC-1f3ce48be110ad048784aef22ee8458466d3fe06.tar.gz
opensim-SC-1f3ce48be110ad048784aef22ee8458466d3fe06.tar.bz2
opensim-SC-1f3ce48be110ad048784aef22ee8458466d3fe06.tar.xz
If an object failed to attach due to an exception, then try and detach it from the avatar's list of attachments as well as delete it from the scene.
This may help with the "Inconsistent attachment state" errors seen on teleport. See http://opensimulator.org/mantis/view.php?id=5644 and linked reports
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs3
1 files changed, 2 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index c96de3a..90092ce 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -316,6 +316,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
316 objatt.Name, objatt.UUID, sp.Name, e.Message, e.StackTrace); 316 objatt.Name, objatt.UUID, sp.Name, e.Message, e.StackTrace);
317 317
318 // Make sure the object doesn't stick around and bail 318 // Make sure the object doesn't stick around and bail
319 sp.RemoveAttachment(objatt);
319 m_scene.DeleteSceneObject(objatt, false); 320 m_scene.DeleteSceneObject(objatt, false);
320 return null; 321 return null;
321 } 322 }
@@ -433,7 +434,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
433 if (changed && m_scene.AvatarFactory != null) 434 if (changed && m_scene.AvatarFactory != null)
434 m_scene.AvatarFactory.QueueAppearanceSave(remoteClient.AgentId); 435 m_scene.AvatarFactory.QueueAppearanceSave(remoteClient.AgentId);
435 436
436 DetachSingleAttachmentToInv(itemID, presence); 437 DetachSingleAttachmentToInv(itemID, presence);
437 } 438 }
438 } 439 }
439 440