From 6d12e4da6b1f99508bc6c8e2d99c35cd3101f3d9 Mon Sep 17 00:00:00 2001 From: Ruairidh MacLeod Date: Thu, 28 Sep 2023 09:18:41 +0100 Subject: [PATCH] catch any exception raised during file classification --- .../Service/IsIdentifiableQueueConsumer.cs | 4 +-- .../IsIdentifiableQueueConsumerTests.cs | 25 +------------------ 2 files changed, 3 insertions(+), 26 deletions(-) diff --git a/src/microservices/Microservices.IsIdentifiable/Service/IsIdentifiableQueueConsumer.cs b/src/microservices/Microservices.IsIdentifiable/Service/IsIdentifiableQueueConsumer.cs index 08fa9e19d..ea763eb3c 100644 --- a/src/microservices/Microservices.IsIdentifiable/Service/IsIdentifiableQueueConsumer.cs +++ b/src/microservices/Microservices.IsIdentifiable/Service/IsIdentifiableQueueConsumer.cs @@ -60,9 +60,9 @@ protected override void ProcessMessageImpl(IMessageHeader header, ExtractedFileS { failures = _classifier.Classify(toProcess); } - catch (ArithmeticException ae) + catch (Exception e) { - SendVerificationMessage(statusMessage, header, tag, VerifiedFileStatus.ErrorWontRetry, $"Exception while classifying {statusMessage.GetType().Name}:\n{ae}"); + SendVerificationMessage(statusMessage, header, tag, VerifiedFileStatus.ErrorWontRetry, $"Exception while classifying {statusMessage.GetType().Name}:\n{e}. File could not be scanned."); return; } diff --git a/tests/microservices/Microservices.IsIdentifiable.Tests/Service/IsIdentifiableQueueConsumerTests.cs b/tests/microservices/Microservices.IsIdentifiable.Tests/Service/IsIdentifiableQueueConsumerTests.cs index bd99d4253..69650f44e 100644 --- a/tests/microservices/Microservices.IsIdentifiable.Tests/Service/IsIdentifiableQueueConsumerTests.cs +++ b/tests/microservices/Microservices.IsIdentifiable.Tests/Service/IsIdentifiableQueueConsumerTests.cs @@ -1,4 +1,4 @@ -using IsIdentifiable.Failures; +using IsIdentifiable.Failures; using IsIdentifiable.Reporting; using Microservices.IsIdentifiable.Service; using Moq; @@ -290,29 +290,6 @@ public void ProcessMessage_ClassifierArithmeticException_SendsErrorWontRetry() Assert.True(_response.Report.StartsWith("Exception while classifying ExtractedFileStatusMessage:\nSystem.ArithmeticException: divide by zero")); } - [Test] - public void ProcessMessage_ClassifierUnhandledException_CallsFatal() - { - // Arrange - - var mockClassifier = new Mock(MockBehavior.Strict); - mockClassifier.Setup(x => x.Classify(It.IsAny())).Throws(new Exception("whee")); - - var consumer = GetNewIsIdentifiableQueueConsumer(null, mockClassifier.Object); - - // Act - - consumer.TestMessage(_extractedFileStatusMessage); - - // Assert - - TestTimelineAwaiter.Await(() => _fatalArgs != null, "Expected Fatal to be called"); - Assert.AreEqual("ProcessMessageImpl threw unhandled exception", _fatalArgs?.Message); - Assert.AreEqual("whee", _fatalArgs.Exception.Message); - Assert.AreEqual(0, consumer.NackCount); - Assert.AreEqual(0, consumer.AckCount); - } - #endregion } }