Skip to content

Commit a281db0

Browse files
committed
Handle exception thrown from plug-in engine
Signed-off-by: Victor Chang <[email protected]>
1 parent 6d2cf96 commit a281db0

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

src/InformaticsGateway/Logging/Log.500.ExportService.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,5 +129,8 @@ public static partial class Log
129129

130130
[LoggerMessage(EventId = 535, Level = LogLevel.Warning, Message = "Exceeded maximum number of worker in {serviceName}: {count}.")]
131131
public static partial void ExceededMaxmimumNumberOfWorkers(this ILogger logger, string serviceName, ulong count);
132+
133+
[LoggerMessage(EventId = 536, Level = LogLevel.Error, Message = "Error executing data plug-ins.")]
134+
public static partial void ErrorExecutingDataPlugIns(this ILogger logger, Exception ex);
132135
}
133136
}

src/InformaticsGateway/Services/Export/ExportServiceBase.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,20 @@ private IEnumerable<ExportRequestDataMessage> DownloadPayloadActionCallback(Expo
275275

276276
private async Task<ExportRequestDataMessage> ExecuteOutputDataEngineCallback(ExportRequestDataMessage exportDataRequest, CancellationToken token)
277277
{
278-
var outputDataEngine = _scope.ServiceProvider.GetService<IOutputDataPlugInEngine>() ?? throw new ServiceNotFoundException(nameof(IOutputDataPlugInEngine));
278+
try
279+
{
280+
var outputDataEngine = _scope.ServiceProvider.GetService<IOutputDataPlugInEngine>() ?? throw new ServiceNotFoundException(nameof(IOutputDataPlugInEngine));
279281

280-
outputDataEngine.Configure(exportDataRequest.PlugInAssemblies);
281-
return await outputDataEngine.ExecutePlugInsAsync(exportDataRequest).ConfigureAwait(false);
282+
outputDataEngine.Configure(exportDataRequest.PlugInAssemblies);
283+
return await outputDataEngine.ExecutePlugInsAsync(exportDataRequest).ConfigureAwait(false);
284+
}
285+
catch (Exception ex)
286+
{
287+
var errorMessage = $"Error executing data plug-ins: {ex}";
288+
_logger.ErrorExecutingDataPlugIns(ex);
289+
exportDataRequest.SetFailed(FileExportStatus.ServiceError, errorMessage);
290+
return exportDataRequest;
291+
}
282292
}
283293

284294
private void ReportingActionBlock(ExportRequestDataMessage exportRequestData)

0 commit comments

Comments
 (0)