aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/MySQL/MySQLAssetData.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Data/MySQL/MySQLAssetData.cs102
1 files changed, 48 insertions, 54 deletions
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs
index 0502b2b..8f97440 100644
--- a/OpenSim/Data/MySQL/MySQLAssetData.cs
+++ b/OpenSim/Data/MySQL/MySQLAssetData.cs
@@ -142,46 +142,45 @@ namespace OpenSim.Data.MySQL
142 { 142 {
143 _dbConnection.CheckConnection(); 143 _dbConnection.CheckConnection();
144 144
145 MySqlCommand cmd = 145 using (MySqlCommand cmd = new MySqlCommand(
146 new MySqlCommand( 146 "SELECT name, description, assetType, local, temporary, data FROM assets WHERE id=?id",
147 "SELECT name, description, assetType, local, temporary, data FROM assets WHERE id=?id", 147 _dbConnection.Connection))
148 _dbConnection.Connection);
149 cmd.Parameters.AddWithValue("?id", assetID.ToString());
150
151 try
152 { 148 {
153 using (MySqlDataReader dbReader = cmd.ExecuteReader(CommandBehavior.SingleRow)) 149 cmd.Parameters.AddWithValue("?id", assetID.ToString());
150
151 try
154 { 152 {
155 if (dbReader.Read()) 153 using (MySqlDataReader dbReader = cmd.ExecuteReader(CommandBehavior.SingleRow))
156 { 154 {
157 asset = new AssetBase(); 155 if (dbReader.Read())
158 asset.Data = (byte[]) dbReader["data"];
159 asset.Description = (string) dbReader["description"];
160 asset.FullID = assetID;
161 try
162 {
163 asset.Local = (bool)dbReader["local"];
164 }
165 catch (InvalidCastException)
166 { 156 {
167 asset.Local = false; 157 asset = new AssetBase();
158 asset.Data = (byte[])dbReader["data"];
159 asset.Description = (string)dbReader["description"];
160 asset.FullID = assetID;
161
162 string local = dbReader["local"].ToString();
163 if (local.Equals("1") || local.Equals("true", StringComparison.InvariantCultureIgnoreCase))
164 asset.Local = true;
165 else
166 asset.Local = false;
167
168 asset.Name = (string)dbReader["name"];
169 asset.Type = (sbyte)dbReader["assetType"];
170 asset.Temporary = Convert.ToBoolean(dbReader["temporary"]);
168 } 171 }
169 asset.Name = (string) dbReader["name"];
170 asset.Type = (sbyte) dbReader["assetType"];
171 asset.Temporary = Convert.ToBoolean(dbReader["temporary"]);
172 } 172 }
173 dbReader.Close(); 173
174 cmd.Dispose(); 174 if (asset != null)
175 UpdateAccessTime(asset);
176 }
177 catch (Exception e)
178 {
179 m_log.ErrorFormat(
180 "[ASSETS DB]: MySql failure fetching asset {0}" + Environment.NewLine + e.ToString()
181 + Environment.NewLine + "Reconnecting", assetID);
182 _dbConnection.Reconnect();
175 } 183 }
176 if (asset != null)
177 UpdateAccessTime(asset);
178 }
179 catch (Exception e)
180 {
181 m_log.ErrorFormat(
182 "[ASSETS DB]: MySql failure fetching asset {0}" + Environment.NewLine + e.ToString()
183 + Environment.NewLine + "Reconnecting", assetID);
184 _dbConnection.Reconnect();
185 } 184 }
186 } 185 }
187 return asset; 186 return asset;
@@ -297,32 +296,27 @@ namespace OpenSim.Data.MySQL
297 { 296 {
298 _dbConnection.CheckConnection(); 297 _dbConnection.CheckConnection();
299 298
300 MySqlCommand cmd = 299 using (MySqlCommand cmd = new MySqlCommand(
301 new MySqlCommand( 300 "SELECT id FROM assets WHERE id=?id",
302 "SELECT id FROM assets WHERE id=?id", 301 _dbConnection.Connection))
303 _dbConnection.Connection);
304
305 cmd.Parameters.AddWithValue("?id", uuid.ToString());
306
307 try
308 { 302 {
309 using (MySqlDataReader dbReader = cmd.ExecuteReader(CommandBehavior.SingleRow)) 303 cmd.Parameters.AddWithValue("?id", uuid.ToString());
304
305 try
310 { 306 {
311 if (dbReader.Read()) 307 using (MySqlDataReader dbReader = cmd.ExecuteReader(CommandBehavior.SingleRow))
312 { 308 {
313 assetExists = true; 309 if (dbReader.Read())
310 assetExists = true;
314 } 311 }
315
316 dbReader.Close();
317 cmd.Dispose();
318 } 312 }
319 } 313 catch (Exception e)
320 catch (Exception e) 314 {
321 { 315 m_log.ErrorFormat(
322 m_log.ErrorFormat( 316 "[ASSETS DB]: MySql failure fetching asset {0}" + Environment.NewLine + e.ToString()
323 "[ASSETS DB]: MySql failure fetching asset {0}" + Environment.NewLine + e.ToString() 317 + Environment.NewLine + "Attempting reconnection", uuid);
324 + Environment.NewLine + "Attempting reconnection", uuid); 318 _dbConnection.Reconnect();
325 _dbConnection.Reconnect(); 319 }
326 } 320 }
327 } 321 }
328 322