From efa1cef866d96e585b43fca017fb5c0f57259d7f Mon Sep 17 00:00:00 2001 From: Jeff Kluge Date: Tue, 1 Nov 2016 09:29:19 -0700 Subject: [PATCH] Some more try...catches --- .../dotnet-msbuild/MSBuildForwardingApp.cs | 13 +++-- .../commands/dotnet-msbuild/MSBuildLogger.cs | 51 +++++++++++++------ 2 files changed, 46 insertions(+), 18 deletions(-) diff --git a/src/dotnet/commands/dotnet-msbuild/MSBuildForwardingApp.cs b/src/dotnet/commands/dotnet-msbuild/MSBuildForwardingApp.cs index 7c1724c1a..cb8700d8b 100644 --- a/src/dotnet/commands/dotnet-msbuild/MSBuildForwardingApp.cs +++ b/src/dotnet/commands/dotnet-msbuild/MSBuildForwardingApp.cs @@ -33,9 +33,16 @@ namespace Microsoft.DotNet.Tools.MSBuild { if (Telemetry.CurrentSessionId != null) { - Type loggerType = typeof(MSBuildLogger); - - argsToForward = argsToForward.Concat(new[] {$"\"/Logger:{loggerType.FullName},{loggerType.GetTypeInfo().Assembly.Location};{Telemetry.CurrentSessionId}\""}); + try + { + Type loggerType = typeof(MSBuildLogger); + + argsToForward = argsToForward.Concat(new[] { $"\"/Logger:{loggerType.FullName},{loggerType.GetTypeInfo().Assembly.Location}\"" }); + } + catch (Exception) + { + // Exceptions during telemetry shouldn't cause anything else to fail + } } _forwardingApp = new ForwardingApp( diff --git a/src/dotnet/commands/dotnet-msbuild/MSBuildLogger.cs b/src/dotnet/commands/dotnet-msbuild/MSBuildLogger.cs index 725e930fa..d5b5b57b0 100644 --- a/src/dotnet/commands/dotnet-msbuild/MSBuildLogger.cs +++ b/src/dotnet/commands/dotnet-msbuild/MSBuildLogger.cs @@ -5,7 +5,6 @@ using System; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using Microsoft.DotNet.Cli; -using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.Configurer; namespace Microsoft.DotNet.Tools.MSBuild @@ -17,36 +16,58 @@ namespace Microsoft.DotNet.Tools.MSBuild public MSBuildLogger() { - string sessionId = Environment.GetEnvironmentVariable(MSBuildForwardingApp.TelemetrySessionIdEnvironmentVariableName); - - if (sessionId != null) + try { - _telemetry = new Telemetry(_sentinel, sessionId); + string sessionId = Environment.GetEnvironmentVariable(MSBuildForwardingApp.TelemetrySessionIdEnvironmentVariableName); + + if (sessionId != null) + { + _telemetry = new Telemetry(_sentinel, sessionId); + } + } + catch (Exception) + { + // Exceptions during telemetry shouldn't cause anything else to fail } } public override void Initialize(IEventSource eventSource) { - if (_telemetry != null) + try { - IEventSource2 eventSource2 = eventSource as IEventSource2; - - if (eventSource2 != null) + if (_telemetry != null && _telemetry.Enabled) { - eventSource2.TelemetryLogged += (sender, telemetryEventArgs) => + IEventSource2 eventSource2 = eventSource as IEventSource2; + + if (eventSource2 != null) { - Console.WriteLine($"Received telemetry event '{telemetryEventArgs.EventName}'"); - _telemetry.TrackEvent(telemetryEventArgs.EventName, telemetryEventArgs.Properties, measurements: null); - }; + eventSource2.TelemetryLogged += OnTelemetryLogged; + } } } + catch(Exception) + { + // Exceptions during telemetry shouldn't cause anything else to fail + } + } + + private void OnTelemetryLogged(object sender, TelemetryEventArgs args) + { + _telemetry.TrackEvent(args.EventName, args.Properties, measurements: null); } public override void Shutdown() { - _sentinel?.Dispose(); + try + { + _sentinel?.Dispose(); + } + catch (Exception) + { + // Exceptions during telemetry shouldn't cause anything else to fail + } base.Shutdown(); } } -} +} \ No newline at end of file