From 5f794d3e599c45d37fed508de24216c8888a2fba Mon Sep 17 00:00:00 2001
From: Teravus Ovares (Dan Olivares)
Date: Tue, 25 Aug 2009 17:36:04 -0400
Subject: A slightly modified version of
 http://opensimulator.org/mantis/view.php?id=4040 by jhurliman.    The patch
 didn't match up, so I winged it here.   My effort to manually merge the patch
 seems to make sense, so I'm going to commit it.

---
 OpenSim/Framework/AvatarAppearance.cs                              | 7 +++++++
 .../Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs    | 7 ++++++-
 prebuild.xml                                                       | 1 +
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 1fb01ba..940ae3b 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -510,6 +510,13 @@ namespace OpenSim.Framework
                 if (te != null && te.Length > 0)
                     Texture = new Primitive.TextureEntry(te, 0, te.Length);
             }
+            else
+            {
+                // We shouldn't be receiving appearance hashtables without a TextureEntry,
+                // but in case we do this will prevent a failure when saving to the database
+                Texture = GetDefaultTexture();
+            }
+
             
             AvatarHeight = (float)Convert.ToDouble((string)h["avatar_height"]);
 
diff --git a/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs b/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs
index 7941679..88918d1 100644
--- a/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs
+++ b/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs
@@ -110,7 +110,12 @@ namespace OpenSim.Grid.UserServer.Modules
             if (requestData.Contains("owner"))
             {
                 AvatarAppearance appearance = new AvatarAppearance(requestData);
-                m_userDataBaseService.UpdateUserAppearance(new UUID((string)requestData["owner"]), appearance);
+                
+                // TODO: Sometime in the future we may have a database layer that is capable of updating appearance when
+                // the TextureEntry is null. When that happens, this check can be removed
+                if (appearance.Texture != null)
+                    m_userDataBaseService.UpdateUserAppearance(new UUID((string)requestData["owner"]), appearance);
+
                 responseData = new Hashtable();
                 responseData["returnString"] = "TRUE";
             }
diff --git a/prebuild.xml b/prebuild.xml
index 0cf88c3..c4d81cc 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -1055,6 +1055,7 @@
       <Reference name="OpenSim.Grid.UserServer.Modules"/>
       <Reference name="OpenMetaverseTypes.dll"/>
       <Reference name="OpenMetaverse.StructuredData.dll"/>
+      <Reference name="OpenMetaverse.dll"/>
       <Reference name="XMLRPC.dll"/>
       <Reference name="log4net.dll"/>
       <Reference name="Nini.dll"/>
-- 
cgit v1.1