From df7049008acd394fa514db584f56d0e3925a2d77 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 3 Oct 2009 08:57:30 -0700 Subject: More streams closed. --- .../Servers/HttpServer/RestSessionService.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'OpenSim/Framework/Servers/HttpServer/RestSessionService.cs') diff --git a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs index 3f72c31..6c0aa46 100644 --- a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs +++ b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs @@ -88,6 +88,7 @@ namespace OpenSim.Framework.Servers.HttpServer serializer.Serialize(writer, sobj); writer.Flush(); } + buffer.Close(); int length = (int)buffer.Length; request.ContentLength = length; @@ -99,8 +100,19 @@ namespace OpenSim.Framework.Servers.HttpServer using (WebResponse resp = request.GetResponse()) { XmlSerializer deserializer = new XmlSerializer(typeof(TResponse)); - deserial = (TResponse)deserializer.Deserialize(resp.GetResponseStream()); - resp.Close(); + Stream respStream = null; + try + { + respStream = resp.GetResponseStream(); + deserial = (TResponse)deserializer.Deserialize(respStream); + } + catch { } + finally + { + if (respStream != null) + respStream.Close(); + resp.Close(); + } } return deserial; } @@ -140,6 +152,7 @@ namespace OpenSim.Framework.Servers.HttpServer serializer.Serialize(writer, sobj); writer.Flush(); } + buffer.Close(); int length = (int)buffer.Length; request.ContentLength = length; @@ -165,6 +178,8 @@ namespace OpenSim.Framework.Servers.HttpServer // m_log.DebugFormat("[REST OBJECT POSTER RESPONSE]: Received {0}", reader.ReadToEnd()); deserial = (TResponse)deserializer.Deserialize(stream); + if (stream != null) + stream.Close(); if (deserial != null && ResponseCallback != null) { -- cgit v1.1 From b6920267f0e286a78f792c844ff30021044d7e9b Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 3 Oct 2009 16:27:55 -0700 Subject: Close was being called to early on the Memory stream. --- OpenSim/Framework/Servers/HttpServer/RestSessionService.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'OpenSim/Framework/Servers/HttpServer/RestSessionService.cs') diff --git a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs index 6c0aa46..7ebb462 100644 --- a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs +++ b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs @@ -88,14 +88,15 @@ namespace OpenSim.Framework.Servers.HttpServer serializer.Serialize(writer, sobj); writer.Flush(); } - buffer.Close(); int length = (int)buffer.Length; request.ContentLength = length; Stream requestStream = request.GetRequestStream(); requestStream.Write(buffer.ToArray(), 0, length); + buffer.Close(); requestStream.Close(); + TResponse deserial = default(TResponse); using (WebResponse resp = request.GetResponse()) { -- cgit v1.1