From d1d846f23ff6e1c97940fb177b5a5a4fc7cfbd4c Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Wed, 25 Jun 2008 19:45:56 +0000 Subject: [PATCH] chugging away on nhibernate, more incremental process --- OpenSim/Data/NHibernate/NHibernateUserData.cs | 72 ++++++++++--------- .../NHibernate/Resources/AssetBase.hbm.xml | 2 +- .../Resources/InventoryFolderBase.hbm.xml | 2 +- .../Resources/InventoryItemBase.hbm.xml | 2 +- .../Resources/UserAgentData.hbm.xml | 2 +- .../Resources/UserAppearance.hbm.xml | 8 +-- .../Resources/UserProfileData.hbm.xml | 2 +- 7 files changed, 49 insertions(+), 41 deletions(-) diff --git a/OpenSim/Data/NHibernate/NHibernateUserData.cs b/OpenSim/Data/NHibernate/NHibernateUserData.cs index 3b67d6e086..bb11e59dda 100644 --- a/OpenSim/Data/NHibernate/NHibernateUserData.cs +++ b/OpenSim/Data/NHibernate/NHibernateUserData.cs @@ -91,8 +91,9 @@ namespace OpenSim.Data.NHibernate { user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; } - catch (Exception) + catch (ObjectNotFoundException e) { + user = null; } return (user != null); @@ -102,8 +103,15 @@ namespace OpenSim.Data.NHibernate { UserProfileData user; // TODO: I'm sure I'll have to do something silly here - user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; - user.CurrentAgent = GetAgentByUUID(uuid); + try + { + user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; + user.CurrentAgent = GetAgentByUUID(uuid); + } + catch (ObjectNotFoundException e) + { + user = null; + } return user; } @@ -114,8 +122,6 @@ namespace OpenSim.Data.NHibernate { session.Save(profile); SetAgentData(profile.ID, profile.CurrentAgent); - // TODO: save agent - session.Transaction.Commit(); } else { @@ -132,12 +138,14 @@ namespace OpenSim.Data.NHibernate } else { - UserAgentData old = session.Load(typeof(UserAgentData), uuid) as UserAgentData; - if (old != null) + try { + UserAgentData old = session.Load(typeof(UserAgentData), uuid) as UserAgentData; session.Delete(old); } - + catch (ObjectNotFoundException e) + { + } session.Save(agent); } @@ -148,7 +156,6 @@ namespace OpenSim.Data.NHibernate { session.Update(profile); SetAgentData(profile.ID, profile.CurrentAgent); - session.Transaction.Commit(); return true; } else @@ -161,23 +168,20 @@ namespace OpenSim.Data.NHibernate override public void AddNewUserAgent(UserAgentData agent) { - UserAgentData old = session.Load(typeof(UserAgentData), agent.ProfileID) as UserAgentData; - - if (old == null) + try { - session.Save(agent); - session.Transaction.Commit(); + UserAgentData old = session.Load(typeof(UserAgentData), agent.ProfileID) as UserAgentData; + session.Delete(old); } - else + catch (ObjectNotFoundException e) { - UpdateUserAgent(agent); } + session.Save(agent); } public void UpdateUserAgent(UserAgentData agent) { session.Update(agent); - session.Transaction.Commit(); } override public UserAgentData GetAgentByUUID(LLUUID uuid) @@ -254,16 +258,22 @@ namespace OpenSim.Data.NHibernate { AvatarAppearance appearance; // TODO: I'm sure I'll have to do something silly here - appearance = session.Load(typeof(AvatarAppearance), user) as AvatarAppearance; - + try { + appearance = session.Load(typeof(AvatarAppearance), user) as AvatarAppearance; + } catch (ObjectNotFoundException e) { + appearance = null; + } return appearance; } private bool ExistsAppearance(LLUUID uuid) { AvatarAppearance appearance; - - appearance = session.Load(typeof(AvatarAppearance), uuid) as AvatarAppearance; + try { + appearance = session.Load(typeof(AvatarAppearance), uuid) as AvatarAppearance; + } catch (ObjectNotFoundException e) { + appearance = null; + } return (appearance == null) ? false : true; } @@ -271,19 +281,17 @@ namespace OpenSim.Data.NHibernate public override void UpdateUserAppearance(LLUUID user, AvatarAppearance appearance) { + if (appearance == null) + return; + bool exists = ExistsAppearance(user); - - using (ITransaction transaction = session.BeginTransaction()) + if (exists) { - if (exists) - { - session.Update(appearance); - } - else - { - session.Save(appearance); - } - transaction.Commit(); + session.Update(appearance); + } + else + { + session.Save(appearance); } } diff --git a/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml b/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml index b853c0e4e9..60fc146028 100644 --- a/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml @@ -1,6 +1,6 @@ - + diff --git a/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml b/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml index aa5ed35b45..6d918fedb4 100644 --- a/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml @@ -1,6 +1,6 @@ - + diff --git a/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml b/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml index 3b76fa6d3d..f1b40077c8 100644 --- a/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml @@ -1,6 +1,6 @@ - + diff --git a/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml b/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml index 910011204b..718cb982ee 100644 --- a/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml @@ -1,6 +1,6 @@ - + diff --git a/OpenSim/Data/NHibernate/Resources/UserAppearance.hbm.xml b/OpenSim/Data/NHibernate/Resources/UserAppearance.hbm.xml index d85776433c..30f39efe56 100644 --- a/OpenSim/Data/NHibernate/Resources/UserAppearance.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/UserAppearance.hbm.xml @@ -1,6 +1,6 @@ - + @@ -30,8 +30,8 @@ - - - + + + \ No newline at end of file diff --git a/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml b/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml index 925465aaf4..4003628187 100644 --- a/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml @@ -1,6 +1,6 @@ - +