aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/service/MsgService.java
diff options
context:
space:
mode:
authorChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-12-09 10:25:02 +0100
committerChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-12-09 10:25:02 +0100
commit1d2aafe0cd6607a48d880c007881768079e49060 (patch)
tree4eaf58525e39986a6c9483e1751d54ebb941ec54 /src/main/java/at/gv/egiz/moazs/service/MsgService.java
parent5cb5e4803e315bb717c9db882f60c848da8e660c (diff)
downloadmoa-zs-1d2aafe0cd6607a48d880c007881768079e49060.tar.gz
moa-zs-1d2aafe0cd6607a48d880c007881768079e49060.tar.bz2
moa-zs-1d2aafe0cd6607a48d880c007881768079e49060.zip
Refactor & Fixes
- Handle InterruptedExceptions as discussed in https://stackoverflow.com/questions/3976344/handling-interruptedexception-in-java - Remove unused imports.
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/service/MsgService.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/service/MsgService.java27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/service/MsgService.java b/src/main/java/at/gv/egiz/moazs/service/MsgService.java
index 6fce6ae..3de7b38 100644
--- a/src/main/java/at/gv/egiz/moazs/service/MsgService.java
+++ b/src/main/java/at/gv/egiz/moazs/service/MsgService.java
@@ -43,6 +43,7 @@ import static at.gv.zustellung.msg.xsd.DeliveryNotificationACKType.deliveryNotif
import static at.gv.zustellung.msg.xsd.DeliveryRequestStatusACKType.deliveryRequestStatusACKTypeBuilder;
import static at.gv.zustellung.msg.xsd.GetVersionResponse.getVersionResponseBuilder;
import static java.lang.String.format;
+import static java.lang.Thread.currentThread;
import static java.util.concurrent.CompletableFuture.runAsync;
/**
@@ -81,10 +82,11 @@ public class MsgService implements Zuse2AppPort {
try {
sendToBackend(response).get();
return statusAck(response.getAppDeliveryID(), response.getZSDeliveryID());
- } catch (InterruptedException | ExecutionException e) {
- var message = format(BACKEND_ERROR_MSG, "request status");
- log.error(message, e);
- throw toFault(e, message);
+ } catch (ExecutionException e) {
+ throw logAndCreateFault("delivery request status", e);
+ } catch (InterruptedException e) {
+ currentThread().interrupt();
+ throw logAndCreateFault("delivery request status", e);
}
}
@@ -97,21 +99,24 @@ public class MsgService implements Zuse2AppPort {
}
@Override
- public DeliveryNotificationACKType notification(DeliveryNotificationType notification) {
+ public DeliveryNotificationACKType notification(DeliveryNotificationType notification){
var response = new NotificationResponse(notification);
try {
sendToBackend(response).get();
return notificationAck(response.getAppDeliveryID(), response.getZSDeliveryID());
- } catch (InterruptedException | ExecutionException e) {
- var message = format(BACKEND_ERROR_MSG, "delivery notification");
- log.error(message, e);
- throw toFault(e, message);
+ } catch (ExecutionException e) {
+ throw logAndCreateFault("delivery notification", e);
+ } catch (InterruptedException e) {
+ currentThread().interrupt();
+ throw logAndCreateFault("delivery notification", e);
}
}
- private RuntimeException toFault(Exception e, String fallbackMessage) {
+ private RuntimeException logAndCreateFault(String responseType, Exception e) {
+ var message = format(BACKEND_ERROR_MSG, responseType);
+ log.error(message, e);
Throwable cause = (e.getCause() != null) ? e.getCause() : e;
- return new SoapFault(fallbackMessage, cause, new QName("faultcode"));
+ return new SoapFault(message, cause, new QName("faultcode"));
}
private CompletableFuture<Void> sendToBackend(MsgResponse response) {