[MINOR] New error object written in case failing Channel
diff --git a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.java b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.java
index ae8f2c8..b0c75df 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.java
@@ -293,11 +293,20 @@
private static class CloseListener implements ChannelFutureListener {
@Override
- public void operationComplete(ChannelFuture channelFuture) throws InterruptedException, DMLRuntimeException {
- if (!channelFuture.isSuccess())
- throw new DMLRuntimeException("Federated Worker Write failed");
- PrivacyMonitor.clearCheckedConstraints();
- channelFuture.channel().close().sync();
+ public void operationComplete(ChannelFuture channelFuture) throws InterruptedException {
+ if (!channelFuture.isSuccess()){
+ log.fatal("Federated Worker Write failed");
+ channelFuture
+ .channel()
+ .writeAndFlush(
+ new FederatedResponse(ResponseType.ERROR,
+ new FederatedWorkerHandlerException("Error while sending response.")))
+ .channel().close().sync();
+ }
+ else {
+ PrivacyMonitor.clearCheckedConstraints();
+ channelFuture.channel().close().sync();
+ }
}
}
}