aboutsummaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
authorzpencer <spencerfang@google.com>2018-10-09 10:45:25 -0700
committerGitHub <noreply@github.com>2018-10-09 10:45:25 -0700
commit308887a150553be4b3e45f61de9bc36d10a727df (patch)
tree02bf9084e2e1392512784e8cfd37215ce793cce7 /services
parent5eb816b3b145e8f5fe411fd99d28a48a9e583171 (diff)
downloadgrpc-grpc-java-308887a150553be4b3e45f61de9bc36d10a727df.tar.gz
services: fix callbacks not being forwarded in binlog interceptors (#4918)
Diffstat (limited to 'services')
-rw-r--r--services/src/main/java/io/grpc/services/BinlogHelper.java2
-rw-r--r--services/src/test/java/io/grpc/services/BinlogHelperTest.java16
2 files changed, 18 insertions, 0 deletions
diff --git a/services/src/main/java/io/grpc/services/BinlogHelper.java b/services/src/main/java/io/grpc/services/BinlogHelper.java
index cbeff7c2c..ecdcc8630 100644
--- a/services/src/main/java/io/grpc/services/BinlogHelper.java
+++ b/services/src/main/java/io/grpc/services/BinlogHelper.java
@@ -486,6 +486,7 @@ final class BinlogHelper {
seq.getAndIncrement(),
GrpcLogEntry.Logger.LOGGER_CLIENT,
callId);
+ super.halfClose();
}
@Override
@@ -590,6 +591,7 @@ final class BinlogHelper {
seq.getAndIncrement(),
GrpcLogEntry.Logger.LOGGER_SERVER,
callId);
+ super.onCancel();
}
};
}
diff --git a/services/src/test/java/io/grpc/services/BinlogHelperTest.java b/services/src/test/java/io/grpc/services/BinlogHelperTest.java
index a97d36496..5734f1d18 100644
--- a/services/src/test/java/io/grpc/services/BinlogHelperTest.java
+++ b/services/src/test/java/io/grpc/services/BinlogHelperTest.java
@@ -1082,6 +1082,8 @@ public final class BinlogHelperTest {
final AtomicReference<Metadata> actualClientInitial = new AtomicReference<Metadata>();
final AtomicReference<Object> actualRequest = new AtomicReference<Object>();
+ final SettableFuture<Void> halfCloseCalled = SettableFuture.create();
+ final SettableFuture<Void> cancelCalled = SettableFuture.create();
Channel channel = new Channel() {
@Override
public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(
@@ -1099,6 +1101,16 @@ public final class BinlogHelperTest {
}
@Override
+ public void cancel(String message, Throwable cause) {
+ cancelCalled.set(null);
+ }
+
+ @Override
+ public void halfClose() {
+ halfCloseCalled.set(null);
+ }
+
+ @Override
public Attributes getAttributes() {
return Attributes.newBuilder().set(Grpc.TRANSPORT_ATTR_REMOTE_ADDR, peer).build();
}
@@ -1181,6 +1193,7 @@ public final class BinlogHelperTest {
/*seq=*/ eq(4L),
eq(Logger.LOGGER_CLIENT),
eq(CALL_ID));
+ halfCloseCalled.get(1, TimeUnit.SECONDS);
verifyNoMoreInteractions(mockSinkWriter);
}
@@ -1223,6 +1236,7 @@ public final class BinlogHelperTest {
/*seq=*/ eq(7L),
eq(Logger.LOGGER_CLIENT),
eq(CALL_ID));
+ cancelCalled.get(1, TimeUnit.SECONDS);
}
}
@@ -1432,6 +1446,7 @@ public final class BinlogHelperTest {
eq(Logger.LOGGER_SERVER),
eq(CALL_ID));
verifyNoMoreInteractions(mockSinkWriter);
+ verify(mockListener).onHalfClose();
}
// send server msg
@@ -1473,6 +1488,7 @@ public final class BinlogHelperTest {
/*seq=*/ eq(7L),
eq(Logger.LOGGER_SERVER),
eq(CALL_ID));
+ verify(mockListener).onCancel();
}
}