Skip to content

Commit bbe7744

Browse files
committed
Fixed #164 The wrapped IExceptionFilter was not being awaited.
1 parent c64e878 commit bbe7744

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/Platforms/Exceptionless.WebApi/ExceptionlessHandleErrorAttribute.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,27 @@ namespace Exceptionless.WebApi {
88
public class ExceptionlessHandleErrorAttribute : IExceptionFilter {
99
private readonly ExceptionlessClient _client;
1010

11-
public bool HasWrappedFilter { get { return WrappedFilter != null; } }
11+
protected bool HasWrappedFilter { get { return WrappedFilter != null; } }
1212

13-
public IExceptionFilter WrappedFilter { get; set; }
13+
protected internal IExceptionFilter WrappedFilter { get; set; }
1414

1515
public bool AllowMultiple { get { return HasWrappedFilter && WrappedFilter.AllowMultiple; } }
1616

1717
public ExceptionlessHandleErrorAttribute(ExceptionlessClient client = null) {
1818
_client = client ?? ExceptionlessClient.Default;
1919
}
2020

21-
public virtual void OnHttpException(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) {
21+
public Task ExecuteExceptionFilterAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) {
22+
_client.Configuration.Resolver.GetLog().Trace("ExecuteExceptionFilterAsync executing...");
23+
if (actionExecutedContext == null)
24+
throw new ArgumentNullException(nameof(actionExecutedContext));
25+
26+
return OnHttpExceptionAsync(actionExecutedContext, cancellationToken);
27+
}
28+
29+
protected virtual async Task OnHttpExceptionAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) {
2230
if (HasWrappedFilter)
23-
WrappedFilter.ExecuteExceptionFilterAsync(actionExecutedContext, cancellationToken);
31+
await WrappedFilter.ExecuteExceptionFilterAsync(actionExecutedContext, cancellationToken).ConfigureAwait(false);
2432

2533
var contextData = new ContextData();
2634
contextData.MarkAsUnhandledError();
@@ -32,13 +40,5 @@ public virtual void OnHttpException(HttpActionExecutedContext actionExecutedCont
3240
.Submit();
3341
}
3442

35-
public Task ExecuteExceptionFilterAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) {
36-
_client.Configuration.Resolver.GetLog().Trace("ExecuteExceptionFilterAsync executing...");
37-
if (actionExecutedContext == null)
38-
throw new ArgumentNullException("actionExecutedContext");
39-
40-
OnHttpException(actionExecutedContext, cancellationToken);
41-
return Task.FromResult(0);
42-
}
4343
}
4444
}

0 commit comments

Comments
 (0)