diff options
author | Eric Anderson <ejona@google.com> | 2018-08-17 15:09:36 -0700 |
---|---|---|
committer | Eric Anderson <ejona@google.com> | 2018-08-17 17:25:54 -0700 |
commit | f8d30afb2046775243991c25d931c1ea98aaa66b (patch) | |
tree | d058dbdfbdbda33a050c9cc45ab318cac8bf4813 /gae-interop-testing | |
parent | 778804f4c507ed6046bd7be0fde743ac1024dc85 (diff) | |
download | grpc-grpc-java-f8d30afb2046775243991c25d931c1ea98aaa66b.tar.gz |
Handle exceptions in after
Diffstat (limited to 'gae-interop-testing')
-rw-r--r-- | gae-interop-testing/gae-jdk7/src/main/java/io/grpc/testing/integration/OkHttpClientInteropServlet.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gae-interop-testing/gae-jdk7/src/main/java/io/grpc/testing/integration/OkHttpClientInteropServlet.java b/gae-interop-testing/gae-jdk7/src/main/java/io/grpc/testing/integration/OkHttpClientInteropServlet.java index 252bb1c80..a0243049f 100644 --- a/gae-interop-testing/gae-jdk7/src/main/java/io/grpc/testing/integration/OkHttpClientInteropServlet.java +++ b/gae-interop-testing/gae-jdk7/src/main/java/io/grpc/testing/integration/OkHttpClientInteropServlet.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertTrue; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; +import io.grpc.internal.MoreThrowables; import io.grpc.okhttp.OkHttpChannelBuilder; import java.io.IOException; import java.io.PrintWriter; @@ -181,8 +182,21 @@ public final class OkHttpClientInteropServlet extends HttpServlet { return new AutoCloseable() { @Override public void close() throws Exception { + Throwable failure = null; for (Method method : methods) { - method.invoke(o); + try { + method.invoke(o); + } catch (Throwable t) { + if (failure == null) { + failure = t; + } else { + failure.addSuppressed(t); + } + } + } + if (failure != null) { + MoreThrowables.throwIfUnchecked(failure); + throw new Exception(failure); } } }; |