From 78a358d25d91a1627bed7a2bc181e183f3d9b867 Mon Sep 17 00:00:00 2001 From: Jason Fauchelle Date: Tue, 29 Jul 2014 11:15:02 +1200 Subject: [PATCH] Null check when attempting to send null exception. --- Mindscape.Raygun4Net.Tests/RaygunClientTests.cs | 7 +++++++ Mindscape.Raygun4Net.WinRT/RaygunClient.cs | 2 +- Mindscape.Raygun4Net.WindowsPhone/RaygunClient.cs | 2 +- Mindscape.Raygun4Net.WindowsStore/RaygunClient.cs | 2 +- Mindscape.Raygun4Net.Xamarin.Android/RaygunClient.cs | 2 +- Mindscape.Raygun4Net.Xamarin.iOS/RaygunClient.cs | 2 +- Mindscape.Raygun4Net/RaygunClient.cs | 2 +- Mindscape.Raygun4Net2.Tests/RaygunClientTests.cs | 7 +++++++ Mindscape.Raygun4Net2/RaygunClient.cs | 2 +- 9 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Mindscape.Raygun4Net.Tests/RaygunClientTests.cs b/Mindscape.Raygun4Net.Tests/RaygunClientTests.cs index e7742971..3e8191fe 100644 --- a/Mindscape.Raygun4Net.Tests/RaygunClientTests.cs +++ b/Mindscape.Raygun4Net.Tests/RaygunClientTests.cs @@ -164,6 +164,13 @@ public void DontStripIfNoInnerException() Assert.IsNull(message.Details.Error.InnerError); } + [Test] + public void DontStripNull() + { + RaygunMessage message = _client.ExposeBuildMessage(null); + Assert.IsNull(message.Details.Error); + } + [Test] public void StripMultipleWrapperExceptions() { diff --git a/Mindscape.Raygun4Net.WinRT/RaygunClient.cs b/Mindscape.Raygun4Net.WinRT/RaygunClient.cs index e3d3956d..63886b12 100644 --- a/Mindscape.Raygun4Net.WinRT/RaygunClient.cs +++ b/Mindscape.Raygun4Net.WinRT/RaygunClient.cs @@ -200,7 +200,7 @@ private RaygunMessage BuildMessage(Exception exception, IList tags, IDic private static Exception StripWrapperExceptions(Exception exception) { - if (_wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) + if (exception != null && _wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) { return StripWrapperExceptions(exception.InnerException); } diff --git a/Mindscape.Raygun4Net.WindowsPhone/RaygunClient.cs b/Mindscape.Raygun4Net.WindowsPhone/RaygunClient.cs index 010e367e..e42fb842 100644 --- a/Mindscape.Raygun4Net.WindowsPhone/RaygunClient.cs +++ b/Mindscape.Raygun4Net.WindowsPhone/RaygunClient.cs @@ -505,7 +505,7 @@ private RaygunMessage BuildMessage(Exception exception, IList tags, IDic private static Exception StripWrapperExceptions(Exception exception) { - if (_wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) + if (exception != null && _wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) { return StripWrapperExceptions(exception.InnerException); } diff --git a/Mindscape.Raygun4Net.WindowsStore/RaygunClient.cs b/Mindscape.Raygun4Net.WindowsStore/RaygunClient.cs index eca9d1c1..8c462f12 100644 --- a/Mindscape.Raygun4Net.WindowsStore/RaygunClient.cs +++ b/Mindscape.Raygun4Net.WindowsStore/RaygunClient.cs @@ -449,7 +449,7 @@ private string PackageVersion private static Exception StripWrapperExceptions(Exception exception) { - if (_wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) + if (exception != null && _wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) { return StripWrapperExceptions(exception.InnerException); } diff --git a/Mindscape.Raygun4Net.Xamarin.Android/RaygunClient.cs b/Mindscape.Raygun4Net.Xamarin.Android/RaygunClient.cs index 34c4d579..9cfdf8d3 100644 --- a/Mindscape.Raygun4Net.Xamarin.Android/RaygunClient.cs +++ b/Mindscape.Raygun4Net.Xamarin.Android/RaygunClient.cs @@ -243,7 +243,7 @@ internal RaygunMessage BuildMessage(Exception exception, IList tags, IDi private static Exception StripWrapperExceptions(Exception exception) { - if (_wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) + if (exception != null && _wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) { return StripWrapperExceptions(exception.InnerException); } diff --git a/Mindscape.Raygun4Net.Xamarin.iOS/RaygunClient.cs b/Mindscape.Raygun4Net.Xamarin.iOS/RaygunClient.cs index 3df18df5..f95e54f4 100644 --- a/Mindscape.Raygun4Net.Xamarin.iOS/RaygunClient.cs +++ b/Mindscape.Raygun4Net.Xamarin.iOS/RaygunClient.cs @@ -235,7 +235,7 @@ internal RaygunMessage BuildMessage(Exception exception, IList tags, IDi private static Exception StripWrapperExceptions(Exception exception) { - if (_wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) + if (exception != null && _wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) { return StripWrapperExceptions(exception.InnerException); } diff --git a/Mindscape.Raygun4Net/RaygunClient.cs b/Mindscape.Raygun4Net/RaygunClient.cs index 2469262a..d6c4be0e 100644 --- a/Mindscape.Raygun4Net/RaygunClient.cs +++ b/Mindscape.Raygun4Net/RaygunClient.cs @@ -290,7 +290,7 @@ protected RaygunMessage BuildMessage(Exception exception, IList tags, ID private static Exception StripWrapperExceptions(Exception exception) { - if (_wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) + if (exception != null && _wrapperExceptions.Any(wrapperException => exception.GetType() == wrapperException && exception.InnerException != null)) { return StripWrapperExceptions(exception.InnerException); } diff --git a/Mindscape.Raygun4Net2.Tests/RaygunClientTests.cs b/Mindscape.Raygun4Net2.Tests/RaygunClientTests.cs index 726286aa..defa7d61 100644 --- a/Mindscape.Raygun4Net2.Tests/RaygunClientTests.cs +++ b/Mindscape.Raygun4Net2.Tests/RaygunClientTests.cs @@ -166,6 +166,13 @@ public void DontStripIfNoInnerException() Assert.IsNull(message.Details.Error.InnerError); } + [Test] + public void DontStripNull() + { + RaygunMessage message = _client.ExposeBuildMessage(null); + Assert.IsNull(message.Details.Error); + } + [Test] public void StripMultipleWrapperExceptions() { diff --git a/Mindscape.Raygun4Net2/RaygunClient.cs b/Mindscape.Raygun4Net2/RaygunClient.cs index d53eabcd..087cfe0b 100644 --- a/Mindscape.Raygun4Net2/RaygunClient.cs +++ b/Mindscape.Raygun4Net2/RaygunClient.cs @@ -257,7 +257,7 @@ protected RaygunMessage BuildMessage(Exception exception, IList tags, ID private static Exception StripWrapperExceptions(Exception exception) { - if (_wrapperExceptions.Contains(exception.GetType()) && exception.InnerException != null) + if (exception != null && _wrapperExceptions.Contains(exception.GetType()) && exception.InnerException != null) { return StripWrapperExceptions(exception.InnerException); }