fix various java codestyle issues (#2710)

* fix various java codestyle issues

* Update lib/java/src/main/java/org/apache/thrift/server/TSaslNonblockingServer.java
diff --git a/lib/java/src/main/java/org/apache/thrift/TAsyncProcessor.java b/lib/java/src/main/java/org/apache/thrift/TAsyncProcessor.java
index 4dc9160..3d488ba 100644
--- a/lib/java/src/main/java/org/apache/thrift/TAsyncProcessor.java
+++ b/lib/java/src/main/java/org/apache/thrift/TAsyncProcessor.java
@@ -29,5 +29,5 @@
    * @param fb the frame buffer to process.
    * @throws TException if the frame cannot be processed
    */
-  public void process(final AsyncFrameBuffer fb) throws TException;
+  void process(final AsyncFrameBuffer fb) throws TException;
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/TBase.java b/lib/java/src/main/java/org/apache/thrift/TBase.java
index 9c8bdba..67c6ee8 100644
--- a/lib/java/src/main/java/org/apache/thrift/TBase.java
+++ b/lib/java/src/main/java/org/apache/thrift/TBase.java
@@ -31,7 +31,7 @@
    * @param fieldId the ID of the requested field.
    * @return F instance that corresponds to fieldId.
    */
-  public F fieldForId(int fieldId);
+  F fieldForId(int fieldId);
 
   /**
    * Check if a field is currently set or unset.
@@ -39,7 +39,7 @@
    * @param field the field to check.
    * @return true if the field is set, false otherwise.
    */
-  public boolean isSet(F field);
+  boolean isSet(F field);
 
   /**
    * Get a field's value by field variable. Primitive types will be wrapped in the appropriate
@@ -48,7 +48,7 @@
    * @param field the field whose value is requested.
    * @return the value of the requested field.
    */
-  public Object getFieldValue(F field);
+  Object getFieldValue(F field);
 
   /**
    * Set a field's value by field variable. Primitive types must be "boxed" in the appropriate
@@ -57,18 +57,18 @@
    * @param field the field whose value is to be set.
    * @param value the value to be assigned to field.
    */
-  public void setFieldValue(F field, Object value);
+  void setFieldValue(F field, Object value);
 
   /**
    * Performs a deep copy of this instance and returns the copy.
    *
    * @return a deep copy of this instance.
    */
-  public T deepCopy();
+  T deepCopy();
 
   /**
    * Return to the state of having just been initialized, as though you had just called the default
    * constructor.
    */
-  public void clear();
+  void clear();
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/TEnum.java b/lib/java/src/main/java/org/apache/thrift/TEnum.java
index 325fdec..300496d 100644
--- a/lib/java/src/main/java/org/apache/thrift/TEnum.java
+++ b/lib/java/src/main/java/org/apache/thrift/TEnum.java
@@ -20,5 +20,5 @@
 package org.apache.thrift;
 
 public interface TEnum {
-  public int getValue();
+  int getValue();
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/TEnumHelper.java b/lib/java/src/main/java/org/apache/thrift/TEnumHelper.java
index 84aa82e..b003346 100644
--- a/lib/java/src/main/java/org/apache/thrift/TEnumHelper.java
+++ b/lib/java/src/main/java/org/apache/thrift/TEnumHelper.java
@@ -19,12 +19,14 @@
 
 package org.apache.thrift;
 
-import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
 /** Utility class with static methods for interacting with TEnum */
 public class TEnumHelper {
 
+  /* no instantiation */
+  private TEnumHelper() {}
+
   /**
    * Given a TEnum class and integer value, this method will return the associated constant from the
    * given TEnum class. This method MUST be modified should the name of the 'findByValue' method
@@ -38,11 +40,7 @@
     try {
       Method method = enumClass.getMethod("findByValue", int.class);
       return (TEnum) method.invoke(null, value);
-    } catch (NoSuchMethodException nsme) {
-      return null;
-    } catch (IllegalAccessException iae) {
-      return null;
-    } catch (InvocationTargetException ite) {
+    } catch (ReflectiveOperationException nsme) {
       return null;
     }
   }
diff --git a/lib/java/src/main/java/org/apache/thrift/TFieldIdEnum.java b/lib/java/src/main/java/org/apache/thrift/TFieldIdEnum.java
index f270630..417cd84 100644
--- a/lib/java/src/main/java/org/apache/thrift/TFieldIdEnum.java
+++ b/lib/java/src/main/java/org/apache/thrift/TFieldIdEnum.java
@@ -25,12 +25,12 @@
    *
    * @return the Thrift field id for the named field.
    */
-  public short getThriftFieldId();
+  short getThriftFieldId();
 
   /**
    * Gets the field's name, exactly as in the IDL.
    *
    * @return the field's name, exactly as in the IDL.
    */
-  public String getFieldName();
+  String getFieldName();
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/TFieldRequirementType.java b/lib/java/src/main/java/org/apache/thrift/TFieldRequirementType.java
index 065cdfc..8769dbb 100644
--- a/lib/java/src/main/java/org/apache/thrift/TFieldRequirementType.java
+++ b/lib/java/src/main/java/org/apache/thrift/TFieldRequirementType.java
@@ -21,6 +21,10 @@
 
 /** Requirement type constants. */
 public final class TFieldRequirementType {
+
+  /* no instantiation */
+  private TFieldRequirementType() {}
+
   public static final byte REQUIRED = 1;
   public static final byte OPTIONAL = 2;
   public static final byte DEFAULT = 3;
diff --git a/lib/java/src/main/java/org/apache/thrift/TNonblockingMultiFetchClient.java b/lib/java/src/main/java/org/apache/thrift/TNonblockingMultiFetchClient.java
index ffe4fa7..26ea6d0 100644
--- a/lib/java/src/main/java/org/apache/thrift/TNonblockingMultiFetchClient.java
+++ b/lib/java/src/main/java/org/apache/thrift/TNonblockingMultiFetchClient.java
@@ -69,20 +69,20 @@
 
   // if the size of the response msg exceeds this limit (in byte), we will
   // not read the msg
-  private int maxRecvBufBytesPerServer;
+  private final int maxRecvBufBytesPerServer;
 
   // time limit for fetching data from all servers (in second)
-  private int fetchTimeoutSeconds;
+  private final int fetchTimeoutSeconds;
 
   // store request that will be sent to servers
-  private ByteBuffer requestBuf;
+  private final ByteBuffer requestBuf;
   private ByteBuffer requestBufDuplication;
 
   // a list of remote servers
-  private List<InetSocketAddress> servers;
+  private final List<InetSocketAddress> servers;
 
   // store fetch results
-  private TNonblockingMultiFetchStats stats;
+  private final TNonblockingMultiFetchStats stats;
   private ByteBuffer[] recvBuf;
 
   public TNonblockingMultiFetchClient(
@@ -237,6 +237,7 @@
             try {
               s.close();
             } catch (Exception ex) {
+              LOGGER.error("failed to free up socket", ex);
             }
           }
           if (key != null) {
@@ -359,13 +360,10 @@
     public void close() {
       try {
         if (selector.isOpen()) {
-          Iterator<SelectionKey> it = selector.keys().iterator();
-          while (it.hasNext()) {
-            SelectionKey selKey = it.next();
+          for (SelectionKey selKey : selector.keys()) {
             SocketChannel sChannel = (SocketChannel) selKey.channel();
             sChannel.close();
           }
-
           selector.close();
         }
       } catch (IOException e) {
diff --git a/lib/java/src/main/java/org/apache/thrift/TNonblockingMultiFetchStats.java b/lib/java/src/main/java/org/apache/thrift/TNonblockingMultiFetchStats.java
index bc02437..304dc09 100644
--- a/lib/java/src/main/java/org/apache/thrift/TNonblockingMultiFetchStats.java
+++ b/lib/java/src/main/java/org/apache/thrift/TNonblockingMultiFetchStats.java
@@ -28,7 +28,7 @@
   private int numOverflowedRecvBuf;
   private int numInvalidFrameSize;
   // time from the beginning of fetch() function to the reading finish
-  // time of the last socket (in milli-second)
+  // time of the last socket (in millisecond)
   private long readTime;
 
   public TNonblockingMultiFetchStats() {
diff --git a/lib/java/src/main/java/org/apache/thrift/TProcessor.java b/lib/java/src/main/java/org/apache/thrift/TProcessor.java
index 3a0e6fd..96b02a4 100644
--- a/lib/java/src/main/java/org/apache/thrift/TProcessor.java
+++ b/lib/java/src/main/java/org/apache/thrift/TProcessor.java
@@ -26,5 +26,5 @@
  * stream.
  */
 public interface TProcessor {
-  public void process(TProtocol in, TProtocol out) throws TException;
+  void process(TProtocol in, TProtocol out) throws TException;
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/TSerializable.java b/lib/java/src/main/java/org/apache/thrift/TSerializable.java
index 1252804..7333d41 100644
--- a/lib/java/src/main/java/org/apache/thrift/TSerializable.java
+++ b/lib/java/src/main/java/org/apache/thrift/TSerializable.java
@@ -30,7 +30,7 @@
    * @param iprot Input protocol
    * @throws TException if there is an error reading from iprot
    */
-  public void read(TProtocol iprot) throws TException;
+  void read(TProtocol iprot) throws TException;
 
   /**
    * Writes the objects out to the protocol
@@ -38,5 +38,5 @@
    * @param oprot Output protocol
    * @throws TException if there is an error writing to oprot
    */
-  public void write(TProtocol oprot) throws TException;
+  void write(TProtocol oprot) throws TException;
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/TSerializer.java b/lib/java/src/main/java/org/apache/thrift/TSerializer.java
index 6c0c7c2..8bcd494 100644
--- a/lib/java/src/main/java/org/apache/thrift/TSerializer.java
+++ b/lib/java/src/main/java/org/apache/thrift/TSerializer.java
@@ -32,11 +32,8 @@
   /** This is the byte array that data is actually serialized into */
   private final ByteArrayOutputStream baos_ = new ByteArrayOutputStream();
 
-  /** This transport wraps that byte array */
-  private final TIOStreamTransport transport_;
-
   /** Internal protocol used for serializing objects. */
-  private TProtocol protocol_;
+  private final TProtocol protocol_;
 
   /**
    * Create a new TSerializer that uses the TBinaryProtocol by default.
@@ -51,10 +48,11 @@
    * Create a new TSerializer. It will use the TProtocol specified by the factory that is passed in.
    *
    * @param protocolFactory Factory to create a protocol
-   * @throws TTransportException if there an error initializing the underlying transport.
+   * @throws TTransportException if there is an error initializing the underlying transport.
    */
   public TSerializer(TProtocolFactory protocolFactory) throws TTransportException {
-    transport_ = new TIOStreamTransport(new TConfiguration(), baos_);
+    /* This transport wraps that byte array */
+    TIOStreamTransport transport_ = new TIOStreamTransport(new TConfiguration(), baos_);
     protocol_ = protocolFactory.getProtocol(transport_);
   }
 
@@ -66,7 +64,7 @@
    * @return Serialized object in byte[] format
    * @throws TException if an error is encountered during serialization.
    */
-  public byte[] serialize(TBase base) throws TException {
+  public byte[] serialize(TBase<?, ?> base) throws TException {
     baos_.reset();
     base.write(protocol_);
     return baos_.toByteArray();
@@ -79,7 +77,7 @@
    * @return Serialized object as a String
    * @throws TException if an error is encountered during serialization.
    */
-  public String toString(TBase base) throws TException {
+  public String toString(TBase<?, ?> base) throws TException {
     return new String(serialize(base));
   }
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/TServiceClientFactory.java b/lib/java/src/main/java/org/apache/thrift/TServiceClientFactory.java
index 1636332..54dd967 100644
--- a/lib/java/src/main/java/org/apache/thrift/TServiceClientFactory.java
+++ b/lib/java/src/main/java/org/apache/thrift/TServiceClientFactory.java
@@ -34,7 +34,7 @@
    * @param prot The protocol to use for getting T.
    * @return A brand-new T using <i>prot</i> as both the input and output protocol.
    */
-  public T getClient(TProtocol prot);
+  T getClient(TProtocol prot);
 
   /**
    * Get a brand new T using the specified input and output protocols. The input and output
@@ -44,5 +44,5 @@
    * @param oprot The output protocol to use for getting T.
    * @return a brand new T using the specified input and output protocols
    */
-  public T getClient(TProtocol iprot, TProtocol oprot);
+  T getClient(TProtocol iprot, TProtocol oprot);
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/async/TAsyncClient.java b/lib/java/src/main/java/org/apache/thrift/async/TAsyncClient.java
index 06d6f63..0bfe1c9 100644
--- a/lib/java/src/main/java/org/apache/thrift/async/TAsyncClient.java
+++ b/lib/java/src/main/java/org/apache/thrift/async/TAsyncClient.java
@@ -25,7 +25,7 @@
   protected final TProtocolFactory ___protocolFactory;
   protected final TNonblockingTransport ___transport;
   protected final TAsyncClientManager ___manager;
-  protected TAsyncMethodCall ___currentMethod;
+  protected TAsyncMethodCall<?> ___currentMethod;
   private Exception ___error;
   private long ___timeout;
 
diff --git a/lib/java/src/main/java/org/apache/thrift/async/TAsyncClientFactory.java b/lib/java/src/main/java/org/apache/thrift/async/TAsyncClientFactory.java
index 28feb73..31ca288 100644
--- a/lib/java/src/main/java/org/apache/thrift/async/TAsyncClientFactory.java
+++ b/lib/java/src/main/java/org/apache/thrift/async/TAsyncClientFactory.java
@@ -21,5 +21,5 @@
 import org.apache.thrift.transport.TNonblockingTransport;
 
 public interface TAsyncClientFactory<T extends TAsyncClient> {
-  public T getAsyncClient(TNonblockingTransport transport);
+  T getAsyncClient(TNonblockingTransport transport);
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/async/TAsyncClientManager.java b/lib/java/src/main/java/org/apache/thrift/async/TAsyncClientManager.java
index ba6a5fd..256ab26 100644
--- a/lib/java/src/main/java/org/apache/thrift/async/TAsyncClientManager.java
+++ b/lib/java/src/main/java/org/apache/thrift/async/TAsyncClientManager.java
@@ -38,15 +38,15 @@
   private static final Logger LOGGER = LoggerFactory.getLogger(TAsyncClientManager.class.getName());
 
   private final SelectThread selectThread;
-  private final ConcurrentLinkedQueue<TAsyncMethodCall> pendingCalls =
-      new ConcurrentLinkedQueue<TAsyncMethodCall>();
+  private final ConcurrentLinkedQueue<TAsyncMethodCall<?>> pendingCalls =
+      new ConcurrentLinkedQueue<>();
 
   public TAsyncClientManager() throws IOException {
     this.selectThread = new SelectThread();
     selectThread.start();
   }
 
-  public void call(TAsyncMethodCall method) throws TException {
+  public void call(TAsyncMethodCall<?> method) throws TException {
     if (!isRunning()) {
       throw new TException("SelectThread is not running");
     }
@@ -66,8 +66,8 @@
   private class SelectThread extends Thread {
     private final Selector selector;
     private volatile boolean running;
-    private final TreeSet<TAsyncMethodCall> timeoutWatchSet =
-        new TreeSet<TAsyncMethodCall>(new TAsyncMethodCallTimeoutComparator());
+    private final TreeSet<TAsyncMethodCall<?>> timeoutWatchSet =
+        new TreeSet<>(new TAsyncMethodCallTimeoutComparator());
 
     public SelectThread() throws IOException {
       this.selector = SelectorProvider.provider().openSelector();
@@ -103,7 +103,7 @@
                 // Next timeout is in the future, select and wake up then
                 selector.select(selectTime);
               } else {
-                // Next timeout is now or in past, select immediately so we can time out
+                // Next timeout is now or in the past, select immediately, so we can time out
                 selector.selectNow();
               }
             }
@@ -134,12 +134,12 @@
           keys.remove();
           if (!key.isValid()) {
             // this can happen if the method call experienced an error and the
-            // key was cancelled. can also happen if we timeout a method, which
+            // key was cancelled. can also happen if we time out a method, which
             // results in a channel close.
             // just skip
             continue;
           }
-          TAsyncMethodCall methodCall = (TAsyncMethodCall) key.attachment();
+          TAsyncMethodCall<?> methodCall = (TAsyncMethodCall<?>) key.attachment();
           methodCall.transition(key);
 
           // If done or error occurred, remove from timeout watch set
@@ -154,10 +154,10 @@
 
     // Timeout any existing method calls
     private void timeoutMethods() {
-      Iterator<TAsyncMethodCall> iterator = timeoutWatchSet.iterator();
+      Iterator<TAsyncMethodCall<?>> iterator = timeoutWatchSet.iterator();
       long currentTime = System.currentTimeMillis();
       while (iterator.hasNext()) {
-        TAsyncMethodCall methodCall = iterator.next();
+        TAsyncMethodCall<?> methodCall = iterator.next();
         if (currentTime >= methodCall.getTimeoutTimestamp()) {
           iterator.remove();
           methodCall.onError(
@@ -175,7 +175,7 @@
 
     // Start any new calls
     private void startPendingMethods() {
-      TAsyncMethodCall methodCall;
+      TAsyncMethodCall<?> methodCall;
       while ((methodCall = pendingCalls.poll()) != null) {
         // Catch registration errors. method will catch transition errors and cleanup.
         try {
@@ -196,7 +196,8 @@
 
   /** Comparator used in TreeSet */
   private static class TAsyncMethodCallTimeoutComparator
-      implements Comparator<TAsyncMethodCall>, Serializable {
+      implements Comparator<TAsyncMethodCall<?>>, Serializable {
+    @Override
     public int compare(TAsyncMethodCall left, TAsyncMethodCall right) {
       if (left.getTimeoutTimestamp() == right.getTimeoutTimestamp()) {
         return (int) (left.getSequenceId() - right.getSequenceId());
diff --git a/lib/java/src/main/java/org/apache/thrift/async/TAsyncMethodCall.java b/lib/java/src/main/java/org/apache/thrift/async/TAsyncMethodCall.java
index df586b4..9bcc8a9 100644
--- a/lib/java/src/main/java/org/apache/thrift/async/TAsyncMethodCall.java
+++ b/lib/java/src/main/java/org/apache/thrift/async/TAsyncMethodCall.java
@@ -46,9 +46,9 @@
 public abstract class TAsyncMethodCall<T> {
 
   private static final int INITIAL_MEMORY_BUFFER_SIZE = 128;
-  private static AtomicLong sequenceIdCounter = new AtomicLong(0);
+  private static final AtomicLong sequenceIdCounter = new AtomicLong(0);
 
-  public static enum State {
+  public enum State {
     CONNECTING,
     WRITING_REQUEST_SIZE,
     WRITING_REQUEST_BODY,
@@ -66,14 +66,14 @@
   protected final TAsyncClient client;
   private final AsyncMethodCallback<T> callback;
   private final boolean isOneway;
-  private long sequenceId;
+  private final long sequenceId;
   private final long timeout;
 
   private ByteBuffer sizeBuffer;
   private final byte[] sizeBufferArray = new byte[4];
   private ByteBuffer frameBuffer;
 
-  private long startTime = System.currentTimeMillis();
+  private final long startTime = System.currentTimeMillis();
 
   protected TAsyncMethodCall(
       TAsyncClient client,
@@ -177,7 +177,7 @@
    * the selector thread, we can make changes to our select interests without worrying about
    * concurrency.
    *
-   * @param key
+   * @param key selection key
    */
   void transition(SelectionKey key) {
     // Ensure key is valid
diff --git a/lib/java/src/main/java/org/apache/thrift/partial/EnumCache.java b/lib/java/src/main/java/org/apache/thrift/partial/EnumCache.java
index a56d202..4fc7562 100644
--- a/lib/java/src/main/java/org/apache/thrift/partial/EnumCache.java
+++ b/lib/java/src/main/java/org/apache/thrift/partial/EnumCache.java
@@ -34,7 +34,7 @@
  * separately on its own.
  */
 public class EnumCache {
-  private static Logger LOG = LoggerFactory.getLogger(EnumCache.class);
+  private static final Logger LOG = LoggerFactory.getLogger(EnumCache.class);
 
   private Map<Class<? extends TEnum>, Map<Integer, TEnum>> classMap;
 
diff --git a/lib/java/src/main/java/org/apache/thrift/protocol/TBase64Utils.java b/lib/java/src/main/java/org/apache/thrift/protocol/TBase64Utils.java
index a948d13..6559da1 100644
--- a/lib/java/src/main/java/org/apache/thrift/protocol/TBase64Utils.java
+++ b/lib/java/src/main/java/org/apache/thrift/protocol/TBase64Utils.java
@@ -47,7 +47,7 @@
    * @param dst the destination for the encoding
    * @param dstOff the offset into the destination to place the encoded bytes
    */
-  static final void encode(byte[] src, int srcOff, int len, byte[] dst, int dstOff) {
+  static void encode(byte[] src, int srcOff, int len, byte[] dst, int dstOff) {
     dst[dstOff] = (byte) ENCODE_TABLE.charAt((src[srcOff] >> 2) & 0x3F);
     if (len == 3) {
       dst[dstOff + 1] =
@@ -97,7 +97,7 @@
    * @param dst the destination for the decoding
    * @param dstOff the offset into the destination to place the decoded bytes
    */
-  static final void decode(byte[] src, int srcOff, int len, byte[] dst, int dstOff) {
+  static void decode(byte[] src, int srcOff, int len, byte[] dst, int dstOff) {
     dst[dstOff] =
         (byte)
             ((DECODE_TABLE[src[srcOff] & 0x0FF] << 2)
diff --git a/lib/java/src/main/java/org/apache/thrift/protocol/TJSONProtocol.java b/lib/java/src/main/java/org/apache/thrift/protocol/TJSONProtocol.java
index a2f0eac..203c016 100644
--- a/lib/java/src/main/java/org/apache/thrift/protocol/TJSONProtocol.java
+++ b/lib/java/src/main/java/org/apache/thrift/protocol/TJSONProtocol.java
@@ -62,7 +62,6 @@
   private static final byte[] RBRACKET = new byte[] {']'};
   private static final byte[] QUOTE = new byte[] {'"'};
   private static final byte[] BACKSLASH = new byte[] {'\\'};
-  private static final byte[] ZERO = new byte[] {'0'};
 
   private static final byte[] ESCSEQ = new byte[] {'\\', 'u', '0', '0'};
 
@@ -185,7 +184,7 @@
   // Base class for tracking JSON contexts that may require inserting/reading
   // additional JSON syntax characters
   // This base context does nothing.
-  protected class JSONBaseContext {
+  protected static class JSONBaseContext {
     protected void write() throws TException {}
 
     protected void read() throws TException {}
@@ -259,7 +258,7 @@
   protected class LookaheadReader {
 
     private boolean hasData_;
-    private byte[] data_ = new byte[1];
+    private final byte[] data_ = new byte[1];
 
     // Return and consume the next byte to be read, either taking it from the
     // data buffer if present or getting it from the transport otherwise.
@@ -284,7 +283,7 @@
   }
 
   // Stack of nested contexts that we may be in
-  private Stack<JSONBaseContext> contextStack_ = new Stack<JSONBaseContext>();
+  private final Stack<JSONBaseContext> contextStack_ = new Stack<>();
 
   // Current context that we are in
   private JSONBaseContext context_ = new JSONBaseContext();
@@ -331,7 +330,7 @@
   }
 
   // Temporary buffer used by several methods
-  private byte[] tmpbuf_ = new byte[4];
+  private final byte[] tmpbuf_ = new byte[4];
 
   // Read a byte that must match b[0]; otherwise an exception is thrown.
   // Marked protected to avoid synthetic accessor in JSONListContext.read
@@ -346,7 +345,7 @@
 
   // Convert a byte containing a hex char ('0'-'9' or 'a'-'f') into its
   // corresponding hex value
-  private static final byte hexVal(byte ch) throws TException {
+  private static byte hexVal(byte ch) throws TException {
     if ((ch >= '0') && (ch <= '9')) {
       return (byte) ((char) ch - '0');
     } else if ((ch >= 'a') && (ch <= 'f')) {
@@ -357,7 +356,7 @@
   }
 
   // Convert a byte containing a hex value to its corresponding hex character
-  private static final byte hexChar(byte val) {
+  private static byte hexChar(byte val) {
     val &= 0x0F;
     if (val < 10) {
       return (byte) ((char) val + '0');
@@ -734,7 +733,7 @@
       readJSONSyntaxChar(QUOTE);
     }
     try {
-      return Long.valueOf(str);
+      return Long.parseLong(str);
     } catch (NumberFormatException ex) {
       throw new TProtocolException(
           TProtocolException.INVALID_DATA, "Bad data encounted in numeric data");
@@ -747,7 +746,7 @@
     context_.read();
     if (reader_.peek() == QUOTE[0]) {
       TByteArrayOutputStream arr = readJSONString(true);
-      double dub = Double.valueOf(arr.toString(StandardCharsets.UTF_8));
+      double dub = Double.parseDouble(arr.toString(StandardCharsets.UTF_8));
       if (!context_.escapeNum() && !Double.isNaN(dub) && !Double.isInfinite(dub)) {
         // Throw exception -- we should not be in a string in this case
         throw new TProtocolException(
@@ -760,7 +759,7 @@
         readJSONSyntaxChar(QUOTE);
       }
       try {
-        return Double.valueOf(readJSONNumericChars());
+        return Double.parseDouble(readJSONNumericChars());
       } catch (NumberFormatException ex) {
         throw new TProtocolException(
             TProtocolException.INVALID_DATA, "Bad data encounted in numeric data");
diff --git a/lib/java/src/main/java/org/apache/thrift/protocol/TProtocolDecorator.java b/lib/java/src/main/java/org/apache/thrift/protocol/TProtocolDecorator.java
index c237ce4..bd9bd8e 100644
--- a/lib/java/src/main/java/org/apache/thrift/protocol/TProtocolDecorator.java
+++ b/lib/java/src/main/java/org/apache/thrift/protocol/TProtocolDecorator.java
@@ -265,8 +265,8 @@
   /**
    * @param type Returns the minimum amount of bytes needed to store the smallest possible instance
    *     of TType.
-   * @return
-   * @throws TException
+   * @return size
+   * @throws TException if underlying protocol throws
    */
   @Override
   public int getMinSerializedSize(byte type) throws TException {
diff --git a/lib/java/src/main/java/org/apache/thrift/protocol/TSimpleJSONProtocol.java b/lib/java/src/main/java/org/apache/thrift/protocol/TSimpleJSONProtocol.java
index 1b69032..cceb517 100644
--- a/lib/java/src/main/java/org/apache/thrift/protocol/TSimpleJSONProtocol.java
+++ b/lib/java/src/main/java/org/apache/thrift/protocol/TSimpleJSONProtocol.java
@@ -37,6 +37,7 @@
 
   /** Factory */
   public static class Factory implements TProtocolFactory {
+    @Override
     public TProtocol getProtocol(TTransport trans) {
       return new TSimpleJSONProtocol(trans);
     }
@@ -49,18 +50,11 @@
   private static final byte[] LBRACKET = new byte[] {'['};
   private static final byte[] RBRACKET = new byte[] {']'};
   private static final char QUOTE = '"';
-
-  private static final TStruct ANONYMOUS_STRUCT = new TStruct();
-  private static final TField ANONYMOUS_FIELD = new TField();
-  private static final TMessage EMPTY_MESSAGE = new TMessage();
-  private static final TSet EMPTY_SET = new TSet();
-  private static final TList EMPTY_LIST = new TList();
-  private static final TMap EMPTY_MAP = new TMap();
   private static final String LIST = "list";
   private static final String SET = "set";
   private static final String MAP = "map";
 
-  protected class Context {
+  protected static class Context {
     protected void write() throws TException {}
 
     /** Returns whether the current value is a key in a map */
@@ -360,8 +354,8 @@
   /**
    * Reading methods.
    *
-   * <p>simplejson is not meant to be read back into thrift - see
-   * http://wiki.apache.org/thrift/ThriftUsageJava - use JSON instead
+   * <p>simplejson is not meant to be read back into thrift - see <a
+   * href="http://wiki.apache.org/thrift/ThriftUsageJava">ThriftUsageJava</a> - use JSON instead
    */
   @Override
   public TMessage readMessageBegin() throws TException {
diff --git a/lib/java/src/main/java/org/apache/thrift/protocol/TTupleProtocol.java b/lib/java/src/main/java/org/apache/thrift/protocol/TTupleProtocol.java
index c4141a6..19d05e4 100644
--- a/lib/java/src/main/java/org/apache/thrift/protocol/TTupleProtocol.java
+++ b/lib/java/src/main/java/org/apache/thrift/protocol/TTupleProtocol.java
@@ -77,8 +77,8 @@
    * is big-endian which means the most significant bit is in element 0. The bit at index 0 of the
    * bit set is assumed to be the least significant bit.
    *
-   * @param bits
-   * @param vectorWidth
+   * @param bits bit set
+   * @param vectorWidth width of the vector
    * @return a byte array of at least length 1
    */
   public static byte[] toByteArray(BitSet bits, int vectorWidth) {
diff --git a/lib/java/src/main/java/org/apache/thrift/scheme/IScheme.java b/lib/java/src/main/java/org/apache/thrift/scheme/IScheme.java
index c4a85b9..ecf41fc 100644
--- a/lib/java/src/main/java/org/apache/thrift/scheme/IScheme.java
+++ b/lib/java/src/main/java/org/apache/thrift/scheme/IScheme.java
@@ -22,9 +22,9 @@
 
 public interface IScheme<T extends TBase> {
 
-  public void read(org.apache.thrift.protocol.TProtocol iproto, T struct)
+  void read(org.apache.thrift.protocol.TProtocol iproto, T struct)
       throws org.apache.thrift.TException;
 
-  public void write(org.apache.thrift.protocol.TProtocol oproto, T struct)
+  void write(org.apache.thrift.protocol.TProtocol oproto, T struct)
       throws org.apache.thrift.TException;
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/scheme/SchemeFactory.java b/lib/java/src/main/java/org/apache/thrift/scheme/SchemeFactory.java
index e9d7640..94b7a11 100644
--- a/lib/java/src/main/java/org/apache/thrift/scheme/SchemeFactory.java
+++ b/lib/java/src/main/java/org/apache/thrift/scheme/SchemeFactory.java
@@ -20,5 +20,5 @@
 
 public interface SchemeFactory {
 
-  public <S extends IScheme> S getScheme();
+  <S extends IScheme> S getScheme();
 }
diff --git a/lib/java/src/main/java/org/apache/thrift/server/AbstractNonblockingServer.java b/lib/java/src/main/java/org/apache/thrift/server/AbstractNonblockingServer.java
index 01b15e8..954aaeb 100644
--- a/lib/java/src/main/java/org/apache/thrift/server/AbstractNonblockingServer.java
+++ b/lib/java/src/main/java/org/apache/thrift/server/AbstractNonblockingServer.java
@@ -66,7 +66,7 @@
   /** How many bytes are currently allocated to read buffers. */
   final AtomicLong readBufferBytesAllocated = new AtomicLong(0);
 
-  public AbstractNonblockingServer(AbstractNonblockingServerArgs args) {
+  public AbstractNonblockingServer(AbstractNonblockingServerArgs<?> args) {
     super(args);
     MAX_READ_BUFFER_BYTES = args.maxReadBufferBytes;
   }
diff --git a/lib/java/src/main/java/org/apache/thrift/server/Invocation.java b/lib/java/src/main/java/org/apache/thrift/server/Invocation.java
index 64f8969..423b40b 100644
--- a/lib/java/src/main/java/org/apache/thrift/server/Invocation.java
+++ b/lib/java/src/main/java/org/apache/thrift/server/Invocation.java
@@ -14,6 +14,7 @@
     this.frameBuffer = frameBuffer;
   }
 
+  @Override
   public void run() {
     frameBuffer.invoke();
   }
diff --git a/lib/java/src/main/java/org/apache/thrift/server/TExtensibleServlet.java b/lib/java/src/main/java/org/apache/thrift/server/TExtensibleServlet.java
index 5c14100..fa5acac 100644
--- a/lib/java/src/main/java/org/apache/thrift/server/TExtensibleServlet.java
+++ b/lib/java/src/main/java/org/apache/thrift/server/TExtensibleServlet.java
@@ -52,8 +52,6 @@
 
   private TProtocolFactory inFactory;
 
-  private TProtocolFactory outFactory;
-
   private Collection<Map.Entry<String, String>> customHeaders;
 
   /**
@@ -85,7 +83,7 @@
     super.init(config); // no-args init() happens here
     this.processor = getProcessor();
     this.inFactory = getInProtocolFactory();
-    this.outFactory = getOutProtocolFactory();
+    TProtocolFactory outFactory = getOutProtocolFactory();
     this.customHeaders = new ArrayList<Map.Entry<String, String>>();
 
     if (processor == null) {
@@ -105,8 +103,8 @@
   @Override
   protected void doPost(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
-    TTransport inTransport = null;
-    TTransport outTransport = null;
+    TTransport inTransport;
+    TTransport outTransport;
 
     try {
       response.setContentType("application/x-thrift");
@@ -146,14 +144,17 @@
   public void addCustomHeader(final String key, final String value) {
     this.customHeaders.add(
         new Map.Entry<String, String>() {
+          @Override
           public String getKey() {
             return key;
           }
 
+          @Override
           public String getValue() {
             return value;
           }
 
+          @Override
           public String setValue(String value) {
             return null;
           }
diff --git a/lib/java/src/main/java/org/apache/thrift/server/TNonblockingServer.java b/lib/java/src/main/java/org/apache/thrift/server/TNonblockingServer.java
index fa75569..5c015eb 100644
--- a/lib/java/src/main/java/org/apache/thrift/server/TNonblockingServer.java
+++ b/lib/java/src/main/java/org/apache/thrift/server/TNonblockingServer.java
@@ -47,7 +47,7 @@
 
   private SelectAcceptThread selectAcceptThread_;
 
-  public TNonblockingServer(AbstractNonblockingServerArgs args) {
+  public TNonblockingServer(AbstractNonblockingServerArgs<?> args) {
     super(args);
   }
 
@@ -132,6 +132,7 @@
      * The work loop. Handles both selecting (all IO operations) and managing the selection
      * preferences of all existing connections.
      */
+    @Override
     public void run() {
       try {
         if (eventHandler_ != null) {
diff --git a/lib/java/src/main/java/org/apache/thrift/server/TServlet.java b/lib/java/src/main/java/org/apache/thrift/server/TServlet.java
index c025a49..831842b 100644
--- a/lib/java/src/main/java/org/apache/thrift/server/TServlet.java
+++ b/lib/java/src/main/java/org/apache/thrift/server/TServlet.java
@@ -87,6 +87,7 @@
   /**
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    */
+  @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
     doPost(request, response);
@@ -95,14 +96,17 @@
   public void addCustomHeader(final String key, final String value) {
     this.customHeaders.add(
         new Map.Entry<String, String>() {
+          @Override
           public String getKey() {
             return key;
           }
 
+          @Override
           public String getValue() {
             return value;
           }
 
+          @Override
           public String setValue(String value) {
             return null;
           }
diff --git a/lib/java/src/main/java/org/apache/thrift/server/TSimpleServer.java b/lib/java/src/main/java/org/apache/thrift/server/TSimpleServer.java
index 3530d6d..69af88a 100644
--- a/lib/java/src/main/java/org/apache/thrift/server/TSimpleServer.java
+++ b/lib/java/src/main/java/org/apache/thrift/server/TSimpleServer.java
@@ -36,6 +36,7 @@
     super(args);
   }
 
+  @Override
   public void serve() {
     try {
       serverTransport_.listen();
diff --git a/lib/java/src/main/java/org/apache/thrift/server/TThreadPoolServer.java b/lib/java/src/main/java/org/apache/thrift/server/TThreadPoolServer.java
index 357410f..82d3a29 100644
--- a/lib/java/src/main/java/org/apache/thrift/server/TThreadPoolServer.java
+++ b/lib/java/src/main/java/org/apache/thrift/server/TThreadPoolServer.java
@@ -82,7 +82,7 @@
   }
 
   // Executor service for handling client connections
-  private ExecutorService executorService_;
+  private final ExecutorService executorService_;
 
   private final TimeUnit stopTimeoutUnit;
 
@@ -140,6 +140,7 @@
     return true;
   }
 
+  @Override
   public void serve() {
     if (!preServe()) {
       return;
@@ -196,6 +197,7 @@
     return false;
   }
 
+  @Override
   public void stop() {
     stopped_ = true;
     serverTransport_.interrupt();
@@ -204,7 +206,7 @@
   private class WorkerProcess implements Runnable {
 
     /** Client that this services. */
-    private TTransport client_;
+    private final TTransport client_;
 
     /**
      * Default constructor.
@@ -216,6 +218,7 @@
     }
 
     /** Loops on processing a client forever */
+    @Override
     public void run() {
       TProcessor processor = null;
       TTransport inputTransport = null;
diff --git a/lib/java/src/main/java/org/apache/thrift/server/TThreadedSelectorServer.java b/lib/java/src/main/java/org/apache/thrift/server/TThreadedSelectorServer.java
index 0a4d857..ae3d292 100644
--- a/lib/java/src/main/java/org/apache/thrift/server/TThreadedSelectorServer.java
+++ b/lib/java/src/main/java/org/apache/thrift/server/TThreadedSelectorServer.java
@@ -50,10 +50,10 @@
  * reading and writing of client connections. A synchronous worker thread pool handles processing of
  * requests.
  *
- * <p>Performs better than TNonblockingServer/THsHaServer in multi-core environments when the the
+ * <p>Performs better than TNonblockingServer/THsHaServer in multi-core environments when the
  * bottleneck is CPU on the single selector thread handling I/O. In addition, because the accept
  * handling is decoupled from reads/writes and invocation, the server has better ability to handle
- * back- pressure from new connections (e.g. stop accepting when busy).
+ * back-pressure from new connections (e.g. stop accepting when busy).
  *
  * <p>Like TNonblockingServer, it relies on the use of TFramedTransport.
  */
@@ -183,7 +183,7 @@
   private AcceptThread acceptThread;
 
   // Threads handling events on client transports
-  private final Set<SelectorThread> selectorThreads = new HashSet<SelectorThread>();
+  private final Set<SelectorThread> selectorThreads = new HashSet<>();
 
   // This wraps all the functionality of queueing and thread pool management
   // for the passing of Invocations from the selector thread(s) to the workers
@@ -257,10 +257,8 @@
     if (acceptThread != null) {
       acceptThread.wakeupSelector();
     }
-    if (selectorThreads != null) {
-      for (SelectorThread thread : selectorThreads) {
-        if (thread != null) thread.wakeupSelector();
-      }
+    for (SelectorThread thread : selectorThreads) {
+      if (thread != null) thread.wakeupSelector();
     }
   }
 
@@ -341,7 +339,7 @@
     /**
      * Set up the AcceptThead
      *
-     * @throws IOException
+     * @throws IOException if failed to register selector
      */
     public AcceptThread(
         TNonblockingServerTransport serverTransport, SelectorThreadLoadBalancer threadChooser)
@@ -464,8 +462,8 @@
 
     // Accepted connections added by the accept thread.
     private final BlockingQueue<TNonblockingTransport> acceptedQueue;
-    private int SELECTOR_AUTO_REBUILD_THRESHOLD = 512;
-    private long MONITOR_PERIOD = 1000L;
+    private static final int SELECTOR_AUTO_REBUILD_THRESHOLD = 512;
+    private static final long MONITOR_PERIOD = 1000L;
     private int jvmBug = 0;
 
     /**
@@ -581,7 +579,8 @@
     }
 
     /**
-     * Do select and judge epoll bug happen. See : https://issues.apache.org/jira/browse/THRIFT-4251
+     * Do select and judge epoll bug happen. See <a
+     * href="https://issues.apache.org/jira/browse/THRIFT-4251">THRIFT-4251</a>
      */
     private void doSelect() throws IOException {
       long beforeSelect = System.currentTimeMillis();
diff --git a/lib/java/src/main/java/org/apache/thrift/transport/TSSLTransportFactory.java b/lib/java/src/main/java/org/apache/thrift/transport/TSSLTransportFactory.java
index 917f4c9..b44bb40 100644
--- a/lib/java/src/main/java/org/apache/thrift/transport/TSSLTransportFactory.java
+++ b/lib/java/src/main/java/org/apache/thrift/transport/TSSLTransportFactory.java
@@ -53,9 +53,9 @@
    * -Djavax.net.ssl.trustStorePassword=password -Djavax.net.ssl.keyStore=&lt;keystore location&gt;
    * -Djavax.net.ssl.keyStorePassword=password
    *
-   * @param port
+   * @param port server port
    * @return A SSL wrapped TServerSocket
-   * @throws TTransportException
+   * @throws TTransportException when failed to create server socket
    */
   public static TServerSocket getServerSocket(int port) throws TTransportException {
     return getServerSocket(port, 0);
@@ -264,7 +264,7 @@
     } catch (FileNotFoundException e) {
     }
 
-    InputStream storeStream = null;
+    InputStream storeStream;
     try {
       storeStream = new URL(store).openStream();
       if (storeStream != null) {
diff --git a/lib/java/src/main/java/org/apache/thrift/transport/TSimpleFileTransport.java b/lib/java/src/main/java/org/apache/thrift/transport/TSimpleFileTransport.java
index 9dfdb82..cd6be66 100644
--- a/lib/java/src/main/java/org/apache/thrift/transport/TSimpleFileTransport.java
+++ b/lib/java/src/main/java/org/apache/thrift/transport/TSimpleFileTransport.java
@@ -26,9 +26,9 @@
 public final class TSimpleFileTransport extends TEndpointTransport {
 
   private RandomAccessFile file = null;
-  private boolean readable;
-  private boolean writable;
-  private String path_;
+  private final boolean readable;
+  private final boolean writable;
+  private final String path_;
 
   /**
    * Create a transport backed by a simple file
diff --git a/lib/java/src/main/java/org/apache/thrift/transport/layered/TFramedTransport.java b/lib/java/src/main/java/org/apache/thrift/transport/layered/TFramedTransport.java
index 6ba4018..a3c1bcc 100644
--- a/lib/java/src/main/java/org/apache/thrift/transport/layered/TFramedTransport.java
+++ b/lib/java/src/main/java/org/apache/thrift/transport/layered/TFramedTransport.java
@@ -40,7 +40,7 @@
   private final TMemoryInputTransport readBuffer_;
 
   public static class Factory extends TTransportFactory {
-    private int maxLength_;
+    private final int maxLength_;
 
     public Factory() {
       maxLength_ = TConfiguration.DEFAULT_MAX_FRAME_SIZE;
@@ -170,14 +170,14 @@
     getInnerTransport().flush();
   }
 
-  public static final void encodeFrameSize(final int frameSize, final byte[] buf) {
+  public static void encodeFrameSize(final int frameSize, final byte[] buf) {
     buf[0] = (byte) (0xff & (frameSize >> 24));
     buf[1] = (byte) (0xff & (frameSize >> 16));
     buf[2] = (byte) (0xff & (frameSize >> 8));
     buf[3] = (byte) (0xff & (frameSize));
   }
 
-  public static final int decodeFrameSize(final byte[] buf) {
+  public static int decodeFrameSize(final byte[] buf) {
     return ((buf[0] & 0xff) << 24)
         | ((buf[1] & 0xff) << 16)
         | ((buf[2] & 0xff) << 8)
diff --git a/lib/java/src/main/java/org/apache/thrift/transport/layered/TLayeredTransport.java b/lib/java/src/main/java/org/apache/thrift/transport/layered/TLayeredTransport.java
index 6e3d196..5ab4c95 100644
--- a/lib/java/src/main/java/org/apache/thrift/transport/layered/TLayeredTransport.java
+++ b/lib/java/src/main/java/org/apache/thrift/transport/layered/TLayeredTransport.java
@@ -25,8 +25,9 @@
 
 public abstract class TLayeredTransport extends TTransport {
 
-  private TTransport innerTransport;
+  private final TTransport innerTransport;
 
+  @Override
   public TConfiguration getConfiguration() {
     return innerTransport.getConfiguration();
   }
@@ -36,10 +37,12 @@
     innerTransport = transport;
   }
 
+  @Override
   public void updateKnownMessageSize(long size) throws TTransportException {
     innerTransport.updateKnownMessageSize(size);
   }
 
+  @Override
   public void checkReadBytesAvailable(long numBytes) throws TTransportException {
     innerTransport.checkReadBytesAvailable(numBytes);
   }
diff --git a/lib/java/src/main/java/org/apache/thrift/transport/sasl/DataFrameWriter.java b/lib/java/src/main/java/org/apache/thrift/transport/sasl/DataFrameWriter.java
index b79537d..9f2168a 100644
--- a/lib/java/src/main/java/org/apache/thrift/transport/sasl/DataFrameWriter.java
+++ b/lib/java/src/main/java/org/apache/thrift/transport/sasl/DataFrameWriter.java
@@ -35,7 +35,7 @@
   public void withOnlyPayload(byte[] payload, int offset, int length) {
     if (!isComplete()) {
       throw new IllegalStateException(
-          "Previsous write is not yet complete, with " + frameBytes.remaining() + " bytes left.");
+          "Previous write is not yet complete, with " + frameBytes.remaining() + " bytes left.");
     }
     frameBytes = buildFrameWithPayload(payload, offset, length);
   }
diff --git a/lib/java/src/main/java/org/apache/thrift/transport/sasl/NonblockingSaslHandler.java b/lib/java/src/main/java/org/apache/thrift/transport/sasl/NonblockingSaslHandler.java
index 44862d2..da82c89 100644
--- a/lib/java/src/main/java/org/apache/thrift/transport/sasl/NonblockingSaslHandler.java
+++ b/lib/java/src/main/java/org/apache/thrift/transport/sasl/NonblockingSaslHandler.java
@@ -215,7 +215,7 @@
     selectionKey.interestOps(selectionInterest);
   }
 
-  // sasl negotiaion failure handling
+  // sasl negotiation failure handling
   private void failSaslNegotiation(TSaslNegotiationException e) {
     LOGGER.error("Sasl negotiation failed", e);
     String errorMsg = e.getDetails();
@@ -494,7 +494,7 @@
     };
 
     // The interest on the selection key during the phase
-    private int selectionInterest;
+    private final int selectionInterest;
 
     Phase(int selectionInterest) {
       this.selectionInterest = selectionInterest;