diff --git a/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java b/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java index 7ba71bbd936..1c60f82846d 100644 --- a/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java +++ b/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java @@ -84,7 +84,7 @@ public static CronetChannelBuilder forAddress(String name, int port) { private final CronetEngine cronetEngine; private final ManagedChannelImplBuilder managedChannelImplBuilder; - private TransportTracer.Factory transportTracerFactory = TransportTracer.getDefaultFactory(); + private final TransportTracer.Factory transportTracerFactory = TransportTracer.getDefaultFactory(); private boolean alwaysUsePut = false; @@ -132,7 +132,7 @@ protected ManagedChannelBuilder delegate() { * Sets the maximum message size allowed to be received on the channel. If not called, * defaults to {@link io.grpc.internal.GrpcUtil#DEFAULT_MAX_MESSAGE_SIZE}. */ - public final CronetChannelBuilder maxMessageSize(int maxMessageSize) { + public CronetChannelBuilder maxMessageSize(int maxMessageSize) { checkArgument(maxMessageSize >= 0, "maxMessageSize must be >= 0"); this.maxMessageSize = maxMessageSize; return this; @@ -141,7 +141,7 @@ public final CronetChannelBuilder maxMessageSize(int maxMessageSize) { /** * Sets the Cronet channel to always use PUT instead of POST. Defaults to false. */ - public final CronetChannelBuilder alwaysUsePut(boolean enable) { + public CronetChannelBuilder alwaysUsePut(boolean enable) { this.alwaysUsePut = enable; return this; } @@ -163,7 +163,7 @@ public final CronetChannelBuilder alwaysUsePut(boolean enable) { * application. * @return the builder to facilitate chaining. */ - final CronetChannelBuilder setTrafficStatsTag(int tag) { + CronetChannelBuilder setTrafficStatsTag(int tag) { trafficStatsTagSet = true; trafficStatsTag = tag; return this; @@ -184,7 +184,7 @@ final CronetChannelBuilder setTrafficStatsTag(int tag) { * @param uid the UID to attribute socket traffic caused by this channel. * @return the builder to facilitate chaining. */ - final CronetChannelBuilder setTrafficStatsUid(int uid) { + CronetChannelBuilder setTrafficStatsUid(int uid) { trafficStatsUidSet = true; trafficStatsUid = uid; return this; @@ -200,7 +200,7 @@ final CronetChannelBuilder setTrafficStatsUid(int uid) { * * @since 1.12.0 */ - public final CronetChannelBuilder scheduledExecutorService( + public CronetChannelBuilder scheduledExecutorService( ScheduledExecutorService scheduledExecutorService) { this.scheduledExecutorService = checkNotNull(scheduledExecutorService, "scheduledExecutorService"); diff --git a/cronet/src/main/java/io/grpc/cronet/CronetClientStream.java b/cronet/src/main/java/io/grpc/cronet/CronetClientStream.java index 6c1a60be7b4..f25d880a949 100644 --- a/cronet/src/main/java/io/grpc/cronet/CronetClientStream.java +++ b/cronet/src/main/java/io/grpc/cronet/CronetClientStream.java @@ -247,7 +247,7 @@ public void cancel(Status reason) { class TransportState extends Http2ClientStreamTransportState { private final Object lock; @GuardedBy("lock") - private Collection pendingData = new ArrayList(); + private final Collection pendingData = new ArrayList<>(); @GuardedBy("lock") private boolean streamReady; @GuardedBy("lock") diff --git a/cronet/src/main/java/io/grpc/cronet/CronetClientTransport.java b/cronet/src/main/java/io/grpc/cronet/CronetClientTransport.java index 800d9155854..b0b18620d0c 100644 --- a/cronet/src/main/java/io/grpc/cronet/CronetClientTransport.java +++ b/cronet/src/main/java/io/grpc/cronet/CronetClientTransport.java @@ -56,7 +56,7 @@ class CronetClientTransport implements ConnectionClientTransport { private final Object lock = new Object(); @GuardedBy("lock") private final Set streams = Collections.newSetFromMap( - new IdentityHashMap()); + new IdentityHashMap<>()); private final Executor executor; private final int maxMessageSize; private final boolean alwaysUsePut; @@ -64,6 +64,7 @@ class CronetClientTransport implements ConnectionClientTransport { private Attributes attrs; private final boolean useGetForSafeMethods; private final boolean usePutForIdempotentMethods; + private final StreamBuilderFactory streamFactory; // Indicates the transport is in go-away state: no new streams will be processed, // but existing streams may continue. @GuardedBy("lock") @@ -79,7 +80,6 @@ class CronetClientTransport implements ConnectionClientTransport { @GuardedBy("lock") // Whether this transport has started. private boolean started; - private StreamBuilderFactory streamFactory; CronetClientTransport( StreamBuilderFactory streamFactory, @@ -205,9 +205,9 @@ public void shutdownNow(Status status) { // streams.remove() streamsCopy = new ArrayList<>(streams); } - for (int i = 0; i < streamsCopy.size(); i++) { + for (CronetClientStream cronetClientStream : streamsCopy) { // Avoid deadlock by calling into stream without lock held - streamsCopy.get(i).cancel(status); + cronetClientStream.cancel(status); } stopIfNecessary(); } @@ -255,7 +255,7 @@ public InternalLogId getLogId() { */ void stopIfNecessary() { synchronized (lock) { - if (goAway && !stopped && streams.size() == 0) { + if (goAway && !stopped && streams.isEmpty()) { stopped = true; } else { return; diff --git a/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java b/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java index bd7d37dd62e..e1ff27b8c42 100644 --- a/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java +++ b/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java @@ -80,12 +80,7 @@ public final class CronetClientStreamTest { @Mock private BidirectionalStream.Builder builder; private final Object lock = new Object(); private final TransportTracer transportTracer = TransportTracer.getDefaultFactory().create(); - private final Executor executor = new Executor() { - @Override - public void execute(Runnable r) { - r.run(); - } - }; + private final Executor executor = Runnable::run; CronetClientStream clientStream; private MethodDescriptor.Marshaller marshaller = TestMethodDescriptors.voidMarshaller(); @@ -171,7 +166,7 @@ public void write() { String[] requests = new String[5]; WritableBuffer[] buffers = new WritableBuffer[5]; for (int i = 0; i < 5; ++i) { - requests[i] = new String("request" + String.valueOf(i)); + requests[i] = "request" + i; buffers[i] = allocator.allocate(requests[i].length()); buffers[i].write(requests[i].getBytes(Charset.forName("UTF-8")), 0, requests[i].length()); // The 3rd and 5th writeFrame calls have flush=true. @@ -206,27 +201,19 @@ public void write() { } private static List> responseHeader(String status) { - Map headers = new HashMap(); + Map headers = new HashMap<>(); headers.put(":status", status); headers.put("content-type", "application/grpc"); headers.put("test-key", "test-value"); - List> headerList = new ArrayList>(3); - for (Map.Entry entry : headers.entrySet()) { - headerList.add(entry); - } - return headerList; + return new ArrayList<>(headers.entrySet()); } private static List> trailers(int status) { - Map trailers = new HashMap(); + Map trailers = new HashMap<>(); trailers.put("grpc-status", String.valueOf(status)); trailers.put("content-type", "application/grpc"); trailers.put("test-trailer-key", "test-trailer-value"); - List> trailerList = new ArrayList>(3); - for (Map.Entry entry : trailers.entrySet()) { - trailerList.add(entry); - } - return trailerList; + return new ArrayList<>(trailers.entrySet()); } private static ByteBuffer createMessageFrame(byte[] bytes) { diff --git a/cronet/src/test/java/io/grpc/cronet/CronetClientTransportTest.java b/cronet/src/test/java/io/grpc/cronet/CronetClientTransportTest.java index cc18f33aaea..4a99f2b12ae 100644 --- a/cronet/src/test/java/io/grpc/cronet/CronetClientTransportTest.java +++ b/cronet/src/test/java/io/grpc/cronet/CronetClientTransportTest.java @@ -71,12 +71,7 @@ public final class CronetClientTransportTest { private MethodDescriptor descriptor = TestMethodDescriptors.voidMethod(); @Mock private ManagedClientTransport.Listener clientTransportListener; @Mock private BidirectionalStream.Builder builder; - private final Executor executor = new Executor() { - @Override - public void execute(Runnable r) { - r.run(); - } - }; + private final Executor executor = Runnable::run; @Before public void setUp() {