aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Data')
-rw-r--r--OpenSim/Data/NHibernate/NHibernateAssetData.cs48
-rw-r--r--OpenSim/Data/NHibernate/NHibernateInventoryData.cs132
-rw-r--r--OpenSim/Data/NHibernate/NHibernateUserData.cs107
3 files changed, 196 insertions, 91 deletions
diff --git a/OpenSim/Data/NHibernate/NHibernateAssetData.cs b/OpenSim/Data/NHibernate/NHibernateAssetData.cs
index 875f4e5..4eb9eef 100644
--- a/OpenSim/Data/NHibernate/NHibernateAssetData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateAssetData.cs
@@ -60,7 +60,8 @@ namespace OpenSim.Data.NHibernate
60 // Split out the dialect, driver, and connect string 60 // Split out the dialect, driver, and connect string
61 char[] split = {';'}; 61 char[] split = {';'};
62 string[] parts = connect.Split(split, 3); 62 string[] parts = connect.Split(split, 3);
63 if (parts.Length != 3) { 63 if (parts.Length != 3)
64 {
64 // TODO: make this a real exception type 65 // TODO: make this a real exception type
65 throw new Exception("Malformed Inventory connection string '" + connect + "'"); 66 throw new Exception("Malformed Inventory connection string '" + connect + "'");
66 } 67 }
@@ -96,15 +97,22 @@ namespace OpenSim.Data.NHibernate
96 { 97 {
97 string regex = @"no such table: Assets"; 98 string regex = @"no such table: Assets";
98 Regex RE = new Regex(regex, RegexOptions.Multiline); 99 Regex RE = new Regex(regex, RegexOptions.Multiline);
99 try { 100 try
100 using (ISession session = factory.OpenSession()) { 101 {
102 using (ISession session = factory.OpenSession())
103 {
101 session.Load(typeof(AssetBase), LLUUID.Zero); 104 session.Load(typeof(AssetBase), LLUUID.Zero);
102 } 105 }
103 } catch (ObjectNotFoundException) { 106 }
107 catch (ObjectNotFoundException)
108 {
104 // yes, we know it's not there, but that's ok 109 // yes, we know it's not there, but that's ok
105 } catch (ADOException e) { 110 }
111 catch (ADOException e)
112 {
106 Match m = RE.Match(e.ToString()); 113 Match m = RE.Match(e.ToString());
107 if (m.Success) { 114 if (m.Success)
115 {
108 // We don't have this table, so create it. 116 // We don't have this table, so create it.
109 new SchemaExport(cfg).Create(true, true); 117 new SchemaExport(cfg).Create(true, true);
110 } 118 }
@@ -113,10 +121,14 @@ namespace OpenSim.Data.NHibernate
113 121
114 override public AssetBase FetchAsset(LLUUID uuid) 122 override public AssetBase FetchAsset(LLUUID uuid)
115 { 123 {
116 using (ISession session = factory.OpenSession()) { 124 using (ISession session = factory.OpenSession())
117 try { 125 {
126 try
127 {
118 return session.Load(typeof(AssetBase), uuid) as AssetBase; 128 return session.Load(typeof(AssetBase), uuid) as AssetBase;
119 } catch { 129 }
130 catch
131 {
120 return null; 132 return null;
121 } 133 }
122 } 134 }
@@ -124,9 +136,12 @@ namespace OpenSim.Data.NHibernate
124 136
125 override public void CreateAsset(AssetBase asset) 137 override public void CreateAsset(AssetBase asset)
126 { 138 {
127 if (!ExistsAsset(asset.FullID)) { 139 if (!ExistsAsset(asset.FullID))
128 using (ISession session = factory.OpenSession()) { 140 {
129 using (ITransaction transaction = session.BeginTransaction()) { 141 using (ISession session = factory.OpenSession())
142 {
143 using (ITransaction transaction = session.BeginTransaction())
144 {
130 session.Save(asset); 145 session.Save(asset);
131 transaction.Commit(); 146 transaction.Commit();
132 } 147 }
@@ -136,9 +151,12 @@ namespace OpenSim.Data.NHibernate
136 151
137 override public void UpdateAsset(AssetBase asset) 152 override public void UpdateAsset(AssetBase asset)
138 { 153 {
139 if (ExistsAsset(asset.FullID)) { 154 if (ExistsAsset(asset.FullID))
140 using (ISession session = factory.OpenSession()) { 155 {
141 using (ITransaction transaction = session.BeginTransaction()) { 156 using (ISession session = factory.OpenSession())
157 {
158 using (ITransaction transaction = session.BeginTransaction())
159 {
142 session.Update(asset); 160 session.Update(asset);
143 transaction.Commit(); 161 transaction.Commit();
144 } 162 }
diff --git a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs
index 6ee1b4a..8305646 100644
--- a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs
@@ -57,7 +57,8 @@ namespace OpenSim.Data.NHibernate
57 // Split out the dialect, driver, and connect string 57 // Split out the dialect, driver, and connect string
58 char[] split = {';'}; 58 char[] split = {';'};
59 string[] parts = connect.Split(split, 3); 59 string[] parts = connect.Split(split, 3);
60 if (parts.Length != 3) { 60 if (parts.Length != 3)
61 {
61 // TODO: make this a real exception type 62 // TODO: make this a real exception type
62 throw new Exception("Malformed Inventory connection string '" + connect + "'"); 63 throw new Exception("Malformed Inventory connection string '" + connect + "'");
63 } 64 }
@@ -94,15 +95,22 @@ namespace OpenSim.Data.NHibernate
94 { 95 {
95 string regex = @"no such table: Inventory"; 96 string regex = @"no such table: Inventory";
96 Regex RE = new Regex(regex, RegexOptions.Multiline); 97 Regex RE = new Regex(regex, RegexOptions.Multiline);
97 try { 98 try
98 using (ISession session = factory.OpenSession()) { 99 {
100 using (ISession session = factory.OpenSession())
101 {
99 session.Load(typeof(InventoryItemBase), LLUUID.Zero); 102 session.Load(typeof(InventoryItemBase), LLUUID.Zero);
100 } 103 }
101 } catch (ObjectNotFoundException) { 104 }
105 catch (ObjectNotFoundException)
106 {
102 // yes, we know it's not there, but that's ok 107 // yes, we know it's not there, but that's ok
103 } catch (ADOException e) { 108 }
109 catch (ADOException e)
110 {
104 Match m = RE.Match(e.ToString()); 111 Match m = RE.Match(e.ToString());
105 if (m.Success) { 112 if (m.Success)
113 {
106 // We don't have this table, so create it. 114 // We don't have this table, so create it.
107 new SchemaExport(cfg).Create(true, true); 115 new SchemaExport(cfg).Create(true, true);
108 } 116 }
@@ -125,10 +133,14 @@ namespace OpenSim.Data.NHibernate
125 /// <returns>A class containing item information</returns> 133 /// <returns>A class containing item information</returns>
126 public InventoryItemBase getInventoryItem(LLUUID item) 134 public InventoryItemBase getInventoryItem(LLUUID item)
127 { 135 {
128 using (ISession session = factory.OpenSession()) { 136 using (ISession session = factory.OpenSession())
129 try { 137 {
138 try
139 {
130 return session.Load(typeof(InventoryItemBase), item) as InventoryItemBase; 140 return session.Load(typeof(InventoryItemBase), item) as InventoryItemBase;
131 } catch { 141 }
142 catch
143 {
132 m_log.ErrorFormat("Couldn't find inventory item: {0}", item); 144 m_log.ErrorFormat("Couldn't find inventory item: {0}", item);
133 return null; 145 return null;
134 } 146 }
@@ -141,14 +153,19 @@ namespace OpenSim.Data.NHibernate
141 /// <param name="item">The item to be created</param> 153 /// <param name="item">The item to be created</param>
142 public void addInventoryItem(InventoryItemBase item) 154 public void addInventoryItem(InventoryItemBase item)
143 { 155 {
144 if (!ExistsItem(item.ID)) { 156 if (!ExistsItem(item.ID))
145 using (ISession session = factory.OpenSession()) { 157 {
146 using (ITransaction transaction = session.BeginTransaction()) { 158 using (ISession session = factory.OpenSession())
159 {
160 using (ITransaction transaction = session.BeginTransaction())
161 {
147 session.Save(item); 162 session.Save(item);
148 transaction.Commit(); 163 transaction.Commit();
149 } 164 }
150 } 165 }
151 } else { 166 }
167 else
168 {
152 m_log.ErrorFormat("Attempted to add Inventory Item {0} that already exists, updating instead", item.ID); 169 m_log.ErrorFormat("Attempted to add Inventory Item {0} that already exists, updating instead", item.ID);
153 updateInventoryItem(item); 170 updateInventoryItem(item);
154 } 171 }
@@ -160,14 +177,19 @@ namespace OpenSim.Data.NHibernate
160 /// <param name="item">The updated item</param> 177 /// <param name="item">The updated item</param>
161 public void updateInventoryItem(InventoryItemBase item) 178 public void updateInventoryItem(InventoryItemBase item)
162 { 179 {
163 if (ExistsItem(item.ID)) { 180 if (ExistsItem(item.ID))
164 using (ISession session = factory.OpenSession()) { 181 {
165 using (ITransaction transaction = session.BeginTransaction()) { 182 using (ISession session = factory.OpenSession())
183 {
184 using (ITransaction transaction = session.BeginTransaction())
185 {
166 session.Update(item); 186 session.Update(item);
167 transaction.Commit(); 187 transaction.Commit();
168 } 188 }
169 } 189 }
170 } else { 190 }
191 else
192 {
171 m_log.ErrorFormat("Attempted to add Inventory Item {0} that already exists", item.ID); 193 m_log.ErrorFormat("Attempted to add Inventory Item {0} that already exists", item.ID);
172 } 194 }
173 } 195 }
@@ -178,15 +200,16 @@ namespace OpenSim.Data.NHibernate
178 /// <param name="item"></param> 200 /// <param name="item"></param>
179 public void deleteInventoryItem(LLUUID itemID) 201 public void deleteInventoryItem(LLUUID itemID)
180 { 202 {
181 using (ISession session = factory.OpenSession()) { 203 using (ISession session = factory.OpenSession())
182 using (ITransaction transaction = session.BeginTransaction()) { 204 {
205 using (ITransaction transaction = session.BeginTransaction())
206 {
183 session.Delete(itemID); 207 session.Delete(itemID);
184 transaction.Commit(); 208 transaction.Commit();
185 } 209 }
186 } 210 }
187 } 211 }
188 212
189
190 /// <summary> 213 /// <summary>
191 /// Returns an inventory folder by its UUID 214 /// Returns an inventory folder by its UUID
192 /// </summary> 215 /// </summary>
@@ -194,10 +217,14 @@ namespace OpenSim.Data.NHibernate
194 /// <returns>A class containing folder information</returns> 217 /// <returns>A class containing folder information</returns>
195 public InventoryFolderBase getInventoryFolder(LLUUID folder) 218 public InventoryFolderBase getInventoryFolder(LLUUID folder)
196 { 219 {
197 using (ISession session = factory.OpenSession()) { 220 using (ISession session = factory.OpenSession())
198 try { 221 {
222 try
223 {
199 return session.Load(typeof(InventoryFolderBase), folder) as InventoryFolderBase; 224 return session.Load(typeof(InventoryFolderBase), folder) as InventoryFolderBase;
200 } catch { 225 }
226 catch
227 {
201 m_log.ErrorFormat("Couldn't find inventory item: {0}", folder); 228 m_log.ErrorFormat("Couldn't find inventory item: {0}", folder);
202 return null; 229 return null;
203 } 230 }
@@ -210,14 +237,19 @@ namespace OpenSim.Data.NHibernate
210 /// <param name="folder">The folder to be created</param> 237 /// <param name="folder">The folder to be created</param>
211 public void addInventoryFolder(InventoryFolderBase folder) 238 public void addInventoryFolder(InventoryFolderBase folder)
212 { 239 {
213 if (!ExistsFolder(folder.ID)) { 240 if (!ExistsFolder(folder.ID))
214 using (ISession session = factory.OpenSession()) { 241 {
215 using (ITransaction transaction = session.BeginTransaction()) { 242 using (ISession session = factory.OpenSession())
243 {
244 using (ITransaction transaction = session.BeginTransaction())
245 {
216 session.Save(folder); 246 session.Save(folder);
217 transaction.Commit(); 247 transaction.Commit();
218 } 248 }
219 } 249 }
220 } else { 250 }
251 else
252 {
221 m_log.ErrorFormat("Attempted to add Inventory Folder {0} that already exists, updating instead", folder.ID); 253 m_log.ErrorFormat("Attempted to add Inventory Folder {0} that already exists, updating instead", folder.ID);
222 updateInventoryFolder(folder); 254 updateInventoryFolder(folder);
223 } 255 }
@@ -229,14 +261,19 @@ namespace OpenSim.Data.NHibernate
229 /// <param name="folder">The updated folder</param> 261 /// <param name="folder">The updated folder</param>
230 public void updateInventoryFolder(InventoryFolderBase folder) 262 public void updateInventoryFolder(InventoryFolderBase folder)
231 { 263 {
232 if (ExistsFolder(folder.ID)) { 264 if (ExistsFolder(folder.ID))
233 using (ISession session = factory.OpenSession()) { 265 {
234 using (ITransaction transaction = session.BeginTransaction()) { 266 using (ISession session = factory.OpenSession())
267 {
268 using (ITransaction transaction = session.BeginTransaction())
269 {
235 session.Update(folder); 270 session.Update(folder);
236 transaction.Commit(); 271 transaction.Commit();
237 } 272 }
238 } 273 }
239 } else { 274 }
275 else
276 {
240 m_log.ErrorFormat("Attempted to add Inventory Folder {0} that already exists", folder.ID); 277 m_log.ErrorFormat("Attempted to add Inventory Folder {0} that already exists", folder.ID);
241 } 278 }
242 } 279 }
@@ -247,8 +284,10 @@ namespace OpenSim.Data.NHibernate
247 /// <param name="folder"></param> 284 /// <param name="folder"></param>
248 public void deleteInventoryFolder(LLUUID folderID) 285 public void deleteInventoryFolder(LLUUID folderID)
249 { 286 {
250 using (ISession session = factory.OpenSession()) { 287 using (ISession session = factory.OpenSession())
251 using (ITransaction transaction = session.BeginTransaction()) { 288 {
289 using (ITransaction transaction = session.BeginTransaction())
290 {
252 session.Delete(folderID.ToString()); 291 session.Delete(folderID.ToString());
253 transaction.Commit(); 292 transaction.Commit();
254 } 293 }
@@ -324,7 +363,8 @@ namespace OpenSim.Data.NHibernate
324 /// <returns>A List of InventoryItemBase items</returns> 363 /// <returns>A List of InventoryItemBase items</returns>
325 public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID) 364 public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID)
326 { 365 {
327 using (ISession session = factory.OpenSession()) { 366 using (ISession session = factory.OpenSession())
367 {
328 // try { 368 // try {
329 ICriteria criteria = session.CreateCriteria(typeof(InventoryItemBase)); 369 ICriteria criteria = session.CreateCriteria(typeof(InventoryItemBase));
330 criteria.Add(Expression.Eq("Folder", folderID)); 370 criteria.Add(Expression.Eq("Folder", folderID));
@@ -334,7 +374,9 @@ namespace OpenSim.Data.NHibernate
334 list.Add(item); 374 list.Add(item);
335 } 375 }
336 return list; 376 return list;
337// } catch { 377// }
378// catch
379// {
338// return new List<InventoryItemBase>(); 380// return new List<InventoryItemBase>();
339// } 381// }
340 } 382 }
@@ -348,8 +390,10 @@ namespace OpenSim.Data.NHibernate
348 // see InventoryItemBase.getUserRootFolder 390 // see InventoryItemBase.getUserRootFolder
349 public InventoryFolderBase getUserRootFolder(LLUUID user) 391 public InventoryFolderBase getUserRootFolder(LLUUID user)
350 { 392 {
351 using (ISession session = factory.OpenSession()) { 393 using (ISession session = factory.OpenSession())
352 // try { 394 {
395 // try
396 // {
353 ICriteria criteria = session.CreateCriteria(typeof(InventoryFolderBase)); 397 ICriteria criteria = session.CreateCriteria(typeof(InventoryFolderBase));
354 criteria.Add(Expression.Eq("ParentID", LLUUID.Zero)); 398 criteria.Add(Expression.Eq("ParentID", LLUUID.Zero));
355 criteria.Add(Expression.Eq("Owner", user)); 399 criteria.Add(Expression.Eq("Owner", user));
@@ -359,7 +403,9 @@ namespace OpenSim.Data.NHibernate
359 } 403 }
360 m_log.ErrorFormat("No Inventory Root Folder Found for: {0}", user); 404 m_log.ErrorFormat("No Inventory Root Folder Found for: {0}", user);
361 return new InventoryFolderBase(); 405 return new InventoryFolderBase();
362// } catch { 406// }
407// catch
408// {
363// return new InventoryFolderBase(); 409// return new InventoryFolderBase();
364// } 410// }
365 } 411 }
@@ -372,15 +418,19 @@ namespace OpenSim.Data.NHibernate
372 /// <param name="parentID">ID of parent</param> 418 /// <param name="parentID">ID of parent</param>
373 private void getInventoryFolders(ref List<InventoryFolderBase> folders, LLUUID parentID) 419 private void getInventoryFolders(ref List<InventoryFolderBase> folders, LLUUID parentID)
374 { 420 {
375 using (ISession session = factory.OpenSession()) { 421 using (ISession session = factory.OpenSession())
376 // try { 422 {
423 // try
424// {
377 ICriteria criteria = session.CreateCriteria(typeof(InventoryFolderBase)); 425 ICriteria criteria = session.CreateCriteria(typeof(InventoryFolderBase));
378 criteria.Add(Expression.Eq("ParentID", parentID)); 426 criteria.Add(Expression.Eq("ParentID", parentID));
379 foreach (InventoryFolderBase item in criteria.List()) 427 foreach (InventoryFolderBase item in criteria.List())
380 { 428 {
381 folders.Add(item); 429 folders.Add(item);
382 } 430 }
383 // } catch { 431 // }
432 // catch
433 // {
384 // m_log.ErrorFormat("Can't run getInventoryFolders for Folder ID: {0}", parentID); 434 // m_log.ErrorFormat("Can't run getInventoryFolders for Folder ID: {0}", parentID);
385 // } 435 // }
386 } 436 }
diff --git a/OpenSim/Data/NHibernate/NHibernateUserData.cs b/OpenSim/Data/NHibernate/NHibernateUserData.cs
index 2c84ef9..43d8c32 100644
--- a/OpenSim/Data/NHibernate/NHibernateUserData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateUserData.cs
@@ -56,7 +56,8 @@ namespace OpenSim.Data.NHibernate
56 { 56 {
57 char[] split = {';'}; 57 char[] split = {';'};
58 string[] parts = connect.Split(split, 3); 58 string[] parts = connect.Split(split, 3);
59 if (parts.Length != 3) { 59 if (parts.Length != 3)
60 {
60 // TODO: make this a real exception type 61 // TODO: make this a real exception type
61 throw new Exception("Malformed Inventory connection string '" + connect + "'"); 62 throw new Exception("Malformed Inventory connection string '" + connect + "'");
62 } 63 }
@@ -87,15 +88,22 @@ namespace OpenSim.Data.NHibernate
87 { 88 {
88 string regex = @"no such table: UserProfiles"; 89 string regex = @"no such table: UserProfiles";
89 Regex RE = new Regex(regex, RegexOptions.Multiline); 90 Regex RE = new Regex(regex, RegexOptions.Multiline);
90 try { 91 try
91 using (ISession session = factory.OpenSession()) { 92 {
93 using (ISession session = factory.OpenSession())
94 {
92 session.Load(typeof(UserProfileData), LLUUID.Zero); 95 session.Load(typeof(UserProfileData), LLUUID.Zero);
93 } 96 }
94 } catch (ObjectNotFoundException) { 97 }
98 catch (ObjectNotFoundException)
99 {
95 // yes, we know it's not there, but that's ok 100 // yes, we know it's not there, but that's ok
96 } catch (ADOException e) { 101 }
102 catch (ADOException e)
103 {
97 Match m = RE.Match(e.ToString()); 104 Match m = RE.Match(e.ToString());
98 if (m.Success) { 105 if (m.Success)
106 {
99 // We don't have this table, so create it. 107 // We don't have this table, so create it.
100 new SchemaExport(cfg).Create(true, true); 108 new SchemaExport(cfg).Create(true, true);
101 } 109 }
@@ -105,12 +113,15 @@ namespace OpenSim.Data.NHibernate
105 private bool ExistsUser(LLUUID uuid) 113 private bool ExistsUser(LLUUID uuid)
106 { 114 {
107 UserProfileData user = null; 115 UserProfileData user = null;
108 try { 116 try
109 using (ISession session = factory.OpenSession()) { 117 {
118 using (ISession session = factory.OpenSession())
119 {
110 user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; 120 user = session.Load(typeof(UserProfileData), uuid) as UserProfileData;
111 } 121 }
112 // BUG: CATCHALL IS BAD. 122 // BUG: CATCHALL IS BAD.
113 } catch (Exception) {} 123 }
124 catch (Exception) {}
114 125
115 return (user != null); 126 return (user != null);
116 } 127 }
@@ -119,7 +130,8 @@ namespace OpenSim.Data.NHibernate
119 { 130 {
120 UserProfileData user; 131 UserProfileData user;
121 // TODO: I'm sure I'll have to do something silly here 132 // TODO: I'm sure I'll have to do something silly here
122 using (ISession session = factory.OpenSession()) { 133 using (ISession session = factory.OpenSession())
134 {
123 user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; 135 user = session.Load(typeof(UserProfileData), uuid) as UserProfileData;
124 user.CurrentAgent = GetAgentByUUID(uuid); 136 user.CurrentAgent = GetAgentByUUID(uuid);
125 } 137 }
@@ -128,16 +140,21 @@ namespace OpenSim.Data.NHibernate
128 140
129 override public void AddNewUserProfile(UserProfileData profile) 141 override public void AddNewUserProfile(UserProfileData profile)
130 { 142 {
131 if (!ExistsUser(profile.ID)) { 143 if (!ExistsUser(profile.ID))
132 using (ISession session = factory.OpenSession()) { 144 {
133 using (ITransaction transaction = session.BeginTransaction()) { 145 using (ISession session = factory.OpenSession())
146 {
147 using (ITransaction transaction = session.BeginTransaction())
148 {
134 session.Save(profile); 149 session.Save(profile);
135 SetAgentData(profile.ID, profile.CurrentAgent, session); 150 SetAgentData(profile.ID, profile.CurrentAgent, session);
136 // TODO: save agent 151 // TODO: save agent
137 transaction.Commit(); 152 transaction.Commit();
138 } 153 }
139 } 154 }
140 } else { 155 }
156 else
157 {
141 m_log.ErrorFormat("Attempted to add User {0} {1} that already exists, updating instead", profile.FirstName, profile.SurName); 158 m_log.ErrorFormat("Attempted to add User {0} {1} that already exists, updating instead", profile.FirstName, profile.SurName);
142 UpdateUserProfile(profile); 159 UpdateUserProfile(profile);
143 } 160 }
@@ -165,16 +182,21 @@ namespace OpenSim.Data.NHibernate
165 } 182 }
166 override public bool UpdateUserProfile(UserProfileData profile) 183 override public bool UpdateUserProfile(UserProfileData profile)
167 { 184 {
168 if (ExistsUser(profile.ID)) { 185 if (ExistsUser(profile.ID))
169 using (ISession session = factory.OpenSession()) { 186 {
170 using (ITransaction transaction = session.BeginTransaction()) { 187 using (ISession session = factory.OpenSession())
188 {
189 using (ITransaction transaction = session.BeginTransaction())
190 {
171 session.Update(profile); 191 session.Update(profile);
172 SetAgentData(profile.ID, profile.CurrentAgent, session); 192 SetAgentData(profile.ID, profile.CurrentAgent, session);
173 transaction.Commit(); 193 transaction.Commit();
174 return true; 194 return true;
175 } 195 }
176 } 196 }
177 } else { 197 }
198 else
199 {
178 m_log.ErrorFormat("Attempted to update User {0} {1} that doesn't exist, updating instead", profile.FirstName, profile.SurName); 200 m_log.ErrorFormat("Attempted to update User {0} {1} that doesn't exist, updating instead", profile.FirstName, profile.SurName);
179 AddNewUserProfile(profile); 201 AddNewUserProfile(profile);
180 return true; 202 return true;
@@ -183,8 +205,10 @@ namespace OpenSim.Data.NHibernate
183 205
184 override public void AddNewUserAgent(UserAgentData agent) 206 override public void AddNewUserAgent(UserAgentData agent)
185 { 207 {
186 using (ISession session = factory.OpenSession()) { 208 using (ISession session = factory.OpenSession())
187 using (ITransaction transaction = session.BeginTransaction()) { 209 {
210 using (ITransaction transaction = session.BeginTransaction())
211 {
188 session.Save(agent); 212 session.Save(agent);
189 transaction.Commit(); 213 transaction.Commit();
190 } 214 }
@@ -193,30 +217,35 @@ namespace OpenSim.Data.NHibernate
193 217
194 public void UpdateUserAgent(UserAgentData agent) 218 public void UpdateUserAgent(UserAgentData agent)
195 { 219 {
196 using (ISession session = factory.OpenSession()) { 220 using (ISession session = factory.OpenSession())
197 using (ITransaction transaction = session.BeginTransaction()) { 221 {
222 using (ITransaction transaction = session.BeginTransaction())
223 {
198 session.Update(agent); 224 session.Update(agent);
199 transaction.Commit(); 225 transaction.Commit();
200 } 226 }
201 } 227 }
202 } 228 }
203 229
204
205
206 override public UserAgentData GetAgentByUUID(LLUUID uuid) 230 override public UserAgentData GetAgentByUUID(LLUUID uuid)
207 { 231 {
208 try { 232 try
209 using (ISession session = factory.OpenSession()) { 233 {
234 using (ISession session = factory.OpenSession())
235 {
210 return session.Load(typeof(UserAgentData), uuid) as UserAgentData; 236 return session.Load(typeof(UserAgentData), uuid) as UserAgentData;
211 } 237 }
212 } catch { 238 }
239 catch
240 {
213 return null; 241 return null;
214 } 242 }
215 } 243 }
216 244
217 override public UserProfileData GetUserByName(string fname, string lname) 245 override public UserProfileData GetUserByName(string fname, string lname)
218 { 246 {
219 using (ISession session = factory.OpenSession()) { 247 using (ISession session = factory.OpenSession())
248 {
220 ICriteria criteria = session.CreateCriteria(typeof(UserProfileData)); 249 ICriteria criteria = session.CreateCriteria(typeof(UserProfileData));
221 criteria.Add(Expression.Eq("FirstName", fname)); 250 criteria.Add(Expression.Eq("FirstName", fname));
222 criteria.Add(Expression.Eq("SurName", lname)); 251 criteria.Add(Expression.Eq("SurName", lname));
@@ -247,7 +276,8 @@ namespace OpenSim.Data.NHibernate
247 276
248 if (querysplit.Length == 2) 277 if (querysplit.Length == 2)
249 { 278 {
250 using (ISession session = factory.OpenSession()) { 279 using (ISession session = factory.OpenSession())
280 {
251 ICriteria criteria = session.CreateCriteria(typeof(UserProfileData)); 281 ICriteria criteria = session.CreateCriteria(typeof(UserProfileData));
252 criteria.Add(Expression.Like("FirstName", querysplit[0])); 282 criteria.Add(Expression.Like("FirstName", querysplit[0]));
253 criteria.Add(Expression.Like("SurName", querysplit[1])); 283 criteria.Add(Expression.Like("SurName", querysplit[1]));
@@ -280,7 +310,8 @@ namespace OpenSim.Data.NHibernate
280 { 310 {
281 UserAppearance appearance; 311 UserAppearance appearance;
282 // TODO: I'm sure I'll have to do something silly here 312 // TODO: I'm sure I'll have to do something silly here
283 using (ISession session = factory.OpenSession()) { 313 using (ISession session = factory.OpenSession())
314 {
284 appearance = session.Load(typeof(UserAppearance), user) as UserAppearance; 315 appearance = session.Load(typeof(UserAppearance), user) as UserAppearance;
285 } 316 }
286 return appearance; 317 return appearance;
@@ -289,7 +320,8 @@ namespace OpenSim.Data.NHibernate
289 private bool ExistsAppearance(LLUUID uuid) 320 private bool ExistsAppearance(LLUUID uuid)
290 { 321 {
291 UserAppearance appearance; 322 UserAppearance appearance;
292 using (ISession session = factory.OpenSession()) { 323 using (ISession session = factory.OpenSession())
324 {
293 appearance = session.Load(typeof(UserAppearance), uuid) as UserAppearance; 325 appearance = session.Load(typeof(UserAppearance), uuid) as UserAppearance;
294 } 326 }
295 return (appearance == null) ? false : true; 327 return (appearance == null) ? false : true;
@@ -299,11 +331,16 @@ namespace OpenSim.Data.NHibernate
299 override public void UpdateUserAppearance(LLUUID user, UserAppearance appearance) 331 override public void UpdateUserAppearance(LLUUID user, UserAppearance appearance)
300 { 332 {
301 bool exists = ExistsAppearance(user); 333 bool exists = ExistsAppearance(user);
302 using (ISession session = factory.OpenSession()) { 334 using (ISession session = factory.OpenSession())
303 using (ITransaction transaction = session.BeginTransaction()) { 335 {
304 if (exists) { 336 using (ITransaction transaction = session.BeginTransaction())
337 {
338 if (exists)
339 {
305 session.Update(appearance); 340 session.Update(appearance);
306 } else { 341 }
342 else
343 {
307 session.Save(appearance); 344 session.Save(appearance);
308 } 345 }
309 transaction.Commit(); 346 transaction.Commit();