diff options
author | zpencer <spencerfang@google.com> | 2018-10-09 10:45:25 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-09 10:45:25 -0700 |
commit | 308887a150553be4b3e45f61de9bc36d10a727df (patch) | |
tree | 02bf9084e2e1392512784e8cfd37215ce793cce7 /services | |
parent | 5eb816b3b145e8f5fe411fd99d28a48a9e583171 (diff) | |
download | grpc-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.java | 2 | ||||
-rw-r--r-- | services/src/test/java/io/grpc/services/BinlogHelperTest.java | 16 |
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(); } } |