This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git


The following commit(s) were added to refs/heads/master by this push:
     new bcf9cb4  complete futures exceptionally when the channelFuture fails.
bcf9cb4 is described below

commit bcf9cb4bc1681de6efb7d8650b3f54f529170cf1
Author: Sebastian Rühl <sru...@apache.org>
AuthorDate: Thu Apr 19 10:44:01 2018 +0200

    complete futures exceptionally when the channelFuture fails.
---
 .../java/ads/connection/AdsAbstractPlcConnection.java     | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java
 
b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java
index 194197e..1e0d8c9 100644
--- 
a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java
+++ 
b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java
@@ -18,6 +18,7 @@
  */
 package org.apache.plc4x.java.ads.connection;
 
+import io.netty.channel.ChannelFuture;
 import org.apache.plc4x.java.ads.api.generic.types.AmsNetId;
 import org.apache.plc4x.java.ads.api.generic.types.AmsPort;
 import org.apache.plc4x.java.ads.model.AdsAddress;
@@ -78,14 +79,24 @@ public abstract class AdsAbstractPlcConnection extends 
AbstractPlcConnection imp
     @Override
     public CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest) 
{
         CompletableFuture<PlcReadResponse> readFuture = new 
CompletableFuture<>();
-        channel.writeAndFlush(new PlcRequestContainer<>(readRequest, 
readFuture));
+        ChannelFuture channelFuture = channel.writeAndFlush(new 
PlcRequestContainer<>(readRequest, readFuture));
+        channelFuture.addListener(future -> {
+            if (!future.isSuccess()) {
+                readFuture.completeExceptionally(future.cause());
+            }
+        });
         return readFuture;
     }
 
     @Override
     public CompletableFuture<PlcWriteResponse> write(PlcWriteRequest 
writeRequest) {
         CompletableFuture<PlcWriteResponse> writeFuture = new 
CompletableFuture<>();
-        channel.writeAndFlush(new PlcRequestContainer<>(writeRequest, 
writeFuture));
+        ChannelFuture channelFuture = channel.writeAndFlush(new 
PlcRequestContainer<>(writeRequest, writeFuture));
+        channelFuture.addListener(future -> {
+            if (!future.isSuccess()) {
+                writeFuture.completeExceptionally(future.cause());
+            }
+        });
         return writeFuture;
     }
 

-- 
To stop receiving notification emails like this one, please contact
sru...@apache.org.

Reply via email to