From 5538f843ea7ffb214e6f63b46c3a37e3dde75f36 Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Fri, 10 May 2019 11:44:24 +0200 Subject: Refactor Exception Handling in App2Mzs - Define dedicated runtime exception - Put AppDeliveryId in exception message --- src/main/java/at/gv/egiz/moazs/App2MzsService.java | 12 +++++++----- src/main/java/at/gv/egiz/moazs/MoaZSException.java | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 src/main/java/at/gv/egiz/moazs/MoaZSException.java (limited to 'src') diff --git a/src/main/java/at/gv/egiz/moazs/App2MzsService.java b/src/main/java/at/gv/egiz/moazs/App2MzsService.java index 23cc0aa..09bcc63 100644 --- a/src/main/java/at/gv/egiz/moazs/App2MzsService.java +++ b/src/main/java/at/gv/egiz/moazs/App2MzsService.java @@ -15,6 +15,7 @@ import javax.jws.WebParam; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import static at.gv.egiz.moazs.MoaZSException.moaZSException; import static at.gv.zustellung.msg.xsd.DeliveryAnswerType.deliveryAnswerTypeBuilder; import static at.gv.zustellung.msg.xsd.DeliveryRequestStatusType.deliveryRequestStatusTypeBuilder; import static java.text.MessageFormat.format; @@ -48,6 +49,8 @@ public class App2MzsService implements App2MzsPortType { name = "DeliveryRequest") DeliveryRequestType deliveryRequest) { + var appDeliveryID = deliveryRequest.getMetaData().getAppDeliveryID(); + var future = supplyAsync(() -> augmenter.augment(deliveryRequest)) .thenApply(this::process); @@ -56,14 +59,13 @@ public class App2MzsService implements App2MzsPortType { } catch (TimeoutException e) { future.thenAccept(appClient::sendNotification); logger.info("Answer Timed Out", e); - - var appDeliveryID = deliveryRequest.getMetaData().getAppDeliveryID(); return generatePartialSuccessResponse(appDeliveryID); } catch (Exception e ) { logger.error("Could not deliver request.", e); - var message = format("An error occurred while processing DeliveryRequest"); - throw new RuntimeException(message, e); + var message = format("An error occurred while processing DeliveryRequest with AppDeliveryID={0}. ", appDeliveryID); + throw new MoaZSException(message, e); + } } @@ -77,7 +79,7 @@ public class App2MzsService implements App2MzsPortType { pipeline.processRequest(appDeliveryID); return repository.getDeliveryRequestStatus(appDeliveryID) - .orElseThrow(() -> new RuntimeException("Could not get a response for appDeliveryId = " + appDeliveryID)); + .orElseThrow(() -> moaZSException("Could not get a response for AppDeliveryID={0}", appDeliveryID)); } diff --git a/src/main/java/at/gv/egiz/moazs/MoaZSException.java b/src/main/java/at/gv/egiz/moazs/MoaZSException.java new file mode 100644 index 0000000..ad211bd --- /dev/null +++ b/src/main/java/at/gv/egiz/moazs/MoaZSException.java @@ -0,0 +1,16 @@ +package at.gv.egiz.moazs; + +public class MoaZSException extends RuntimeException { + public MoaZSException(String s, Throwable throwable) { + super(s, throwable); + } + + public MoaZSException(String s) { + super(s); + } + + public static MoaZSException moaZSException(String formatString, Object... objects) { + return new MoaZSException(String.format(formatString, objects)); + } + +} -- cgit v1.2.3