diff options
author | Justin Clark-Casey (justincc) | 2011-08-23 00:04:38 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-08-23 00:04:38 +0100 |
commit | 1f3ce48be110ad048784aef22ee8458466d3fe06 (patch) | |
tree | eae7f3ddfe03a5a9125d2068bae8ecf254dff35a | |
parent | If an attachment fails, then start logging the exception for now, in order to... (diff) | |
download | opensim-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
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | 3 |
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 | ||