From 55478386a6239d7d64f143d5dfe3fd81efb3734a Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Fri, 15 Aug 2008 22:10:54 +0000 Subject: [PATCH] * Fixed NullReferenceExceptions recently introduced into CAPS code [LIBOMV-353] * Small formatting cleanups in NotationLLSD.cs git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2092 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse/Capabilities/CapsClient.cs | 5 ++-- .../Capabilities/EventQueueClient.cs | 2 +- OpenMetaverse/LLSD/NotationLLSD.cs | 27 +++++++++---------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/OpenMetaverse/Capabilities/CapsClient.cs b/OpenMetaverse/Capabilities/CapsClient.cs index 9deb36c2..6cfa0f9c 100644 --- a/OpenMetaverse/Capabilities/CapsClient.cs +++ b/OpenMetaverse/Capabilities/CapsClient.cs @@ -138,6 +138,7 @@ namespace OpenMetaverse.Capabilities if (e.Error == null) { LLSD result = LLSDParser.DeserializeXml(e.Result); + Logger.DebugLog("Received CAPS response: " + System.Text.Encoding.UTF8.GetString(e.Result)); try { OnComplete(this, result, e.Error); } catch (Exception ex) { Logger.Log(ex.Message, Helpers.LogLevel.Error, ex); } @@ -146,7 +147,7 @@ namespace OpenMetaverse.Capabilities { // Some error occurred, try to figure out what happened HttpStatusCode code = HttpStatusCode.OK; - if (e.Error is WebException) + if (e.Error is WebException && ((WebException)e.Error).Response != null) code = ((HttpWebResponse)((WebException)e.Error).Response).StatusCode; if (code == HttpStatusCode.BadGateway) @@ -197,7 +198,7 @@ namespace OpenMetaverse.Capabilities { // Some error occurred, try to figure out what happened HttpStatusCode code = HttpStatusCode.OK; - if (e.Error is WebException) + if (e.Error is WebException && ((WebException)e.Error).Response != null) code = ((HttpWebResponse)((WebException)e.Error).Response).StatusCode; if (code == HttpStatusCode.BadGateway) diff --git a/OpenMetaverse/Capabilities/EventQueueClient.cs b/OpenMetaverse/Capabilities/EventQueueClient.cs index 1c01fcaf..f23b8647 100644 --- a/OpenMetaverse/Capabilities/EventQueueClient.cs +++ b/OpenMetaverse/Capabilities/EventQueueClient.cs @@ -132,7 +132,7 @@ namespace OpenMetaverse.Capabilities if (e.Error != null) { HttpStatusCode code = HttpStatusCode.OK; - if (e.Error is WebException) + if (e.Error is WebException && ((WebException)e.Error).Response != null) code = ((HttpWebResponse)((WebException)e.Error).Response).StatusCode; if (code == HttpStatusCode.NotFound || code == HttpStatusCode.Gone) diff --git a/OpenMetaverse/LLSD/NotationLLSD.cs b/OpenMetaverse/LLSD/NotationLLSD.cs index f4a220c1..c567f214 100644 --- a/OpenMetaverse/LLSD/NotationLLSD.cs +++ b/OpenMetaverse/LLSD/NotationLLSD.cs @@ -36,22 +36,21 @@ namespace OpenMetaverse.StructuredData /// public static partial class LLSDParser { - private const string notationHead = "\n"; - private const string baseIntend = " "; + private const string baseIndent = " "; private const char undefNotationValue = '!'; private const char trueNotationValueOne = '1'; private const char trueNotationValueTwo = 't'; - private static char[] trueNotationValueTwoFull = { 't', 'r', 'u', 'e' }; + private static readonly char[] trueNotationValueTwoFull = { 't', 'r', 'u', 'e' }; private const char trueNotationValueThree = 'T'; - private static char[] trueNotationValueThreeFull = { 'T', 'R', 'U', 'E' }; + private static readonly char[] trueNotationValueThreeFull = { 'T', 'R', 'U', 'E' }; private const char falseNotationValueOne = '0'; private const char falseNotationValueTwo = 'f'; - private static char[] falseNotationValueTwoFull = { 'f', 'a', 'l', 's', 'e' }; + private static readonly char[] falseNotationValueTwoFull = { 'f', 'a', 'l', 's', 'e' }; private const char falseNotationValueThree = 'F'; - private static char[] falseNotationValueThreeFull = { 'F', 'A', 'L', 'S', 'E' }; + private static readonly char[] falseNotationValueThreeFull = { 'F', 'A', 'L', 'S', 'E' }; private const char integerNotationMarker = 'i'; private const char realNotationMarker = 'r'; @@ -148,8 +147,8 @@ namespace OpenMetaverse.StructuredData { StringWriter writer = new StringWriter(); - string intend = ""; - SerializeNotationElementFormatted(writer, intend, llsd); + string indent = String.Empty; + SerializeNotationElementFormatted(writer, indent, llsd); return writer; } @@ -504,7 +503,7 @@ namespace OpenMetaverse.StructuredData writer.Write(mapEndNotationMarker); } - private static void SerializeNotationElementFormatted(StringWriter writer, string intend, LLSD llsd) + private static void SerializeNotationElementFormatted(StringWriter writer, string indent, LLSD llsd) { switch (llsd.Type) { @@ -554,10 +553,10 @@ namespace OpenMetaverse.StructuredData writer.Write(doubleQuotesNotationMarker); break; case LLSDType.Array: - SerializeNotationArrayFormatted(writer, intend + baseIntend, (LLSDArray)llsd); + SerializeNotationArrayFormatted(writer, indent + baseIndent, (LLSDArray)llsd); break; case LLSDType.Map: - SerializeNotationMapFormatted(writer, intend + baseIntend, (LLSDMap)llsd); + SerializeNotationMapFormatted(writer, indent + baseIndent, (LLSDMap)llsd); break; default: throw new LLSDException("Notation serialization: Not existing element discovered."); @@ -576,7 +575,7 @@ namespace OpenMetaverse.StructuredData { if (llsdArray[idx].Type != LLSDType.Array && llsdArray[idx].Type != LLSDType.Map) writer.Write(Helpers.NewLine); - writer.Write(intend + baseIntend); + writer.Write(intend + baseIndent); SerializeNotationElementFormatted(writer, intend, llsdArray[idx]); if (idx < lastIndex) { @@ -599,7 +598,7 @@ namespace OpenMetaverse.StructuredData foreach (KeyValuePair kvp in llsdMap) { - writer.Write(intend + baseIntend); + writer.Write(intend + baseIndent); writer.Write(singleQuotesNotationMarker); writer.Write(EscapeCharacter(kvp.Key, singleQuotesNotationMarker)); writer.Write(singleQuotesNotationMarker); @@ -608,7 +607,7 @@ namespace OpenMetaverse.StructuredData if (idx < lastIndex) { writer.Write(Helpers.NewLine); - writer.Write(intend + baseIntend); + writer.Write(intend + baseIndent); writer.Write(kommaNotationDelimiter); writer.Write(Helpers.NewLine); }