Uploaded image for project: 'Snowstorm'
  1. Snowstorm
  2. STORM-1017

Attachments may lose their associated inventory item UUID

    XMLWordPrintableJSON

    Details

    • Type: Defect
    • Status: Needs More Info
    • Priority: Minor
    • Resolution: Incomplete
    • Affects Version/s: Viewer 2.3.0, Viewer 2.4.0, Viewer 2.5.0
    • Labels:
      None
    • Environment:
      n/a

      Description

      BOOL LLViewerJointAttachment::addObject(LLViewerObject* object)
      {
      	object->extractAttachmentItemID();
       
      	// Same object reattached
      	if (isObjectAttached(object))
      	{
      		llinfos << "(same object re-attached)" << llendl;
      		removeObject(object);
      		// Pass through anyway to let setupDrawable()
      		// re-connect object to the joint correctly
      	}
      ...
      *snip*
      

      (I'm not sure of the exact conditions under which "Same object reattached" will trigger, but the code does seem to trigger in practice)

      When LLViewerJointAttachment::removeObject() is called, it will run "object->setAttachmentItemID(LLUUID::null)" at the very end, which ends up clearing the associated inventory item UUID.

      Moving the "object->extractAttachmentItemID()" in addObject to below the "same object reattached" block makes sure that its properly re-set after being cleared.

      (Please note that this isn't a duplicate, or viewer-side resolution of SVC-6766. It's the same kind of problem but SVC-6766 is about the region not sending the attachment item UUID while this VWR is about the viewer clearing an attachment's item UUID after it already had it set)

        Attachments

          Activity

            People

            Assignee:
            kitty.barnett Kitty Barnett
            Reporter:
            kitty.barnett Kitty Barnett
            Extended Group Visibility:
            jira-users
            Watchers:
            0 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                PagerDuty