From fa45a71ec91f237e10eee903256ee2fc3c714bbd Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 16 Oct 2019 09:06:47 -0700 Subject: [PATCH] api: Allow streaming methods to be safe --- api/src/main/java/io/grpc/MethodDescriptor.java | 2 -- api/src/test/java/io/grpc/MethodDescriptorTest.java | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/io/grpc/MethodDescriptor.java b/api/src/main/java/io/grpc/MethodDescriptor.java index a05dd4a77b..f88e62afd7 100644 --- a/api/src/main/java/io/grpc/MethodDescriptor.java +++ b/api/src/main/java/io/grpc/MethodDescriptor.java @@ -234,8 +234,6 @@ public final class MethodDescriptor { this.idempotent = idempotent; this.safe = safe; this.sampledToLocalTracing = sampledToLocalTracing; - Preconditions.checkArgument(!safe || type == MethodType.UNARY, - "Only unary methods can be specified safe"); } /** diff --git a/api/src/test/java/io/grpc/MethodDescriptorTest.java b/api/src/test/java/io/grpc/MethodDescriptorTest.java index f9b00ba8ac..66fcfb670a 100644 --- a/api/src/test/java/io/grpc/MethodDescriptorTest.java +++ b/api/src/test/java/io/grpc/MethodDescriptorTest.java @@ -102,8 +102,9 @@ public class MethodDescriptorTest { .setResponseMarshaller(new StringMarshaller()) .build(); - thrown.expect(IllegalArgumentException.class); - MethodDescriptor unused = descriptor.toBuilder().setSafe(true).build(); + // Verify it does not throw + MethodDescriptor newDescriptor = descriptor.toBuilder().setSafe(true).build(); + assertTrue(newDescriptor.isSafe()); } @Test