From 80c19b7cac52a57fd04966169c657400aeee3de8 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 27 Feb 2013 00:21:02 +0000
Subject: Make sure we dispose of WebResponse, StreamReader and Stream in
 various places where we were not already.

---
 .../SimianGrid/SimianAssetServiceConnector.cs      | 47 ++++++++++++----------
 1 file changed, 25 insertions(+), 22 deletions(-)

(limited to 'OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs')

diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs
index 63a32e7..74b980c 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs
@@ -339,36 +339,38 @@ namespace OpenSim.Services.Connectors.SimianGrid
                 // Simian does not require the asset ID to be in the URL because it's in the post data.
                 // By appending it to the URL also, we allow caching proxies (squid) to invalidate asset URLs
                 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(m_serverUrl + asset.FullID.ToString());
-                
-                HttpWebResponse response = MultipartForm.Post(request, postParameters);
-                using (Stream responseStream = response.GetResponseStream())
-                {
-                    string responseStr = null;
 
-                    try
+                using (HttpWebResponse response = MultipartForm.Post(request, postParameters))
+                {
+                    using (Stream responseStream = response.GetResponseStream())
                     {
-                        responseStr = responseStream.GetStreamString();
-                        OSD responseOSD = OSDParser.Deserialize(responseStr);
-                        if (responseOSD.Type == OSDType.Map)
+                        string responseStr = null;
+
+                        try
                         {
-                            OSDMap responseMap = (OSDMap)responseOSD;
-                            if (responseMap["Success"].AsBoolean())
-                                return asset.ID;
+                            responseStr = responseStream.GetStreamString();
+                            OSD responseOSD = OSDParser.Deserialize(responseStr);
+                            if (responseOSD.Type == OSDType.Map)
+                            {
+                                OSDMap responseMap = (OSDMap)responseOSD;
+                                if (responseMap["Success"].AsBoolean())
+                                    return asset.ID;
+                                else
+                                    errorMessage = "Upload failed: " + responseMap["Message"].AsString();
+                            }
                             else
-                                errorMessage = "Upload failed: " + responseMap["Message"].AsString();
+                            {
+                                errorMessage = "Response format was invalid:\n" + responseStr;
+                            }
                         }
-                        else
+                        catch (Exception ex)
                         {
-                            errorMessage = "Response format was invalid:\n" + responseStr;
+                            if (!String.IsNullOrEmpty(responseStr))
+                                errorMessage = "Failed to parse the response:\n" + responseStr;
+                            else
+                                errorMessage = "Failed to retrieve the response: " + ex.Message;
                         }
                     }
-                    catch (Exception ex)
-                    {
-                        if (!String.IsNullOrEmpty(responseStr))
-                            errorMessage = "Failed to parse the response:\n" + responseStr;
-                        else
-                            errorMessage = "Failed to retrieve the response: " + ex.Message;
-                    }
                 }
             }
             catch (WebException ex)
@@ -378,6 +380,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
 
             m_log.WarnFormat("[SIMIAN ASSET CONNECTOR]: Failed to store asset \"{0}\" ({1}, {2}): {3}",
                 asset.Name, asset.ID, asset.Metadata.ContentType, errorMessage);
+
             return null;
         }
 
-- 
cgit v1.1