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 @@ + -- cgit v1.1