You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ti...@apache.org on 2023/02/10 15:54:32 UTC

[zookeeper] branch master updated: [ZOOKEEPER-4672] Code cleanup - apply JDK7 Diamond operator consistently (#1979)

This is an automated email from the ASF dual-hosted git repository.

tison pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 629518b5e [ZOOKEEPER-4672] Code cleanup - apply JDK7 Diamond operator consistently (#1979)
629518b5e is described below

commit 629518b5ea2b26d88a9ec53d5a422afe9b12e452
Author: Tim te Beek <ti...@gmail.com>
AuthorDate: Fri Feb 10 16:54:14 2023 +0100

    [ZOOKEEPER-4672] Code cleanup - apply JDK7 Diamond operator consistently (#1979)
    
    Co-authored-by: Moderne <te...@moderne.io>
---
 .../main/java/org/apache/jute/RecordWriter.java    |  2 +-
 .../java/org/apache/jute/compiler/JRecord.java     |  2 +-
 .../main/java/org/apache/zookeeper/ClientCnxn.java | 16 +++++-----
 .../java/org/apache/zookeeper/Environment.java     |  2 +-
 .../java/org/apache/zookeeper/KeeperException.java |  2 +-
 .../org/apache/zookeeper/MultiOperationRecord.java |  2 +-
 .../java/org/apache/zookeeper/MultiResponse.java   |  4 +--
 .../java/org/apache/zookeeper/Transaction.java     |  2 +-
 .../src/main/java/org/apache/zookeeper/ZKUtil.java |  6 ++--
 .../main/java/org/apache/zookeeper/ZooDefs.java    |  6 ++--
 .../main/java/org/apache/zookeeper/ZooKeeper.java  |  6 ++--
 .../java/org/apache/zookeeper/ZooKeeperMain.java   | 16 +++++-----
 .../java/org/apache/zookeeper/cli/AclParser.java   |  2 +-
 .../zookeeper/client/ConnectStringParser.java      |  2 +-
 .../zookeeper/client/StaticHostProvider.java       |  6 ++--
 .../org/apache/zookeeper/common/StringUtils.java   |  2 +-
 .../java/org/apache/zookeeper/common/ZKConfig.java |  2 +-
 .../zookeeper/common/ZKHostnameVerifier.java       |  2 +-
 .../org/apache/zookeeper/jmx/MBeanRegistry.java    |  4 +--
 .../apache/zookeeper/server/ContainerManager.java  |  4 +--
 .../java/org/apache/zookeeper/server/DataNode.java |  2 +-
 .../java/org/apache/zookeeper/server/DataTree.java | 28 +++++++++---------
 .../org/apache/zookeeper/server/ExpiryQueue.java   |  8 ++---
 .../zookeeper/server/FinalRequestProcessor.java    |  2 +-
 .../org/apache/zookeeper/server/NIOServerCnxn.java |  2 +-
 .../zookeeper/server/NIOServerCnxnFactory.java     | 16 +++++-----
 .../zookeeper/server/NettyServerCnxnFactory.java   |  2 +-
 .../zookeeper/server/PrepRequestProcessor.java     |  4 +--
 .../org/apache/zookeeper/server/PurgeTxnLog.java   |  2 +-
 .../zookeeper/server/ReferenceCountedACLCache.java |  8 ++---
 .../apache/zookeeper/server/RequestThrottler.java  |  2 +-
 .../org/apache/zookeeper/server/ServerCnxn.java    |  2 +-
 .../apache/zookeeper/server/ServerCnxnFactory.java |  6 ++--
 .../zookeeper/server/SessionTrackerImpl.java       |  8 ++---
 .../apache/zookeeper/server/SnapshotComparer.java  | 10 +++----
 .../apache/zookeeper/server/SnapshotFormatter.java |  2 +-
 .../zookeeper/server/SnapshotRecursiveSummary.java |  2 +-
 .../zookeeper/server/SyncRequestProcessor.java     |  2 +-
 .../org/apache/zookeeper/server/WorkerService.java |  2 +-
 .../org/apache/zookeeper/server/ZKDatabase.java    |  2 +-
 .../apache/zookeeper/server/ZooKeeperServer.java   |  2 +-
 .../zookeeper/server/ZooKeeperServerConf.java      |  2 +-
 .../apache/zookeeper/server/admin/CommandBase.java |  2 +-
 .../zookeeper/server/admin/CommandResponse.java    |  4 +--
 .../apache/zookeeper/server/admin/Commands.java    |  4 +--
 .../zookeeper/server/admin/JettyAdminServer.java   |  2 +-
 .../auth/EnsembleAuthenticationProvider.java       |  2 +-
 .../apache/zookeeper/server/auth/KerberosName.java |  2 +-
 .../server/auth/SaslServerCallbackHandler.java     |  2 +-
 .../server/command/FourLetterCommands.java         |  4 +--
 .../zookeeper/server/metric/AvgMinMaxCounter.java  |  2 +-
 .../server/metric/AvgMinMaxPercentileCounter.java  |  2 +-
 .../zookeeper/server/metric/SimpleCounter.java     |  2 +-
 .../zookeeper/server/persistence/FileSnap.java     |  4 +--
 .../zookeeper/server/persistence/FileTxnLog.java   |  2 +-
 .../apache/zookeeper/server/persistence/Util.java  |  2 +-
 .../zookeeper/server/quorum/CommitProcessor.java   |  4 +--
 .../server/quorum/FastLeaderElection.java          |  8 ++---
 .../server/quorum/FollowerRequestProcessor.java    |  2 +-
 .../server/quorum/FollowerZooKeeperServer.java     |  4 +--
 .../org/apache/zookeeper/server/quorum/Leader.java | 32 ++++++++++----------
 .../apache/zookeeper/server/quorum/Learner.java    |  2 +-
 .../zookeeper/server/quorum/LearnerHandler.java    |  2 +-
 .../server/quorum/LearnerSessionTracker.java       | 10 +++----
 .../zookeeper/server/quorum/ObserverMaster.java    |  2 +-
 .../server/quorum/ObserverRequestProcessor.java    |  2 +-
 .../server/quorum/ObserverZooKeeperServer.java     |  2 +-
 .../apache/zookeeper/server/quorum/QuorumPeer.java | 16 +++++-----
 .../zookeeper/server/quorum/QuorumPeerConfig.java  |  2 +-
 .../server/quorum/ReadOnlyRequestProcessor.java    |  2 +-
 .../server/quorum/SyncedLearnerTracker.java        |  2 +-
 .../server/quorum/UpgradeableSessionTracker.java   |  4 +--
 .../server/quorum/flexible/QuorumHierarchical.java | 16 +++++-----
 .../server/quorum/flexible/QuorumMaj.java          |  6 ++--
 .../apache/zookeeper/server/util/BitHashSet.java   |  2 +-
 .../org/apache/zookeeper/server/util/BitMap.java   |  4 +--
 .../zookeeper/server/util/SerializeUtils.java      |  2 +-
 .../server/watch/WatchManagerOptimized.java        | 16 +++++-----
 .../zookeeper/server/watch/WatcherCleaner.java     |  4 +--
 .../zookeeper/server/watch/WatchesPathReport.java  |  4 +--
 .../zookeeper/server/watch/WatchesReport.java      |  4 +--
 .../zookeeper/server/watch/WatchesSummary.java     |  2 +-
 .../org/apache/zookeeper/GetEphemeralsTest.java    |  6 ++--
 .../org/apache/zookeeper/JaasConfiguration.java    |  4 +--
 .../org/apache/zookeeper/RemoveWatchesTest.java    | 10 +++----
 .../java/org/apache/zookeeper/SaslAuthTest.java    | 10 +++----
 .../java/org/apache/zookeeper/ZooKeeperTest.java   | 12 ++++----
 .../java/org/apache/zookeeper/server/CRCTest.java  |  2 +-
 .../server/FinalRequestProcessorTest.java          | 10 +++----
 .../zookeeper/server/PrepRequestProcessorTest.java |  2 +-
 .../org/apache/zookeeper/server/PurgeTxnTest.java  | 28 +++++++++---------
 .../server/ReferenceCountedACLCacheTest.java       |  6 ++--
 .../zookeeper/server/SnapshotDigestTest.java       |  2 +-
 .../apache/zookeeper/server/TxnLogDigestTest.java  |  2 +-
 .../server/admin/CommandResponseTest.java          |  2 +-
 .../zookeeper/server/admin/CommandsTest.java       |  4 +--
 .../zookeeper/server/quorum/CnxManagerTest.java    |  4 +--
 .../quorum/CommitProcessorConcurrencyTest.java     | 22 +++++++-------
 .../server/quorum/CommitProcessorTest.java         |  6 ++--
 .../quorum/FLEBackwardElectionRoundTest.java       |  2 +-
 .../server/quorum/FLELostMessageTest.java          |  2 +-
 .../server/quorum/FLEOutOfElectionTest.java        | 12 ++++----
 .../server/quorum/FuzzySnapshotRelatedTest.java    |  4 +--
 .../zookeeper/server/quorum/LeaderBeanTest.java    |  4 +--
 .../server/quorum/LearnerHandlerTest.java          |  4 +--
 .../server/quorum/LearnerSyncThrottlerTest.java    |  2 +-
 .../zookeeper/server/quorum/QuorumDigestTest.java  |  2 +-
 .../zookeeper/server/quorum/QuorumPeerTest.java    |  2 +-
 .../server/quorum/QuorumPeerTestBase.java          |  2 +-
 .../server/quorum/QuorumRequestPipelineTest.java   |  2 +-
 .../zookeeper/server/quorum/QuorumSSLTest.java     |  2 +-
 .../server/quorum/ReconfigBackupTest.java          |  6 ++--
 .../server/quorum/ReconfigFailureCasesTest.java    | 12 ++++----
 .../server/quorum/ReconfigLegacyTest.java          |  6 ++--
 .../server/quorum/ReconfigRecoveryTest.java        | 14 ++++-----
 .../server/quorum/SessionUpgradeQuorumTest.java    |  2 +-
 .../server/quorum/StandaloneDisabledTest.java      |  6 ++--
 .../zookeeper/server/quorum/WatchLeakTest.java     |  2 +-
 .../apache/zookeeper/server/quorum/Zab1_0Test.java |  2 +-
 .../apache/zookeeper/server/quorum/ZabUtils.java   |  2 +-
 .../server/quorum/auth/KerberosTestUtils.java      |  2 +-
 .../zookeeper/server/quorum/auth/MiniKdc.java      |  4 +--
 .../zookeeper/server/quorum/auth/MiniKdcTest.java  |  4 +--
 .../server/quorum/auth/QuorumAuthTestBase.java     |  2 +-
 .../server/quorum/auth/QuorumAuthUpgradeTest.java  | 10 +++----
 .../server/quorum/auth/QuorumDigestAuthTest.java   | 12 ++++----
 .../server/quorum/auth/QuorumKerberosAuthTest.java |  4 +--
 .../auth/QuorumKerberosHostBasedAuthTest.java      |  6 ++--
 .../zookeeper/server/util/BitHashSetTest.java      |  4 +--
 .../apache/zookeeper/server/util/BitMapTest.java   |  4 +--
 .../zookeeper/server/watch/WatchManagerTest.java   | 14 ++++-----
 .../zookeeper/server/watch/WatcherCleanerTest.java |  2 +-
 .../server/watch/WatcherOrBitSetTest.java          |  2 +-
 .../server/watch/WatchesPathReportTest.java        |  4 +--
 .../zookeeper/server/watch/WatchesReportTest.java  |  4 +--
 .../java/org/apache/zookeeper/test/ACLTest.java    |  6 ++--
 .../java/org/apache/zookeeper/test/AsyncOps.java   |  4 +--
 .../java/org/apache/zookeeper/test/AsyncTest.java  |  2 +-
 .../java/org/apache/zookeeper/test/ClientBase.java |  4 +--
 .../java/org/apache/zookeeper/test/ClientTest.java | 10 +++----
 .../zookeeper/test/DisconnectedWatcherTest.java    |  4 +--
 .../org/apache/zookeeper/test/FLENewEpochTest.java |  4 +--
 .../apache/zookeeper/test/FLEPredicateTest.java    |  2 +-
 .../org/apache/zookeeper/test/FLERestartTest.java  |  4 +--
 .../java/org/apache/zookeeper/test/FLETest.java    | 14 ++++-----
 .../apache/zookeeper/test/FLEZeroWeightTest.java   |  4 +--
 .../test/FollowerResyncConcurrencyTest.java        |  2 +-
 .../apache/zookeeper/test/GetChildren2Test.java    |  4 +--
 .../zookeeper/test/GetProposalFromTxnTest.java     |  2 +-
 .../zookeeper/test/HierarchicalQuorumTest.java     |  2 +-
 .../org/apache/zookeeper/test/IntegrityCheck.java  |  2 +-
 .../java/org/apache/zookeeper/test/JMXEnv.java     |  4 +--
 .../zookeeper/test/LoadFromLogNoServerTest.java    |  2 +-
 .../zookeeper/test/LocalSessionsOnlyTest.java      |  2 +-
 .../org/apache/zookeeper/test/LogChopperTest.java  |  2 +-
 .../zookeeper/test/MultiAsyncTransactionTest.java  |  2 +-
 .../apache/zookeeper/test/MultiOperationTest.java  | 18 ++++++------
 .../apache/zookeeper/test/ObserverMasterTest.java  |  4 +--
 .../java/org/apache/zookeeper/test/QuorumBase.java |  8 ++---
 .../zookeeper/test/QuorumBaseOracle_2Nodes.java    |  8 ++---
 .../java/org/apache/zookeeper/test/QuorumTest.java |  2 +-
 .../java/org/apache/zookeeper/test/QuorumUtil.java |  8 ++---
 .../zookeeper/test/ReconfigExceptionTest.java      |  6 ++--
 .../zookeeper/test/ReconfigMisconfigTest.java      |  2 +-
 .../org/apache/zookeeper/test/ReconfigTest.java    | 26 ++++++++---------
 .../test/SaslAuthDesignatedClientTest.java         |  2 +-
 .../org/apache/zookeeper/test/SessionTest.java     |  2 +-
 .../zookeeper/test/SessionTrackerCheckTest.java    |  2 +-
 .../org/apache/zookeeper/test/StandaloneTest.java  |  2 +-
 .../zookeeper/test/StaticHostProviderTest.java     | 34 +++++++++++-----------
 .../org/apache/zookeeper/test/TruncateTest.java    |  2 +-
 .../test/WatchEventWhenAutoResetTest.java          |  2 +-
 .../org/apache/zookeeper/test/WatcherFuncTest.java | 12 ++++----
 .../org/apache/zookeeper/test/WatcherTest.java     |  2 +-
 .../apache/zookeeper/test/ZooKeeperTestClient.java |  2 +-
 175 files changed, 463 insertions(+), 463 deletions(-)

diff --git a/zookeeper-jute/src/main/java/org/apache/jute/RecordWriter.java b/zookeeper-jute/src/main/java/org/apache/jute/RecordWriter.java
index 259a683e0..a6d74a978 100644
--- a/zookeeper-jute/src/main/java/org/apache/jute/RecordWriter.java
+++ b/zookeeper-jute/src/main/java/org/apache/jute/RecordWriter.java
@@ -32,7 +32,7 @@ public class RecordWriter {
     private OutputArchive archive;
 
     static HashMap<String, Method> constructFactory() {
-        HashMap<String, Method> factory = new HashMap<String, Method>();
+        HashMap<String, Method> factory = new HashMap<>();
 
         try {
             factory.put(
diff --git a/zookeeper-jute/src/main/java/org/apache/jute/compiler/JRecord.java b/zookeeper-jute/src/main/java/org/apache/jute/compiler/JRecord.java
index 13cb1ed29..c26e24910 100644
--- a/zookeeper-jute/src/main/java/org/apache/jute/compiler/JRecord.java
+++ b/zookeeper-jute/src/main/java/org/apache/jute/compiler/JRecord.java
@@ -143,7 +143,7 @@ public class JRecord extends JCompType {
         return "    a_.WriteRecord(" + fname + ",\"" + tag + "\");\n";
     }
 
-    static Map<String, String> vectorStructs = new HashMap<String, String>();
+    static Map<String, String> vectorStructs = new HashMap<>();
 
     public void genCCode(FileWriter h, FileWriter c) throws IOException {
         for (JField f : mFields) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java b/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java
index 96ff8eb08..c29a2141d 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java
@@ -140,7 +140,7 @@ public class ClientCnxn {
 
     }
 
-    private final CopyOnWriteArraySet<AuthData> authInfo = new CopyOnWriteArraySet<AuthData>();
+    private final CopyOnWriteArraySet<AuthData> authInfo = new CopyOnWriteArraySet<>();
 
     /**
      * These are the packets that have been sent and are waiting for a response.
@@ -150,7 +150,7 @@ public class ClientCnxn {
     /**
      * These are the packets that need to be sent.
      */
-    private final LinkedBlockingDeque<Packet> outgoingQueue = new LinkedBlockingDeque<Packet>();
+    private final LinkedBlockingDeque<Packet> outgoingQueue = new LinkedBlockingDeque<>();
 
     private int connectTimeout;
 
@@ -465,7 +465,7 @@ public class ClientCnxn {
 
     class EventThread extends ZooKeeperThread {
 
-        private final LinkedBlockingQueue<Object> waitingEvents = new LinkedBlockingQueue<Object>();
+        private final LinkedBlockingQueue<Object> waitingEvents = new LinkedBlockingQueue<>();
 
         /** This is really the queued session state until the event
          * thread actually processes the event and hands it to the watcher.
@@ -1019,11 +1019,11 @@ public class ClientCnxn {
 
                     while (dataWatchesIter.hasNext() || existWatchesIter.hasNext() || childWatchesIter.hasNext()
                             || persistentWatchesIter.hasNext() || persistentRecursiveWatchesIter.hasNext()) {
-                        List<String> dataWatchesBatch = new ArrayList<String>();
-                        List<String> existWatchesBatch = new ArrayList<String>();
-                        List<String> childWatchesBatch = new ArrayList<String>();
-                        List<String> persistentWatchesBatch = new ArrayList<String>();
-                        List<String> persistentRecursiveWatchesBatch = new ArrayList<String>();
+                        List<String> dataWatchesBatch = new ArrayList<>();
+                        List<String> existWatchesBatch = new ArrayList<>();
+                        List<String> childWatchesBatch = new ArrayList<>();
+                        List<String> persistentWatchesBatch = new ArrayList<>();
+                        List<String> persistentRecursiveWatchesBatch = new ArrayList<>();
                         int batchLength = 0;
 
                         // Note, we may exceed our max length by a bit when we add the last
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Environment.java b/zookeeper-server/src/main/java/org/apache/zookeeper/Environment.java
index 9ec38a197..425882010 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/Environment.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/Environment.java
@@ -59,7 +59,7 @@ public class Environment {
     }
 
     public static List<Entry> list() {
-        List<Entry> l = new ArrayList<Entry>();
+        List<Entry> l = new ArrayList<>();
         put(l, "zookeeper.version", Version.getFullVersion());
 
         try {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/KeeperException.java b/zookeeper-server/src/main/java/org/apache/zookeeper/KeeperException.java
index ef38763f4..eace4adf1 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/KeeperException.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/KeeperException.java
@@ -417,7 +417,7 @@ public abstract class KeeperException extends Exception {
          */
         THROTTLEDOP (-127);
 
-        private static final Map<Integer, Code> lookup = new HashMap<Integer, Code>();
+        private static final Map<Integer, Code> lookup = new HashMap<>();
 
         static {
             for (Code c : EnumSet.allOf(Code.class)) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/MultiOperationRecord.java b/zookeeper-server/src/main/java/org/apache/zookeeper/MultiOperationRecord.java
index d43e72841..4ddacacea 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/MultiOperationRecord.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/MultiOperationRecord.java
@@ -43,7 +43,7 @@ import org.apache.zookeeper.proto.SetDataRequest;
  */
 public class MultiOperationRecord implements Record, Iterable<Op> {
 
-    private List<Op> ops = new ArrayList<Op>();
+    private List<Op> ops = new ArrayList<>();
     private Op.OpKind opKind = null;
 
     public MultiOperationRecord() {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/MultiResponse.java b/zookeeper-server/src/main/java/org/apache/zookeeper/MultiResponse.java
index 16d2fb29d..2e678c93c 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/MultiResponse.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/MultiResponse.java
@@ -41,7 +41,7 @@ import org.apache.zookeeper.proto.SetDataResponse;
  */
 public class MultiResponse implements Record, Iterable<OpResult> {
 
-    private List<OpResult> results = new ArrayList<OpResult>();
+    private List<OpResult> results = new ArrayList<>();
 
     public void add(OpResult x) {
         results.add(x);
@@ -101,7 +101,7 @@ public class MultiResponse implements Record, Iterable<OpResult> {
 
     @Override
     public void deserialize(InputArchive archive, String tag) throws IOException {
-        results = new ArrayList<OpResult>();
+        results = new ArrayList<>();
 
         archive.startRecord(tag);
         MultiHeader h = new MultiHeader();
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Transaction.java b/zookeeper-server/src/main/java/org/apache/zookeeper/Transaction.java
index 7a6ba73c9..20913c414 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/Transaction.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/Transaction.java
@@ -34,7 +34,7 @@ import org.apache.zookeeper.data.ACL;
 public class Transaction {
 
     private ZooKeeper zk;
-    private List<Op> ops = new ArrayList<Op>();
+    private List<Op> ops = new ArrayList<>();
 
     protected Transaction(ZooKeeper zk) {
         this.zk = zk;
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZKUtil.java b/zookeeper-server/src/main/java/org/apache/zookeeper/ZKUtil.java
index 2ccdfc877..ae0f3b8a2 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/ZKUtil.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ZKUtil.java
@@ -40,7 +40,7 @@ import org.slf4j.LoggerFactory;
 public class ZKUtil {
 
     private static final Logger LOG = LoggerFactory.getLogger(ZKUtil.class);
-    private static final Map<Integer, String> permCache = new ConcurrentHashMap<Integer, String>();
+    private static final Map<Integer, String> permCache = new ConcurrentHashMap<>();
     /**
      * Recursively delete the node with the given path.
      * <p>
@@ -202,7 +202,7 @@ public class ZKUtil {
         ZooKeeper zk,
         final String pathRoot) throws KeeperException, InterruptedException {
         Queue<String> queue = new ArrayDeque<>();
-        List<String> tree = new ArrayList<String>();
+        List<String> tree = new ArrayList<>();
         queue.add(pathRoot);
         tree.add(pathRoot);
         while (!queue.isEmpty()) {
@@ -307,4 +307,4 @@ public class ZKUtil {
         }
         return sb.toString();
     }
-}
\ No newline at end of file
+}
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooDefs.java b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooDefs.java
index d74bb8007..77c3de37c 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooDefs.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooDefs.java
@@ -138,19 +138,19 @@ public class ZooDefs {
          * This is a completely open ACL .
          */
         @SuppressFBWarnings(value = "MS_MUTABLE_COLLECTION", justification = "Cannot break API")
-        ArrayList<ACL> OPEN_ACL_UNSAFE = new ArrayList<ACL>(Collections.singletonList(new ACL(Perms.ALL, ANYONE_ID_UNSAFE)));
+        ArrayList<ACL> OPEN_ACL_UNSAFE = new ArrayList<>(Collections.singletonList(new ACL(Perms.ALL, ANYONE_ID_UNSAFE)));
 
         /**
          * This ACL gives the creators authentication id's all permissions.
          */
         @SuppressFBWarnings(value = "MS_MUTABLE_COLLECTION", justification = "Cannot break API")
-        ArrayList<ACL> CREATOR_ALL_ACL = new ArrayList<ACL>(Collections.singletonList(new ACL(Perms.ALL, AUTH_IDS)));
+        ArrayList<ACL> CREATOR_ALL_ACL = new ArrayList<>(Collections.singletonList(new ACL(Perms.ALL, AUTH_IDS)));
 
         /**
          * This ACL gives the world the ability to read.
          */
         @SuppressFBWarnings(value = "MS_MUTABLE_COLLECTION", justification = "Cannot break API")
-        ArrayList<ACL> READ_ACL_UNSAFE = new ArrayList<ACL>(Collections.singletonList(new ACL(Perms.READ, ANYONE_ID_UNSAFE)));
+        ArrayList<ACL> READ_ACL_UNSAFE = new ArrayList<>(Collections.singletonList(new ACL(Perms.READ, ANYONE_ID_UNSAFE)));
 
     }
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
index 127f5a2a3..09006ed10 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
@@ -285,7 +285,7 @@ public class ZooKeeper implements AutoCloseable {
                 synchronized (watches) {
                     Set<Watcher> watchers = watches.get(clientPath);
                     if (watchers == null) {
-                        watchers = new HashSet<Watcher>();
+                        watchers = new HashSet<>();
                         watches.put(clientPath, watchers);
                     }
                     watchers.add(watcher);
@@ -1665,7 +1665,7 @@ public class ZooKeeper implements AutoCloseable {
     }
 
     private List<OpResult> validatePath(Iterable<Op> ops) {
-        List<OpResult> results = new ArrayList<OpResult>();
+        List<OpResult> results = new ArrayList<>();
         boolean error = false;
         for (Op op : ops) {
             try {
@@ -1694,7 +1694,7 @@ public class ZooKeeper implements AutoCloseable {
 
     private MultiOperationRecord generateMultiTransaction(Iterable<Op> ops) {
         // reconstructing transaction with the chroot prefix
-        List<Op> transaction = new ArrayList<Op>();
+        List<Op> transaction = new ArrayList<>();
         for (Op op : ops) {
             transaction.add(withRootPrefix(op));
         }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeperMain.java b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeperMain.java
index 4ee378fac..ebe810012 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeperMain.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeperMain.java
@@ -59,11 +59,11 @@ import org.slf4j.LoggerFactory;
 public class ZooKeeperMain {
 
     private static final Logger LOG = LoggerFactory.getLogger(ZooKeeperMain.class);
-    static final Map<String, String> commandMap = new HashMap<String, String>();
-    static final Map<String, CliCommand> commandMapCli = new HashMap<String, CliCommand>();
+    static final Map<String, String> commandMap = new HashMap<>();
+    static final Map<String, CliCommand> commandMapCli = new HashMap<>();
 
     protected MyCommandOptions cl = new MyCommandOptions();
-    protected HashMap<Integer, String> history = new HashMap<Integer, String>();
+    protected HashMap<Integer, String> history = new HashMap<>();
     protected int commandCount = 0;
     protected boolean printWatches = true;
     protected int exitCode = ExitCode.EXECUTION_FINISHED.getValue();
@@ -95,7 +95,7 @@ public class ZooKeeperMain {
 
     static void usage() {
         System.err.println("ZooKeeper -server host:port -client-configuration properties-file cmd args");
-        List<String> cmdList = new ArrayList<String>(commandMap.keySet());
+        List<String> cmdList = new ArrayList<>(commandMap.keySet());
         Collections.sort(cmdList);
         for (String cmd : cmdList) {
             System.err.println("\t" + cmd + " " + commandMap.get(cmd));
@@ -126,7 +126,7 @@ public class ZooKeeperMain {
      */
     static class MyCommandOptions {
 
-        private Map<String, String> options = new HashMap<String, String>();
+        private Map<String, String> options = new HashMap<>();
         private List<String> cmdArgs = null;
         private String command = null;
         public static final Pattern ARGS_PATTERN = Pattern.compile("\\s*([^\"\']\\S*|\"[^\"]*\"|'[^']*')\\s*");
@@ -188,7 +188,7 @@ public class ZooKeeperMain {
 
                 if (!opt.startsWith("-")) {
                     command = opt;
-                    cmdArgs = new ArrayList<String>();
+                    cmdArgs = new ArrayList<>();
                     cmdArgs.add(command);
                     while (it.hasNext()) {
                         cmdArgs.add(it.next());
@@ -207,7 +207,7 @@ public class ZooKeeperMain {
         public boolean parseCommand(String cmdstring) {
             Matcher matcher = ARGS_PATTERN.matcher(cmdstring);
 
-            List<String> args = new LinkedList<String>();
+            List<String> args = new LinkedList<>();
             while (matcher.find()) {
                 String value = matcher.group(1);
                 if (QUOTED_PATTERN.matcher(value).matches()) {
@@ -237,7 +237,7 @@ public class ZooKeeperMain {
     }
 
     public static List<String> getCommands() {
-        List<String> cmdList = new ArrayList<String>(commandMap.keySet());
+        List<String> cmdList = new ArrayList<>(commandMap.keySet());
         Collections.sort(cmdList);
         return cmdList;
     }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java b/zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java
index f3cb9a7c7..ff7f15443 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java
@@ -37,7 +37,7 @@ public class AclParser {
     public static List<ACL> parse(String aclString) {
         List<ACL> acl;
         String[] acls = aclString.split(",");
-        acl = new ArrayList<ACL>();
+        acl = new ArrayList<>();
         for (String a : acls) {
             int firstColon = a.indexOf(':');
             int lastColon = a.lastIndexOf(':');
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ConnectStringParser.java b/zookeeper-server/src/main/java/org/apache/zookeeper/client/ConnectStringParser.java
index d677b69d2..e2409921f 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ConnectStringParser.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/client/ConnectStringParser.java
@@ -41,7 +41,7 @@ public final class ConnectStringParser {
 
     private final String chrootPath;
 
-    private final ArrayList<InetSocketAddress> serverAddresses = new ArrayList<InetSocketAddress>();
+    private final ArrayList<InetSocketAddress> serverAddresses = new ArrayList<>();
 
     /**
      * Parse host and port by spliting client connectString
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/StaticHostProvider.java b/zookeeper-server/src/main/java/org/apache/zookeeper/client/StaticHostProvider.java
index 3f1ce4fdd..bfd771943 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/client/StaticHostProvider.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/client/StaticHostProvider.java
@@ -50,7 +50,7 @@ public final class StaticHostProvider implements HostProvider {
 
     private static final Logger LOG = LoggerFactory.getLogger(StaticHostProvider.class);
 
-    private List<InetSocketAddress> serverAddresses = new ArrayList<InetSocketAddress>(5);
+    private List<InetSocketAddress> serverAddresses = new ArrayList<>(5);
 
     private Random sourceOfRandomness;
     private int lastIndex = -1;
@@ -62,9 +62,9 @@ public final class StaticHostProvider implements HostProvider {
      */
     private boolean reconfigMode = false;
 
-    private final List<InetSocketAddress> oldServers = new ArrayList<InetSocketAddress>(5);
+    private final List<InetSocketAddress> oldServers = new ArrayList<>(5);
 
-    private final List<InetSocketAddress> newServers = new ArrayList<InetSocketAddress>(5);
+    private final List<InetSocketAddress> newServers = new ArrayList<>(5);
 
     private int currentIndexOld = -1;
     private int currentIndexNew = -1;
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/StringUtils.java b/zookeeper-server/src/main/java/org/apache/zookeeper/common/StringUtils.java
index 77237433e..481a3aa2b 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/common/StringUtils.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/common/StringUtils.java
@@ -34,7 +34,7 @@ public class StringUtils {
      */
     public static List<String> split(String value, String separator) {
         String[] splits = value.split(separator);
-        List<String> results = new ArrayList<String>();
+        List<String> results = new ArrayList<>();
         for (int i = 0; i < splits.length; i++) {
             splits[i] = splits[i].trim();
             if (splits[i].length() > 0) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java b/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java
index 1d1a6c9ea..5bd736ea8 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java
@@ -51,7 +51,7 @@ public class ZKConfig {
     public static final String KINIT_COMMAND = "zookeeper.kinit";
     public static final String JGSS_NATIVE = "sun.security.jgss.native";
 
-    private final Map<String, String> properties = new HashMap<String, String>();
+    private final Map<String, String> properties = new HashMap<>();
 
     /**
      * properties, which are common to both client and server, are initialized
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKHostnameVerifier.java b/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKHostnameVerifier.java
index db5af19c5..4abe29bfb 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKHostnameVerifier.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKHostnameVerifier.java
@@ -320,7 +320,7 @@ final class ZKHostnameVerifier implements HostnameVerifier {
             if (entries == null) {
                 return Collections.emptyList();
             }
-            final List<SubjectName> result = new ArrayList<SubjectName>();
+            final List<SubjectName> result = new ArrayList<>();
             for (List<?> entry : entries) {
                 final Integer type = entry.size() >= 2 ? (Integer) entry.get(0) : null;
                 if (type != null) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/jmx/MBeanRegistry.java b/zookeeper-server/src/main/java/org/apache/zookeeper/jmx/MBeanRegistry.java
index 5bfa8bb5c..f91b9674a 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/jmx/MBeanRegistry.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/jmx/MBeanRegistry.java
@@ -47,7 +47,7 @@ public class MBeanRegistry {
 
     private final Object LOCK = new Object();
 
-    private Map<ZKMBeanInfo, String> mapBean2Path = new ConcurrentHashMap<ZKMBeanInfo, String>();
+    private Map<ZKMBeanInfo, String> mapBean2Path = new ConcurrentHashMap<>();
 
     private MBeanServer mBeanServer;
 
@@ -135,7 +135,7 @@ public class MBeanRegistry {
      *         unregistered. Mainly for testing purposes.
      */
     public Set<ZKMBeanInfo> getRegisteredBeans() {
-        return new HashSet<ZKMBeanInfo>(mapBean2Path.keySet());
+        return new HashSet<>(mapBean2Path.keySet());
     }
 
     /**
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ContainerManager.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ContainerManager.java
index 2664348c2..5362b9790 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ContainerManager.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ContainerManager.java
@@ -48,7 +48,7 @@ public class ContainerManager {
     private final int maxPerMinute;
     private final long maxNeverUsedIntervalMs;
     private final Timer timer;
-    private final AtomicReference<TimerTask> task = new AtomicReference<TimerTask>(null);
+    private final AtomicReference<TimerTask> task = new AtomicReference<>(null);
 
     /**
      * @param zkDb the ZK database
@@ -157,7 +157,7 @@ public class ContainerManager {
 
     // VisibleForTesting
     protected Collection<String> getCandidates() {
-        Set<String> candidates = new HashSet<String>();
+        Set<String> candidates = new HashSet<>();
         for (String containerPath : zkDb.getDataTree().getContainers()) {
             DataNode node = zkDb.getDataTree().getNode(containerPath);
             if ((node != null) && node.getChildren().isEmpty()) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataNode.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataNode.java
index 8ac8f6185..44e89c903 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataNode.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataNode.java
@@ -101,7 +101,7 @@ public class DataNode implements Record {
     public synchronized boolean addChild(String child) {
         if (children == null) {
             // let's be conservative on the typical number of children
-            children = new HashSet<String>(8);
+            children = new HashSet<>(8);
         }
         return children.add(child);
     }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java
index cd45a7c34..d60528224 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java
@@ -152,17 +152,17 @@ public class DataTree {
     /**
      * This hashtable lists the paths of the ephemeral nodes of a session.
      */
-    private final Map<Long, HashSet<String>> ephemerals = new ConcurrentHashMap<Long, HashSet<String>>();
+    private final Map<Long, HashSet<String>> ephemerals = new ConcurrentHashMap<>();
 
     /**
      * This set contains the paths of all container nodes
      */
-    private final Set<String> containers = Collections.newSetFromMap(new ConcurrentHashMap<String, Boolean>());
+    private final Set<String> containers = Collections.newSetFromMap(new ConcurrentHashMap<>());
 
     /**
      * This set contains the paths of all ttl nodes
      */
-    private final Set<String> ttls = Collections.newSetFromMap(new ConcurrentHashMap<String, Boolean>());
+    private final Set<String> ttls = Collections.newSetFromMap(new ConcurrentHashMap<>());
 
     private final ReferenceCountedACLCache aclCache = new ReferenceCountedACLCache();
 
@@ -194,7 +194,7 @@ public class DataTree {
     public Set<String> getEphemerals(long sessionId) {
         HashSet<String> retv = ephemerals.get(sessionId);
         if (retv == null) {
-            return new HashSet<String>();
+            return new HashSet<>();
         }
         Set<String> cloned = null;
         synchronized (retv) {
@@ -204,11 +204,11 @@ public class DataTree {
     }
 
     public Set<String> getContainers() {
-        return new HashSet<String>(containers);
+        return new HashSet<>(containers);
     }
 
     public Set<String> getTtls() {
-        return new HashSet<String>(ttls);
+        return new HashSet<>(ttls);
     }
 
     public Collection<Long> getSessions() {
@@ -496,7 +496,7 @@ public class DataTree {
             } else if (ephemeralOwner != 0) {
                 HashSet<String> list = ephemerals.get(ephemeralOwner);
                 if (list == null) {
-                    list = new HashSet<String>();
+                    list = new HashSet<>();
                     ephemerals.put(ephemeralOwner, list);
                 }
                 synchronized (list) {
@@ -730,7 +730,7 @@ public class DataTree {
             if (stat != null) {
                 n.copyStat(stat);
             }
-            children = new ArrayList<String>(n.getChildren());
+            children = new ArrayList<>(n.getChildren());
 
             if (watcher != null) {
                 childWatches.addWatch(path, watcher);
@@ -781,7 +781,7 @@ public class DataTree {
             if (stat != null) {
                 n.copyStat(stat);
             }
-            return new ArrayList<ACL>(aclCache.convertLong(n.acl));
+            return new ArrayList<>(aclCache.convertLong(n.acl));
         }
     }
 
@@ -965,7 +965,7 @@ public class DataTree {
             case OpCode.multi:
                 MultiTxn multiTxn = (MultiTxn) txn;
                 List<Txn> txns = multiTxn.getTxns();
-                rc.multiResult = new ArrayList<ProcessTxnResult>();
+                rc.multiResult = new ArrayList<>();
                 boolean failed = false;
                 for (Txn subtxn : txns) {
                     if (subtxn.getType() == OpCode.error) {
@@ -1389,7 +1389,7 @@ public class DataTree {
                 } else if (eowner != 0) {
                     HashSet<String> list = ephemerals.get(eowner);
                     if (list == null) {
-                        list = new HashSet<String>();
+                        list = new HashSet<>();
                         ephemerals.put(eowner, list);
                     }
                     list.add(path);
@@ -1490,10 +1490,10 @@ public class DataTree {
      * @return map of session ID to sets of ephemeral znodes
      */
     public Map<Long, Set<String>> getEphemerals() {
-        Map<Long, Set<String>> ephemeralsCopy = new HashMap<Long, Set<String>>();
+        Map<Long, Set<String>> ephemeralsCopy = new HashMap<>();
         for (Entry<Long, HashSet<String>> e : ephemerals.entrySet()) {
             synchronized (e.getValue()) {
-                ephemeralsCopy.put(e.getKey(), new HashSet<String>(e.getValue()));
+                ephemeralsCopy.put(e.getKey(), new HashSet<>(e.getValue()));
             }
         }
         return ephemeralsCopy;
@@ -1894,7 +1894,7 @@ public class DataTree {
     public List<ZxidDigest> getDigestLog() {
         synchronized (digestLog) {
             // Return a copy of current digest log
-            return new LinkedList<ZxidDigest>(digestLog);
+            return new LinkedList<>(digestLog);
         }
     }
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ExpiryQueue.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ExpiryQueue.java
index abc2e5d14..a147f3b7d 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ExpiryQueue.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ExpiryQueue.java
@@ -34,13 +34,13 @@ import org.apache.zookeeper.common.Time;
  */
 public class ExpiryQueue<E> {
 
-    private final ConcurrentHashMap<E, Long> elemMap = new ConcurrentHashMap<E, Long>();
+    private final ConcurrentHashMap<E, Long> elemMap = new ConcurrentHashMap<>();
     /**
      * The maximum number of buckets is equal to max timeout/expirationInterval,
      * so the expirationInterval should not be too small compared to the
      * max timeout that this expiry queue needs to maintain.
      */
-    private final ConcurrentHashMap<Long, Set<E>> expiryMap = new ConcurrentHashMap<Long, Set<E>>();
+    private final ConcurrentHashMap<Long, Set<E>> expiryMap = new ConcurrentHashMap<>();
 
     private final AtomicLong nextExpirationTime = new AtomicLong();
     private final int expirationInterval;
@@ -95,7 +95,7 @@ public class ExpiryQueue<E> {
         Set<E> set = expiryMap.get(newExpiryTime);
         if (set == null) {
             // Construct a ConcurrentHashSet using a ConcurrentHashMap
-            set = Collections.newSetFromMap(new ConcurrentHashMap<E, Boolean>());
+            set = Collections.newSetFromMap(new ConcurrentHashMap<>());
             // Put the new set in the map, but only if another thread
             // hasn't beaten us to it
             Set<E> existingSet = expiryMap.putIfAbsent(newExpiryTime, set);
@@ -158,7 +158,7 @@ public class ExpiryQueue<E> {
         pwriter.print(")/(");
         pwriter.print(elemMap.size());
         pwriter.println("):");
-        ArrayList<Long> keys = new ArrayList<Long>(expiryMap.keySet());
+        ArrayList<Long> keys = new ArrayList<>(expiryMap.keySet());
         Collections.sort(keys);
         for (long time : keys) {
             Set<E> set = expiryMap.get(time);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/FinalRequestProcessor.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/FinalRequestProcessor.java
index 693a6b86e..6f61cdd5d 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/FinalRequestProcessor.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/FinalRequestProcessor.java
@@ -442,7 +442,7 @@ public class FinalRequestProcessor implements RequestProcessor {
                         null);
                     rsp = new GetACLResponse(acl, stat);
                 } catch (KeeperException.NoAuthException e) {
-                    List<ACL> acl1 = new ArrayList<ACL>(acl.size());
+                    List<ACL> acl1 = new ArrayList<>(acl.size());
                     for (ACL a : acl) {
                         if ("digest".equals(a.getId().getScheme())) {
                             Id id = a.getId();
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxn.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxn.java
index 5ffc81da1..1a8575cd4 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxn.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxn.java
@@ -74,7 +74,7 @@ public class NIOServerCnxn extends ServerCnxn {
 
     protected ByteBuffer incomingBuffer = lenBuffer;
 
-    private final Queue<ByteBuffer> outgoingBuffers = new LinkedBlockingQueue<ByteBuffer>();
+    private final Queue<ByteBuffer> outgoingBuffers = new LinkedBlockingQueue<>();
 
     private int sessionTimeout;
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxnFactory.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxnFactory.java
index f081ab24b..0372f4667 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxnFactory.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxnFactory.java
@@ -324,8 +324,8 @@ public class NIOServerCnxnFactory extends ServerCnxnFactory {
         public SelectorThread(int id) throws IOException {
             super("NIOServerCxnFactory.SelectorThread-" + id);
             this.id = id;
-            acceptedQueue = new LinkedBlockingQueue<SocketChannel>();
-            updateQueue = new LinkedBlockingQueue<SelectionKey>();
+            acceptedQueue = new LinkedBlockingQueue<>();
+            updateQueue = new LinkedBlockingQueue<>();
         }
 
         /**
@@ -403,7 +403,7 @@ public class NIOServerCnxnFactory extends ServerCnxnFactory {
                 selector.select();
 
                 Set<SelectionKey> selected = selector.selectedKeys();
-                ArrayList<SelectionKey> selectedList = new ArrayList<SelectionKey>(selected);
+                ArrayList<SelectionKey> selectedList = new ArrayList<>(selected);
                 Collections.shuffle(selectedList);
                 Iterator<SelectionKey> selectedKeys = selectedList.iterator();
                 while (!stopped && selectedKeys.hasNext()) {
@@ -587,7 +587,7 @@ public class NIOServerCnxnFactory extends ServerCnxnFactory {
     }
 
     // ipMap is used to limit connections per IP
-    private final ConcurrentHashMap<InetAddress, Set<NIOServerCnxn>> ipMap = new ConcurrentHashMap<InetAddress, Set<NIOServerCnxn>>();
+    private final ConcurrentHashMap<InetAddress, Set<NIOServerCnxn>> ipMap = new ConcurrentHashMap<>();
 
     protected int maxClientCnxns = 60;
     int listenBacklog = -1;
@@ -613,7 +613,7 @@ public class NIOServerCnxnFactory extends ServerCnxnFactory {
     private volatile boolean stopped = true;
     private ConnectionExpirerThread expirerThread;
     private AcceptThread acceptThread;
-    private final Set<SelectorThread> selectorThreads = new HashSet<SelectorThread>();
+    private final Set<SelectorThread> selectorThreads = new HashSet<>();
 
     @Override
     public void configure(InetSocketAddress addr, int maxcc, int backlog, boolean secure) throws IOException {
@@ -629,7 +629,7 @@ public class NIOServerCnxnFactory extends ServerCnxnFactory {
         // cnxnExpiryQueue. These don't need to be the same, but the expiring
         // interval passed into the ExpiryQueue() constructor below should be
         // less than or equal to the timeout.
-        cnxnExpiryQueue = new ExpiryQueue<NIOServerCnxn>(sessionlessCnxnTimeout);
+        cnxnExpiryQueue = new ExpiryQueue<>(sessionlessCnxnTimeout);
         expirerThread = new ConnectionExpirerThread();
 
         int numCores = Runtime.getRuntime().availableProcessors();
@@ -809,7 +809,7 @@ public class NIOServerCnxnFactory extends ServerCnxnFactory {
             // of 1 entry --  we need to set the initial cap
             // to 2 to avoid rehash when the first entry is added
             // Construct a ConcurrentHashSet using a ConcurrentHashMap
-            set = Collections.newSetFromMap(new ConcurrentHashMap<NIOServerCnxn, Boolean>(2));
+            set = Collections.newSetFromMap(new ConcurrentHashMap<>(2));
             // Put the new set in the map, but only if another thread
             // hasn't beaten us to it
             Set<NIOServerCnxn> existingSet = ipMap.putIfAbsent(addr, set);
@@ -946,7 +946,7 @@ public class NIOServerCnxnFactory extends ServerCnxnFactory {
 
     @Override
     public Iterable<Map<String, Object>> getAllConnectionInfo(boolean brief) {
-        HashSet<Map<String, Object>> info = new HashSet<Map<String, Object>>();
+        HashSet<Map<String, Object>> info = new HashSet<>();
         // No need to synchronize since cnxns is backed by a ConcurrentHashMap
         for (ServerCnxn c : cnxns) {
             info.add(c.getConnectionInfo(brief));
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java
index 68335485b..8d90a2c74 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java
@@ -809,7 +809,7 @@ public class NettyServerCnxnFactory extends ServerCnxnFactory {
 
     @Override
     public Iterable<Map<String, Object>> getAllConnectionInfo(boolean brief) {
-        Set<Map<String, Object>> info = new HashSet<Map<String, Object>>();
+        Set<Map<String, Object>> info = new HashSet<>();
         // No need to synchronize since cnxns is backed by a ConcurrentHashMap
         for (ServerCnxn c : cnxns) {
             info.add(c.getConnectionInfo(brief));
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/PrepRequestProcessor.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/PrepRequestProcessor.java
index 35293359f..8404ed9b8 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/PrepRequestProcessor.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/PrepRequestProcessor.java
@@ -214,7 +214,7 @@ public class PrepRequestProcessor extends ZooKeeperCriticalThread implements Req
      *         rolled back in any failure.
      */
     private Map<String, ChangeRecord> getPendingChanges(MultiOperationRecord multiRequest) {
-        Map<String, ChangeRecord> pendingChangeRecords = new HashMap<String, ChangeRecord>();
+        Map<String, ChangeRecord> pendingChangeRecords = new HashMap<>();
 
         for (Op op : multiRequest) {
             String path = op.getPath();
@@ -467,7 +467,7 @@ public class PrepRequestProcessor extends ZooKeeperCriticalThread implements Req
                     LOG.warn(msg);
                     throw new KeeperException.BadArgumentsException(msg);
                 }
-                Map<Long, QuorumServer> nextServers = new HashMap<Long, QuorumServer>(lastSeenQV.getAllMembers());
+                Map<Long, QuorumServer> nextServers = new HashMap<>(lastSeenQV.getAllMembers());
                 try {
                     if (leavingServers != null) {
                         for (String leaving : leavingServers) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/PurgeTxnLog.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/PurgeTxnLog.java
index d152fabd8..d2fa93f5a 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/PurgeTxnLog.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/PurgeTxnLog.java
@@ -109,7 +109,7 @@ public class PurgeTxnLog {
          * recoverability of all snapshots being retained.  We determine that log file here by
          * calling txnLog.getSnapshotLogs().
          */
-        final Set<File> retainedTxnLogs = new HashSet<File>();
+        final Set<File> retainedTxnLogs = new HashSet<>();
         retainedTxnLogs.addAll(Arrays.asList(txnLog.getSnapshotLogs(leastZxidToBeRetain)));
 
         /**
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ReferenceCountedACLCache.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ReferenceCountedACLCache.java
index 307a53de5..91b9ca5df 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ReferenceCountedACLCache.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ReferenceCountedACLCache.java
@@ -38,11 +38,11 @@ public class ReferenceCountedACLCache {
 
     private static final Logger LOG = LoggerFactory.getLogger(ReferenceCountedACLCache.class);
 
-    final Map<Long, List<ACL>> longKeyMap = new HashMap<Long, List<ACL>>();
+    final Map<Long, List<ACL>> longKeyMap = new HashMap<>();
 
-    final Map<List<ACL>, Long> aclKeyMap = new HashMap<List<ACL>, Long>();
+    final Map<List<ACL>, Long> aclKeyMap = new HashMap<>();
 
-    final Map<Long, AtomicLongWithEquals> referenceCounter = new HashMap<Long, AtomicLongWithEquals>();
+    final Map<Long, AtomicLongWithEquals> referenceCounter = new HashMap<>();
     private static final long OPEN_UNSAFE_ACL_ID = -1L;
 
     /**
@@ -107,7 +107,7 @@ public class ReferenceCountedACLCache {
         // keep read operations out of synchronization block
         while (i > 0) {
             Long val = ia.readLong("long");
-            List<ACL> aclList = new ArrayList<ACL>();
+            List<ACL> aclList = new ArrayList<>();
             Index j = ia.startVector("acls");
             if (j == null) {
                 throw new RuntimeException("Incorrent format of InputArchive when deserialize DataTree - missing acls");
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/RequestThrottler.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/RequestThrottler.java
index 4a401e5b9..5fb84d584 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/RequestThrottler.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/RequestThrottler.java
@@ -61,7 +61,7 @@ public class RequestThrottler extends ZooKeeperCriticalThread {
 
     private static final Logger LOG = LoggerFactory.getLogger(RequestThrottler.class);
 
-    private final LinkedBlockingQueue<Request> submittedRequests = new LinkedBlockingQueue<Request>();
+    private final LinkedBlockingQueue<Request> submittedRequests = new LinkedBlockingQueue<>();
 
     private final ZooKeeperServer zks;
     private volatile boolean stopping;
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerCnxn.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerCnxn.java
index 661c2aa2f..331f38d7f 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerCnxn.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerCnxn.java
@@ -547,7 +547,7 @@ public abstract class ServerCnxn implements Stats, Watcher {
     }
 
     public synchronized Map<String, Object> getConnectionInfo(boolean brief) {
-        Map<String, Object> info = new LinkedHashMap<String, Object>();
+        Map<String, Object> info = new LinkedHashMap<>();
         info.put("remote_socket_address", getRemoteSocketAddress());
         info.put("interest_ops", getInterestOps());
         info.put("outstanding_requests", getOutstandingRequests());
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerCnxnFactory.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerCnxnFactory.java
index 62eded3ae..88bf0cc1c 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerCnxnFactory.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerCnxnFactory.java
@@ -57,7 +57,7 @@ public abstract class ServerCnxnFactory {
     protected int maxCnxns;
 
     // sessionMap is used by closeSession()
-    final ConcurrentHashMap<Long, ServerCnxn> sessionMap = new ConcurrentHashMap<Long, ServerCnxn>();
+    final ConcurrentHashMap<Long, ServerCnxn> sessionMap = new ConcurrentHashMap<>();
 
     private static String loginUser = Login.SYSTEM_USER;
 
@@ -198,11 +198,11 @@ public abstract class ServerCnxnFactory {
 
     public abstract Iterable<Map<String, Object>> getAllConnectionInfo(boolean brief);
 
-    private final ConcurrentHashMap<ServerCnxn, ConnectionBean> connectionBeans = new ConcurrentHashMap<ServerCnxn, ConnectionBean>();
+    private final ConcurrentHashMap<ServerCnxn, ConnectionBean> connectionBeans = new ConcurrentHashMap<>();
 
     // Connection set is relied on heavily by four letter commands
     // Construct a ConcurrentHashSet using a ConcurrentHashMap
-    protected final Set<ServerCnxn> cnxns = Collections.newSetFromMap(new ConcurrentHashMap<ServerCnxn, Boolean>());
+    protected final Set<ServerCnxn> cnxns = Collections.newSetFromMap(new ConcurrentHashMap<>());
     public void unregisterConnection(ServerCnxn serverCnxn) {
         ConnectionBean jmxConnectionBean = connectionBeans.remove(serverCnxn);
         if (jmxConnectionBean != null) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SessionTrackerImpl.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SessionTrackerImpl.java
index e87119881..7066a6dbe 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SessionTrackerImpl.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SessionTrackerImpl.java
@@ -46,7 +46,7 @@ public class SessionTrackerImpl extends ZooKeeperCriticalThread implements Sessi
 
     private static final Logger LOG = LoggerFactory.getLogger(SessionTrackerImpl.class);
 
-    protected final ConcurrentHashMap<Long, SessionImpl> sessionsById = new ConcurrentHashMap<Long, SessionImpl>();
+    protected final ConcurrentHashMap<Long, SessionImpl> sessionsById = new ConcurrentHashMap<>();
 
     private final ExpiryQueue<SessionImpl> sessionExpiryQueue;
 
@@ -110,7 +110,7 @@ public class SessionTrackerImpl extends ZooKeeperCriticalThread implements Sessi
     public SessionTrackerImpl(SessionExpirer expirer, ConcurrentMap<Long, Integer> sessionsWithTimeout, int tickTime, long serverId, ZooKeeperServerListener listener) {
         super("SessionTracker", listener);
         this.expirer = expirer;
-        this.sessionExpiryQueue = new ExpiryQueue<SessionImpl>(tickTime);
+        this.sessionExpiryQueue = new ExpiryQueue<>(tickTime);
         this.sessionsWithTimeout = sessionsWithTimeout;
         this.nextSessionId.set(initializeNextSessionId(serverId));
         for (Entry<Long, Integer> e : sessionsWithTimeout.entrySet()) {
@@ -133,9 +133,9 @@ public class SessionTrackerImpl extends ZooKeeperCriticalThread implements Sessi
     public synchronized Map<Long, Set<Long>> getSessionExpiryMap() {
         // Convert time -> sessions map to time -> session IDs map
         Map<Long, Set<SessionImpl>> expiryMap = sessionExpiryQueue.getExpiryMap();
-        Map<Long, Set<Long>> sessionExpiryMap = new TreeMap<Long, Set<Long>>();
+        Map<Long, Set<Long>> sessionExpiryMap = new TreeMap<>();
         for (Entry<Long, Set<SessionImpl>> e : expiryMap.entrySet()) {
-            Set<Long> ids = new HashSet<Long>();
+            Set<Long> ids = new HashSet<>();
             sessionExpiryMap.put(e.getKey(), ids);
             for (SessionImpl s : e.getValue()) {
                 ids.add(s.sessionId);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotComparer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotComparer.java
index 84d265c81..bb6a45db8 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotComparer.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotComparer.java
@@ -169,7 +169,7 @@ public class SnapshotComparer {
       public TreeNode(String label, long size) {
         this.label = label;
         this.size = size;
-        this.children = new ArrayList<TreeNode>();
+        this.children = new ArrayList<>();
       }
 
       void populateChildren(String path, DataTree dataTree, TreeInfo treeInfo) throws Exception {
@@ -208,8 +208,8 @@ public class SnapshotComparer {
 
     final TreeNode root;
     long count;
-    List<ArrayList<TreeNode>> nodesAtDepths = new ArrayList<ArrayList<TreeNode>>();
-    Map<String, TreeNode> nodesByName = new HashMap<String, TreeNode>();
+    List<ArrayList<TreeNode>> nodesAtDepths = new ArrayList<>();
+    Map<String, TreeNode> nodesByName = new HashMap<>();
 
     TreeInfo(File snapshot) throws Exception {
       DataTree dataTree = getSnapshot(snapshot);
@@ -229,7 +229,7 @@ public class SnapshotComparer {
 
     void registerNode(TreeNode node, int depth) {
       while (depth > nodesAtDepths.size()) {
-        nodesAtDepths.add(new ArrayList<TreeNode>());
+        nodesAtDepths.add(new ArrayList<>());
       }
       nodesAtDepths.get(depth - 1).add(node);
       nodesByName.put(node.label, node);
@@ -261,7 +261,7 @@ public class SnapshotComparer {
   private static DataTree getSnapshot(File file) throws Exception {
     FileSnap fileSnap = new FileSnap(null);
     DataTree dataTree = new DataTree();
-    Map<Long, Integer> sessions = new HashMap<Long, Integer>();
+    Map<Long, Integer> sessions = new HashMap<>();
     CheckedInputStream snapIS = SnapStream.getInputStream(file);
 
     long beginning = System.nanoTime();
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java
index 0e5ec868f..4ad590c99 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java
@@ -99,7 +99,7 @@ public class SnapshotFormatter {
             FileSnap fileSnap = new FileSnap(null);
 
             DataTree dataTree = new DataTree();
-            Map<Long, Integer> sessions = new HashMap<Long, Integer>();
+            Map<Long, Integer> sessions = new HashMap<>();
 
             fileSnap.deserialize(dataTree, sessions, ia);
             long fileNameZxid = Util.getZxidFromName(snapshotFile.getName(), SNAPSHOT_FILE_PREFIX);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotRecursiveSummary.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotRecursiveSummary.java
index 2d5f30b63..444783166 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotRecursiveSummary.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotRecursiveSummary.java
@@ -70,7 +70,7 @@ import org.apache.zookeeper.server.persistence.SnapStream;
       FileSnap fileSnap = new FileSnap(null);
 
       DataTree dataTree = new DataTree();
-      Map<Long, Integer> sessions = new HashMap<Long, Integer>();
+      Map<Long, Integer> sessions = new HashMap<>();
 
       fileSnap.deserialize(dataTree, sessions, ia);
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SyncRequestProcessor.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SyncRequestProcessor.java
index 4df319f86..8468b5227 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SyncRequestProcessor.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SyncRequestProcessor.java
@@ -69,7 +69,7 @@ public class SyncRequestProcessor extends ZooKeeperCriticalThread implements Req
     private int randRoll;
     private long randSize;
 
-    private final BlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<Request>();
+    private final BlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<>();
 
     private final Semaphore snapThreadMutex = new Semaphore(1);
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/WorkerService.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/WorkerService.java
index b4dcd066f..305d0e2ec 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/WorkerService.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/WorkerService.java
@@ -47,7 +47,7 @@ public class WorkerService {
 
     private static final Logger LOG = LoggerFactory.getLogger(WorkerService.class);
 
-    private final ArrayList<ExecutorService> workers = new ArrayList<ExecutorService>();
+    private final ArrayList<ExecutorService> workers = new ArrayList<>();
 
     private final String threadNamePrefix;
     private int numWorkerThreads;
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java
index f20af88d5..a8729841c 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java
@@ -110,7 +110,7 @@ public class ZKDatabase {
      */
     public ZKDatabase(FileTxnSnapLog snapLog) {
         dataTree = createDataTree();
-        sessionsWithTimeouts = new ConcurrentHashMap<Long, Integer>();
+        sessionsWithTimeouts = new ConcurrentHashMap<>();
         this.snapLog = snapLog;
 
         try {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServer.java
index bbb0f7fee..72be66aab 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServer.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServer.java
@@ -241,7 +241,7 @@ public class ZooKeeperServer implements SessionExpirer, ServerStats.Provider {
     private final AtomicInteger requestsInProcess = new AtomicInteger(0);
     final Deque<ChangeRecord> outstandingChanges = new ArrayDeque<>();
     // this data structure must be accessed under the outstandingChanges lock
-    final Map<String, ChangeRecord> outstandingChangesForPath = new HashMap<String, ChangeRecord>();
+    final Map<String, ChangeRecord> outstandingChangesForPath = new HashMap<>();
 
     protected ServerCnxnFactory serverCnxnFactory;
     protected ServerCnxnFactory secureServerCnxnFactory;
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServerConf.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServerConf.java
index 499dd5680..8d0fe9394 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServerConf.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServerConf.java
@@ -187,7 +187,7 @@ public class ZooKeeperServerConf {
      * @return map representation of configuration
      */
     public Map<String, Object> toMap() {
-        Map<String, Object> conf = new LinkedHashMap<String, Object>();
+        Map<String, Object> conf = new LinkedHashMap<>();
         conf.put(KEY_CLIENT_PORT, clientPort);
         conf.put(KEY_DATA_DIR, dataDir);
         conf.put(KEY_DATA_LOG_DIR, dataLogDir);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/CommandBase.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/CommandBase.java
index 322de178f..b3714c256 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/CommandBase.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/CommandBase.java
@@ -41,7 +41,7 @@ public abstract class CommandBase implements Command {
 
     protected CommandBase(List<String> names, boolean serverRequired, String doc) {
         this.primaryName = names.get(0);
-        this.names = new HashSet<String>(names);
+        this.names = new HashSet<>(names);
         this.doc = doc;
         this.serverRequired = serverRequired;
     }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/CommandResponse.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/CommandResponse.java
index f47b4e942..d68d8ad39 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/CommandResponse.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/CommandResponse.java
@@ -75,7 +75,7 @@ public class CommandResponse {
     public CommandResponse(final String command, final String error, final int statusCode, final InputStream inputStream) {
         this.command = command;
         this.error = error;
-        data = new LinkedHashMap<String, Object>();
+        data = new LinkedHashMap<>();
         headers = new HashMap<>();
         this.statusCode = statusCode;
         this.inputStream = inputStream;
@@ -177,7 +177,7 @@ public class CommandResponse {
      * @return map representation of response
      */
     public Map<String, Object> toMap() {
-        Map<String, Object> m = new LinkedHashMap<String, Object>(data);
+        Map<String, Object> m = new LinkedHashMap<>(data);
         m.put(KEY_COMMAND, command);
         m.put(KEY_ERROR, error);
         m.putAll(data);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/Commands.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/Commands.java
index 1911b5a57..dfdbe8e23 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/Commands.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/Commands.java
@@ -78,8 +78,8 @@ public class Commands {
     private static final long rateLimiterInterval = Integer.parseInt(System.getProperty(ADMIN_RATE_LIMITER_INTERVAL, "300000"));
 
     /** Maps command names to Command instances */
-    private static Map<String, Command> commands = new HashMap<String, Command>();
-    private static Set<String> primaryNames = new HashSet<String>();
+    private static Map<String, Command> commands = new HashMap<>();
+    private static Set<String> primaryNames = new HashSet<>();
 
     /**
      * Registers the given command. Registered commands can be run by passing
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/JettyAdminServer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/JettyAdminServer.java
index effececdc..98f2cb051 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/JettyAdminServer.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/JettyAdminServer.java
@@ -255,7 +255,7 @@ public class JettyAdminServer implements AdminServer {
 
             // Extract keyword arguments to command from request parameters
             @SuppressWarnings("unchecked") Map<String, String[]> parameterMap = request.getParameterMap();
-            Map<String, String> kwargs = new HashMap<String, String>();
+            Map<String, String> kwargs = new HashMap<>();
             for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
                 kwargs.put(entry.getKey(), entry.getValue()[0]);
             }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/EnsembleAuthenticationProvider.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/EnsembleAuthenticationProvider.java
index d5649c8d3..1e24c9283 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/EnsembleAuthenticationProvider.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/EnsembleAuthenticationProvider.java
@@ -52,7 +52,7 @@ public class EnsembleAuthenticationProvider implements AuthenticationProvider {
     }
 
     public void setEnsembleNames(String namesCSV) {
-        ensembleNames = new HashSet<String>();
+        ensembleNames = new HashSet<>();
         for (String name : namesCSV.split(",")) {
             ensembleNames.add(name.trim());
         }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/KerberosName.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/KerberosName.java
index 02ec59321..a240c45b6 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/KerberosName.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/KerberosName.java
@@ -322,7 +322,7 @@ public class KerberosName {
     }
 
     static List<Rule> parseRules(String rules) {
-        List<Rule> result = new ArrayList<Rule>();
+        List<Rule> result = new ArrayList<>();
         String remaining = rules.trim();
         while (remaining.length() > 0) {
             Matcher matcher = ruleParser.matcher(remaining);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/SaslServerCallbackHandler.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/SaslServerCallbackHandler.java
index b6415fd80..4fca508df 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/SaslServerCallbackHandler.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/SaslServerCallbackHandler.java
@@ -43,7 +43,7 @@ public class SaslServerCallbackHandler implements CallbackHandler {
     private static final String SYSPROP_REMOVE_REALM = "zookeeper.kerberos.removeRealmFromPrincipal";
 
     private String userName;
-    private final Map<String, String> credentials = new HashMap<String, String>();
+    private final Map<String, String> credentials = new HashMap<>();
 
     public SaslServerCallbackHandler(Configuration configuration) throws IOException {
         String serverSection = System.getProperty(
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/command/FourLetterCommands.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/command/FourLetterCommands.java
index 40b1698e3..3c615f4fa 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/command/FourLetterCommands.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/command/FourLetterCommands.java
@@ -151,9 +151,9 @@ public class FourLetterCommands {
 
     private static final Logger LOG = LoggerFactory.getLogger(FourLetterCommands.class);
 
-    private static final Map<Integer, String> cmd2String = new HashMap<Integer, String>();
+    private static final Map<Integer, String> cmd2String = new HashMap<>();
 
-    private static final Set<String> whiteListedCommands = new HashSet<String>();
+    private static final Set<String> whiteListedCommands = new HashSet<>();
 
     private static boolean whiteListInitialized = false;
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/AvgMinMaxCounter.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/AvgMinMaxCounter.java
index 0f06e4a66..e6b6d0f5b 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/AvgMinMaxCounter.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/AvgMinMaxCounter.java
@@ -109,7 +109,7 @@ public class AvgMinMaxCounter extends Metric implements Summary {
     }
 
     public Map<String, Object> values() {
-        Map<String, Object> m = new LinkedHashMap<String, Object>();
+        Map<String, Object> m = new LinkedHashMap<>();
         m.put("avg_" + name, this.getAvg());
         m.put("min_" + name, this.getMin());
         m.put("max_" + name, this.getMax());
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/AvgMinMaxPercentileCounter.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/AvgMinMaxPercentileCounter.java
index 3162043a7..ed274085a 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/AvgMinMaxPercentileCounter.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/AvgMinMaxPercentileCounter.java
@@ -84,7 +84,7 @@ public class AvgMinMaxPercentileCounter extends Metric implements Summary {
         @Override
         public Snapshot getSnapshot() {
             final int s = size();
-            final List<Long> copy = new ArrayList<Long>(s);
+            final List<Long> copy = new ArrayList<>(s);
             for (int i = 0; i < s; i++) {
                 copy.add(values.get(i));
             }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/SimpleCounter.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/SimpleCounter.java
index 71218335c..5af8995a4 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/SimpleCounter.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/metric/SimpleCounter.java
@@ -48,7 +48,7 @@ public class SimpleCounter extends Metric implements Counter {
 
     @Override
     public Map<String, Object> values() {
-        Map<String, Object> m = new LinkedHashMap<String, Object>();
+        Map<String, Object> m = new LinkedHashMap<>();
         m.put(name, this.get());
         return m;
     }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileSnap.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileSnap.java
index f162f0cc6..55e7f723f 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileSnap.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileSnap.java
@@ -166,7 +166,7 @@ public class FileSnap implements SnapShot {
     protected List<File> findNValidSnapshots(int n) {
         List<File> files = Util.sortDataDir(snapDir.listFiles(), SNAPSHOT_FILE_PREFIX, false);
         int count = 0;
-        List<File> list = new ArrayList<File>();
+        List<File> list = new ArrayList<>();
         for (File f : files) {
             // we should catch the exceptions
             // from the valid snapshot and continue
@@ -196,7 +196,7 @@ public class FileSnap implements SnapShot {
     public List<File> findNRecentSnapshots(int n) throws IOException {
         List<File> files = Util.sortDataDir(snapDir.listFiles(), SNAPSHOT_FILE_PREFIX, false);
         int count = 0;
-        List<File> list = new ArrayList<File>();
+        List<File> list = new ArrayList<>();
         for (File f : files) {
             if (count == n) {
                 break;
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileTxnLog.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileTxnLog.java
index 7d4366065..e095d2faa 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileTxnLog.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileTxnLog.java
@@ -332,7 +332,7 @@ public class FileTxnLog implements TxnLog, Closeable {
                 logZxid = fzxid;
             }
         }
-        List<File> v = new ArrayList<File>(5);
+        List<File> v = new ArrayList<>(5);
         for (File f : files) {
             long fzxid = Util.getZxidFromName(f.getName(), LOG_FILE_PREFIX);
             if (fzxid < logZxid) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/Util.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/Util.java
index 6949c4369..2aedf1dbf 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/Util.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/Util.java
@@ -248,7 +248,7 @@ public class Util {
      */
     public static List<File> sortDataDir(File[] files, String prefix, boolean ascending) {
         if (files == null) {
-            return new ArrayList<File>(0);
+            return new ArrayList<>(0);
         }
         List<File> filelist = Arrays.asList(files);
         Collections.sort(filelist, new DataDirFileComparator(prefix, ascending));
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/CommitProcessor.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/CommitProcessor.java
index 11ba09361..3be43c37e 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/CommitProcessor.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/CommitProcessor.java
@@ -90,7 +90,7 @@ public class CommitProcessor extends ZooKeeperCriticalThread implements RequestP
     /**
      * Incoming requests.
      */
-    protected LinkedBlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<Request>();
+    protected LinkedBlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<>();
 
     /**
      * Incoming requests that are waiting on a commit,
@@ -111,7 +111,7 @@ public class CommitProcessor extends ZooKeeperCriticalThread implements RequestP
     /**
      * Requests that have been committed.
      */
-    protected final LinkedBlockingQueue<Request> committedRequests = new LinkedBlockingQueue<Request>();
+    protected final LinkedBlockingQueue<Request> committedRequests = new LinkedBlockingQueue<>();
 
     /**
      * Requests that we are holding until commit comes in. Keys represent
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FastLeaderElection.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FastLeaderElection.java
index 91207d110..f4a5f9882 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FastLeaderElection.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FastLeaderElection.java
@@ -646,8 +646,8 @@ public class FastLeaderElection implements Election {
         proposedLeader = -1;
         proposedZxid = -1;
 
-        sendqueue = new LinkedBlockingQueue<ToSend>();
-        recvqueue = new LinkedBlockingQueue<Notification>();
+        sendqueue = new LinkedBlockingQueue<>();
+        recvqueue = new LinkedBlockingQueue<>();
         this.messenger = new Messenger(manager);
     }
 
@@ -925,7 +925,7 @@ public class FastLeaderElection implements Election {
              * if v.electionEpoch == logicalclock. The current participant uses recvset to deduce on whether a majority
              * of participants has voted for it.
              */
-            Map<Long, Vote> recvset = new HashMap<Long, Vote>();
+            Map<Long, Vote> recvset = new HashMap<>();
 
             /*
              * The votes from previous leader elections, as well as the votes from the current leader election are
@@ -934,7 +934,7 @@ public class FastLeaderElection implements Election {
              * outofelection to learn which participant is the leader if it arrives late (i.e., higher logicalclock than
              * the electionEpoch of the received notifications) in a leader election.
              */
-            Map<Long, Vote> outofelection = new HashMap<Long, Vote>();
+            Map<Long, Vote> outofelection = new HashMap<>();
 
             int notTimeout = minNotificationInterval;
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerRequestProcessor.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerRequestProcessor.java
index 58ca9905d..ef01ab322 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerRequestProcessor.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerRequestProcessor.java
@@ -47,7 +47,7 @@ public class FollowerRequestProcessor extends ZooKeeperCriticalThread implements
 
     RequestProcessor nextProcessor;
 
-    LinkedBlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<Request>();
+    LinkedBlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<>();
 
     boolean finished = false;
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java
index 8d371ae57..82e56c390 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java
@@ -59,7 +59,7 @@ public class FollowerZooKeeperServer extends LearnerZooKeeperServer {
      */
     FollowerZooKeeperServer(FileTxnSnapLog logFactory, QuorumPeer self, ZKDatabase zkDb) throws IOException {
         super(logFactory, self.tickTime, self.minSessionTimeout, self.maxSessionTimeout, self.clientPortListenBacklog, zkDb, self);
-        this.pendingSyncs = new ConcurrentLinkedQueue<Request>();
+        this.pendingSyncs = new ConcurrentLinkedQueue<>();
     }
 
     public Follower getFollower() {
@@ -77,7 +77,7 @@ public class FollowerZooKeeperServer extends LearnerZooKeeperServer {
         syncProcessor.start();
     }
 
-    LinkedBlockingQueue<Request> pendingTxns = new LinkedBlockingQueue<Request>();
+    LinkedBlockingQueue<Request> pendingTxns = new LinkedBlockingQueue<>();
 
     public void logRequest(TxnHeader hdr, Record txn, TxnDigest digest) {
         Request request = new Request(hdr.getClientId(), hdr.getCxid(), hdr.getType(), hdr, txn, hdr.getZxid());
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Leader.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Leader.java
index aebde0524..b15f5f555 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Leader.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Leader.java
@@ -127,7 +127,7 @@ public class Leader extends LearnerMaster {
     volatile LearnerCnxAcceptor cnxAcceptor = null;
 
     // list of all the learners, including followers and observers
-    private final HashSet<LearnerHandler> learners = new HashSet<LearnerHandler>();
+    private final HashSet<LearnerHandler> learners = new HashSet<>();
 
     private final BufferStats proposalStats;
 
@@ -143,24 +143,24 @@ public class Leader extends LearnerMaster {
      */
     public List<LearnerHandler> getLearners() {
         synchronized (learners) {
-            return new ArrayList<LearnerHandler>(learners);
+            return new ArrayList<>(learners);
         }
     }
 
     // list of followers that are ready to follow (i.e synced with the leader)
-    private final HashSet<LearnerHandler> forwardingFollowers = new HashSet<LearnerHandler>();
+    private final HashSet<LearnerHandler> forwardingFollowers = new HashSet<>();
 
     /**
      * Returns a copy of the current forwarding follower snapshot
      */
     public List<LearnerHandler> getForwardingFollowers() {
         synchronized (forwardingFollowers) {
-            return new ArrayList<LearnerHandler>(forwardingFollowers);
+            return new ArrayList<>(forwardingFollowers);
         }
     }
 
     public List<LearnerHandler> getNonVotingFollowers() {
-        List<LearnerHandler> nonVotingFollowers = new ArrayList<LearnerHandler>();
+        List<LearnerHandler> nonVotingFollowers = new ArrayList<>();
         synchronized (forwardingFollowers) {
             for (LearnerHandler lh : forwardingFollowers) {
                 if (!isParticipant(lh.getSid())) {
@@ -181,14 +181,14 @@ public class Leader extends LearnerMaster {
         }
     }
 
-    private final HashSet<LearnerHandler> observingLearners = new HashSet<LearnerHandler>();
+    private final HashSet<LearnerHandler> observingLearners = new HashSet<>();
 
     /**
      * Returns a copy of the current observer snapshot
      */
     public List<LearnerHandler> getObservingLearners() {
         synchronized (observingLearners) {
-            return new ArrayList<LearnerHandler>(observingLearners);
+            return new ArrayList<>(observingLearners);
         }
     }
 
@@ -217,7 +217,7 @@ public class Leader extends LearnerMaster {
     }
 
     // Pending sync requests. Must access under 'this' lock.
-    private final Map<Long, List<LearnerSyncRequest>> pendingSyncs = new HashMap<Long, List<LearnerSyncRequest>>();
+    private final Map<Long, List<LearnerSyncRequest>> pendingSyncs = new HashMap<>();
 
     public synchronized int getNumPendingSyncs() {
         return pendingSyncs.size();
@@ -270,7 +270,7 @@ public class Leader extends LearnerMaster {
      * @param qv is a QuorumVerifier
      */
     public boolean isQuorumSynced(QuorumVerifier qv) {
-        HashSet<Long> ids = new HashSet<Long>();
+        HashSet<Long> ids = new HashSet<>();
         if (qv.getVotingMembers().containsKey(self.getMyId())) {
             ids.add(self.getMyId());
         }
@@ -430,9 +430,9 @@ public class Leader extends LearnerMaster {
      */
     static final int INFORMANDACTIVATE = 19;
 
-    final ConcurrentMap<Long, Proposal> outstandingProposals = new ConcurrentHashMap<Long, Proposal>();
+    final ConcurrentMap<Long, Proposal> outstandingProposals = new ConcurrentHashMap<>();
 
-    private final ConcurrentLinkedQueue<Proposal> toBeApplied = new ConcurrentLinkedQueue<Proposal>();
+    private final ConcurrentLinkedQueue<Proposal> toBeApplied = new ConcurrentLinkedQueue<>();
 
     // VisibleForTesting
     protected final Proposal newLeaderProposal = new Proposal();
@@ -669,7 +669,7 @@ public class Leader extends LearnerMaster {
                 shutdown("Waiting for a quorum of followers, only synced with sids: [ "
                          + newLeaderProposal.ackSetsToString()
                          + " ]");
-                HashSet<Long> followerSet = new HashSet<Long>();
+                HashSet<Long> followerSet = new HashSet<>();
 
                 for (LearnerHandler f : getLearners()) {
                     if (self.getQuorumVerifier().getVotingMembers().containsKey(f.getSid())) {
@@ -877,7 +877,7 @@ public class Leader extends LearnerMaster {
         // start with an initial set of candidates that are voters from new config that
         // acknowledged the reconfig op (there must be a quorum). Choose one of them as
         // current leader candidate
-        HashSet<Long> candidates = new HashSet<Long>(newQVAcksetPair.getAckset());
+        HashSet<Long> candidates = new HashSet<>(newQVAcksetPair.getAckset());
         candidates.remove(self.getMyId()); // if we're here, I shouldn't be the leader
         long curCandidate = candidates.iterator().next();
 
@@ -1326,7 +1326,7 @@ public class Leader extends LearnerMaster {
             }
             // Only participant need to get outstanding proposals
             if (handler.getLearnerType() == LearnerType.PARTICIPANT) {
-                List<Long> zxids = new ArrayList<Long>(outstandingProposals.keySet());
+                List<Long> zxids = new ArrayList<>(outstandingProposals.keySet());
                 Collections.sort(zxids);
                 for (Long zxid : zxids) {
                     if (zxid <= lastSeenZxid) {
@@ -1355,7 +1355,7 @@ public class Leader extends LearnerMaster {
     }
 
     // VisibleForTesting
-    protected final Set<Long> connectingFollowers = new HashSet<Long>();
+    protected final Set<Long> connectingFollowers = new HashSet<>();
 
     private volatile boolean quitWaitForEpoch = false;
     private volatile long timeStartWaitForEpoch = -1;
@@ -1453,7 +1453,7 @@ public class Leader extends LearnerMaster {
     }
 
     // VisibleForTesting
-    protected final Set<Long> electingFollowers = new HashSet<Long>();
+    protected final Set<Long> electingFollowers = new HashSet<>();
     // VisibleForTesting
     protected boolean electionFinished = false;
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java
index 0ed3b1ebe..d534b8f45 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java
@@ -133,7 +133,7 @@ public class Learner {
         LOG.info("{} = {}", LEARNER_CLOSE_SOCKET_ASYNC, closeSocketAsync);
     }
 
-    final ConcurrentHashMap<Long, ServerCnxn> pendingRevalidations = new ConcurrentHashMap<Long, ServerCnxn>();
+    final ConcurrentHashMap<Long, ServerCnxn> pendingRevalidations = new ConcurrentHashMap<>();
 
     public int getPendingRevalidationsCount() {
         return pendingRevalidations.size();
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java
index eea11d33a..169c3d1d2 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java
@@ -114,7 +114,7 @@ public class LearnerHandler extends ZooKeeperThread {
     /**
      * The packets to be sent to the learner
      */
-    final LinkedBlockingQueue<QuorumPacket> queuedPackets = new LinkedBlockingQueue<QuorumPacket>();
+    final LinkedBlockingQueue<QuorumPacket> queuedPackets = new LinkedBlockingQueue<>();
     private final AtomicLong queuedPacketsSize = new AtomicLong();
 
     protected final AtomicLong packetsReceived = new AtomicLong();
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerSessionTracker.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerSessionTracker.java
index 78c927a7d..8983bdf3b 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerSessionTracker.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerSessionTracker.java
@@ -54,7 +54,7 @@ public class LearnerSessionTracker extends UpgradeableSessionTracker {
 
     private final SessionExpirer expirer;
     // Touch table for the global sessions
-    private final AtomicReference<Map<Long, Integer>> touchTable = new AtomicReference<Map<Long, Integer>>();
+    private final AtomicReference<Map<Long, Integer>> touchTable = new AtomicReference<>();
     private final long serverId;
     private final AtomicLong nextSessionId = new AtomicLong();
 
@@ -62,7 +62,7 @@ public class LearnerSessionTracker extends UpgradeableSessionTracker {
 
     public LearnerSessionTracker(SessionExpirer expirer, ConcurrentMap<Long, Integer> sessionsWithTimeouts, int tickTime, long id, boolean localSessionsEnabled, ZooKeeperServerListener listener) {
         this.expirer = expirer;
-        this.touchTable.set(new ConcurrentHashMap<Long, Integer>());
+        this.touchTable.set(new ConcurrentHashMap<>());
         this.globalSessionsWithTimeouts = sessionsWithTimeouts;
         this.serverId = id;
         nextSessionId.set(SessionTrackerImpl.initializeNextSessionId(serverId));
@@ -150,7 +150,7 @@ public class LearnerSessionTracker extends UpgradeableSessionTracker {
     }
 
     public Map<Long, Integer> snapshot() {
-        return touchTable.getAndSet(new ConcurrentHashMap<Long, Integer>());
+        return touchTable.getAndSet(new ConcurrentHashMap<>());
     }
 
     public long createSession(int sessionTimeout) {
@@ -202,7 +202,7 @@ public class LearnerSessionTracker extends UpgradeableSessionTracker {
         pwriter.print("Global Sessions(");
         pwriter.print(globalSessionsWithTimeouts.size());
         pwriter.println("):");
-        SortedSet<Long> sessionIds = new TreeSet<Long>(globalSessionsWithTimeouts.keySet());
+        SortedSet<Long> sessionIds = new TreeSet<>(globalSessionsWithTimeouts.keySet());
         for (long sessionId : sessionIds) {
             pwriter.print("0x");
             pwriter.print(Long.toHexString(sessionId));
@@ -222,7 +222,7 @@ public class LearnerSessionTracker extends UpgradeableSessionTracker {
 
     @Override
     public Map<Long, Set<Long>> getSessionExpiryMap() {
-        return new HashMap<Long, Set<Long>>();
+        return new HashMap<>();
     }
 
     public Set<Long> globalSessions() {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverMaster.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverMaster.java
index 98c0d0c08..2369eabe3 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverMaster.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverMaster.java
@@ -74,7 +74,7 @@ public class ObserverMaster extends LearnerMaster implements Runnable {
     private FollowerZooKeeperServer zks;
     private int port;
 
-    private Set<LearnerHandler> activeObservers = Collections.newSetFromMap(new ConcurrentHashMap<LearnerHandler, Boolean>());
+    private Set<LearnerHandler> activeObservers = Collections.newSetFromMap(new ConcurrentHashMap<>());
 
     private final ConcurrentHashMap<LearnerHandler, LearnerHandlerBean> connectionBeans = new ConcurrentHashMap<>();
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverRequestProcessor.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverRequestProcessor.java
index 0e7071b91..1d7e5c5c3 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverRequestProcessor.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverRequestProcessor.java
@@ -45,7 +45,7 @@ public class ObserverRequestProcessor extends ZooKeeperCriticalThread implements
 
     // We keep a queue of requests. As requests get submitted they are
     // stored here. The queue is drained in the run() method.
-    LinkedBlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<Request>();
+    LinkedBlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<>();
 
     boolean finished = false;
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverZooKeeperServer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverZooKeeperServer.java
index a41a91877..30f759fb8 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverZooKeeperServer.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverZooKeeperServer.java
@@ -48,7 +48,7 @@ public class ObserverZooKeeperServer extends LearnerZooKeeperServer {
 
     /*
      * Pending sync requests
-     */ ConcurrentLinkedQueue<Request> pendingSyncs = new ConcurrentLinkedQueue<Request>();
+     */ ConcurrentLinkedQueue<Request> pendingSyncs = new ConcurrentLinkedQueue<>();
 
     ObserverZooKeeperServer(FileTxnSnapLog logFactory, QuorumPeer self, ZKDatabase zkDb) throws IOException {
         super(logFactory, self.tickTime, self.minSessionTimeout, self.maxSessionTimeout, self.clientPortListenBacklog, zkDb, self);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
index e7ed9af63..f5931fb97 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
@@ -889,7 +889,7 @@ public class QuorumPeer extends ZooKeeperThread implements QuorumStats.Provider
 
     private AtomicReference<ZabState> zabState = new AtomicReference<>(ZabState.ELECTION);
     private AtomicReference<SyncMode> syncMode = new AtomicReference<>(SyncMode.NONE);
-    private AtomicReference<String> leaderAddress = new AtomicReference<String>("");
+    private AtomicReference<String> leaderAddress = new AtomicReference<>("");
     private AtomicLong leaderId = new AtomicLong(-1);
 
     private boolean reconfigFlag = false; // indicates that a reconfig just committed
@@ -1066,7 +1066,7 @@ public class QuorumPeer extends ZooKeeperThread implements QuorumStats.Provider
     public QuorumPeer() throws SaslException {
         super("QuorumPeer");
         quorumStats = new QuorumStats(this);
-        jmxRemotePeerBean = new HashMap<Long, RemotePeerBean>();
+        jmxRemotePeerBean = new HashMap<>();
         adminServer = AdminServerFactory.createAdminServer();
         x509Util = createX509Util();
         initialize();
@@ -1108,7 +1108,7 @@ public class QuorumPeer extends ZooKeeperThread implements QuorumStats.Provider
     public void initialize() throws SaslException {
         // init quorum auth server & learner
         if (isQuorumSaslAuthEnabled()) {
-            Set<String> authzHosts = new HashSet<String>();
+            Set<String> authzHosts = new HashSet<>();
             for (QuorumServer qs : getView().values()) {
                 authzHosts.add(qs.hostname);
             }
@@ -1660,7 +1660,7 @@ public class QuorumPeer extends ZooKeeperThread implements QuorumStats.Provider
     }
 
     public synchronized Set<Long> getCurrentAndNextConfigVoters() {
-        Set<Long> voterIds = new HashSet<Long>(getQuorumVerifier().getVotingMembers().keySet());
+        Set<Long> voterIds = new HashSet<>(getQuorumVerifier().getVotingMembers().keySet());
         if (getLastSeenQuorumVerifier() != null) {
             voterIds.addAll(getLastSeenQuorumVerifier().getVotingMembers().keySet());
         }
@@ -1680,7 +1680,7 @@ public class QuorumPeer extends ZooKeeperThread implements QuorumStats.Provider
      * Only used by QuorumStats at the moment
      */
     public String[] getQuorumPeers() {
-        List<String> l = new ArrayList<String>();
+        List<String> l = new ArrayList<>();
         synchronized (this) {
             if (leader != null) {
                 for (LearnerHandler fh : leader.getLearners()) {
@@ -2306,14 +2306,14 @@ public class QuorumPeer extends ZooKeeperThread implements QuorumStats.Provider
     }
 
     private void updateRemotePeerMXBeans(Map<Long, QuorumServer> newMembers) {
-        Set<Long> existingMembers = new HashSet<Long>(newMembers.keySet());
+        Set<Long> existingMembers = new HashSet<>(newMembers.keySet());
         existingMembers.retainAll(jmxRemotePeerBean.keySet());
         for (Long id : existingMembers) {
             RemotePeerBean rBean = jmxRemotePeerBean.get(id);
             rBean.setQuorumServer(newMembers.get(id));
         }
 
-        Set<Long> joiningMembers = new HashSet<Long>(newMembers.keySet());
+        Set<Long> joiningMembers = new HashSet<>(newMembers.keySet());
         joiningMembers.removeAll(jmxRemotePeerBean.keySet());
         joiningMembers.remove(getMyId()); // remove self as it is local bean
         for (Long id : joiningMembers) {
@@ -2327,7 +2327,7 @@ public class QuorumPeer extends ZooKeeperThread implements QuorumStats.Provider
             }
         }
 
-        Set<Long> leavingMembers = new HashSet<Long>(jmxRemotePeerBean.keySet());
+        Set<Long> leavingMembers = new HashSet<>(jmxRemotePeerBean.keySet());
         leavingMembers.removeAll(newMembers.keySet());
         for (Long id : leavingMembers) {
             RemotePeerBean rBean = jmxRemotePeerBean.remove(id);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java
index d478c409c..05246baba 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java
@@ -547,7 +547,7 @@ public class QuorumPeerConfig {
                 Properties cfg = new Properties();
                 cfg.load(new StringReader(qv.toString()));
 
-                List<String> servers = new ArrayList<String>();
+                List<String> servers = new ArrayList<>();
                 for (Entry<Object, Object> entry : cfg.entrySet()) {
                     String key = entry.getKey().toString().trim();
                     if (!needKeepVersion && key.startsWith("version")) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ReadOnlyRequestProcessor.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ReadOnlyRequestProcessor.java
index 0e29ccfdf..671d328ff 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ReadOnlyRequestProcessor.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ReadOnlyRequestProcessor.java
@@ -41,7 +41,7 @@ public class ReadOnlyRequestProcessor extends ZooKeeperCriticalThread implements
 
     private static final Logger LOG = LoggerFactory.getLogger(ReadOnlyRequestProcessor.class);
 
-    private final LinkedBlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<Request>();
+    private final LinkedBlockingQueue<Request> queuedRequests = new LinkedBlockingQueue<>();
 
     private volatile boolean finished = false;
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/SyncedLearnerTracker.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/SyncedLearnerTracker.java
index 461f46a08..882607643 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/SyncedLearnerTracker.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/SyncedLearnerTracker.java
@@ -24,7 +24,7 @@ import org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
 
 public class SyncedLearnerTracker {
 
-    protected ArrayList<QuorumVerifierAcksetPair> qvAcksetPairs = new ArrayList<QuorumVerifierAcksetPair>();
+    protected ArrayList<QuorumVerifierAcksetPair> qvAcksetPairs = new ArrayList<>();
 
     public void addQuorumVerifier(QuorumVerifier qv) {
         qvAcksetPairs.add(new QuorumVerifierAcksetPair(qv, new HashSet<Long>(qv.getVotingMembers().size())));
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/UpgradeableSessionTracker.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/UpgradeableSessionTracker.java
index fb5dbcc36..66dfcbae7 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/UpgradeableSessionTracker.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/UpgradeableSessionTracker.java
@@ -44,9 +44,9 @@ public abstract class UpgradeableSessionTracker implements SessionTracker {
     }
 
     public void createLocalSessionTracker(SessionExpirer expirer, int tickTime, long id, ZooKeeperServerListener listener) {
-        this.localSessionsWithTimeouts = new ConcurrentHashMap<Long, Integer>();
+        this.localSessionsWithTimeouts = new ConcurrentHashMap<>();
         this.localSessionTracker = new LocalSessionTracker(expirer, this.localSessionsWithTimeouts, tickTime, id, listener);
-        this.upgradingSessions = new ConcurrentHashMap<Long, Integer>();
+        this.upgradingSessions = new ConcurrentHashMap<>();
     }
 
     public boolean isTrackingSession(long sessionId) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/flexible/QuorumHierarchical.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/flexible/QuorumHierarchical.java
index 5376ae6c5..d4c7b2160 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/flexible/QuorumHierarchical.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/flexible/QuorumHierarchical.java
@@ -66,15 +66,15 @@ public class QuorumHierarchical implements QuorumVerifier {
 
     private static final Logger LOG = LoggerFactory.getLogger(QuorumHierarchical.class);
 
-    private HashMap<Long, Long> serverWeight = new HashMap<Long, Long>();
-    private HashMap<Long, Long> serverGroup = new HashMap<Long, Long>();
-    private HashMap<Long, Long> groupWeight = new HashMap<Long, Long>();
+    private HashMap<Long, Long> serverWeight = new HashMap<>();
+    private HashMap<Long, Long> serverGroup = new HashMap<>();
+    private HashMap<Long, Long> groupWeight = new HashMap<>();
 
     private int numGroups = 0;
 
-    private Map<Long, QuorumServer> allMembers = new HashMap<Long, QuorumServer>();
-    private Map<Long, QuorumServer> participatingMembers = new HashMap<Long, QuorumServer>();
-    private Map<Long, QuorumServer> observingMembers = new HashMap<Long, QuorumServer>();
+    private Map<Long, QuorumServer> allMembers = new HashMap<>();
+    private Map<Long, QuorumServer> participatingMembers = new HashMap<>();
+    private Map<Long, QuorumServer> observingMembers = new HashMap<>();
 
     private long version = 0;
 
@@ -255,7 +255,7 @@ public class QuorumHierarchical implements QuorumVerifier {
             sw.append('\n');
         }
 
-        Map<Long, String> groups = new HashMap<Long, String>();
+        Map<Long, String> groups = new HashMap<>();
         for (Entry<Long, Long> pair : serverGroup.entrySet()) {
             Long sid = pair.getKey();
             Long gid = pair.getValue();
@@ -326,7 +326,7 @@ public class QuorumHierarchical implements QuorumVerifier {
      * Verifies if a given set is a quorum.
      */
     public boolean containsQuorum(Set<Long> set) {
-        HashMap<Long, Long> expansion = new HashMap<Long, Long>();
+        HashMap<Long, Long> expansion = new HashMap<>();
 
         /*
          * Adds up weights per group
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/flexible/QuorumMaj.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/flexible/QuorumMaj.java
index ed38533ec..cc1723cf3 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/flexible/QuorumMaj.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/flexible/QuorumMaj.java
@@ -38,9 +38,9 @@ public class QuorumMaj implements QuorumVerifier {
 
     private static final Logger LOG = LoggerFactory.getLogger(QuorumMaj.class);
 
-    private Map<Long, QuorumServer> allMembers = new HashMap<Long, QuorumServer>();
-    private Map<Long, QuorumServer> votingMembers = new HashMap<Long, QuorumServer>();
-    private Map<Long, QuorumServer> observingMembers = new HashMap<Long, QuorumServer>();
+    private Map<Long, QuorumServer> allMembers = new HashMap<>();
+    private Map<Long, QuorumServer> votingMembers = new HashMap<>();
+    private Map<Long, QuorumServer> observingMembers = new HashMap<>();
     private long version = 0;
     protected int half;
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/BitHashSet.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/BitHashSet.java
index 5788e6adf..2af2f53c9 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/BitHashSet.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/BitHashSet.java
@@ -53,7 +53,7 @@ public class BitHashSet implements Iterable<Integer> {
      * HashSet we need to go through all the words before return that
      * element, which is not efficient.
      */
-    private final Set<Integer> cache = new HashSet<Integer>();
+    private final Set<Integer> cache = new HashSet<>();
 
     private final int cacheSize;
 
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/BitMap.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/BitMap.java
index da76f467f..190624039 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/BitMap.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/BitMap.java
@@ -30,8 +30,8 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
  */
 public class BitMap<T> {
 
-    private final Map<T, Integer> value2Bit = new HashMap<T, Integer>();
-    private final Map<Integer, T> bit2Value = new HashMap<Integer, T>();
+    private final Map<T, Integer> value2Bit = new HashMap<>();
+    private final Map<Integer, T> bit2Value = new HashMap<>();
 
     private final BitSet freedBitSet = new BitSet();
     private Integer nextBit = Integer.valueOf(0);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/SerializeUtils.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/SerializeUtils.java
index 464621e6a..ba91faaf8 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/SerializeUtils.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/SerializeUtils.java
@@ -162,7 +162,7 @@ public class SerializeUtils {
     }
 
     public static void serializeSnapshot(DataTree dt, OutputArchive oa, Map<Long, Integer> sessions) throws IOException {
-        HashMap<Long, Integer> sessSnap = new HashMap<Long, Integer>(sessions);
+        HashMap<Long, Integer> sessSnap = new HashMap<>(sessions);
         oa.writeInt(sessSnap.size(), "count");
         for (Entry<Long, Integer> entry : sessSnap.entrySet()) {
             oa.writeLong(entry.getKey().longValue(), "id");
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchManagerOptimized.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchManagerOptimized.java
index 1cc7deb9d..7f72175ef 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchManagerOptimized.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchManagerOptimized.java
@@ -55,10 +55,10 @@ public class WatchManagerOptimized implements IWatchManager, IDeadWatcherListene
 
     private static final Logger LOG = LoggerFactory.getLogger(WatchManagerOptimized.class);
 
-    private final ConcurrentHashMap<String, BitHashSet> pathWatches = new ConcurrentHashMap<String, BitHashSet>();
+    private final ConcurrentHashMap<String, BitHashSet> pathWatches = new ConcurrentHashMap<>();
 
     // watcher to bit id mapping
-    private final BitMap<Watcher> watcherBitIdMap = new BitMap<Watcher>();
+    private final BitMap<Watcher> watcherBitIdMap = new BitMap<>();
 
     // used to lazily remove the dead watchers
     private final WatcherCleaner watcherCleaner;
@@ -304,10 +304,10 @@ public class WatchManagerOptimized implements IWatchManager, IDeadWatcherListene
 
     @Override
     public WatchesReport getWatches() {
-        Map<Long, Set<String>> id2paths = new HashMap<Long, Set<String>>();
+        Map<Long, Set<String>> id2paths = new HashMap<>();
         for (Entry<Watcher, Set<String>> e : getWatcher2PathesMap().entrySet()) {
             Long id = ((ServerCnxn) e.getKey()).getSessionId();
-            Set<String> paths = new HashSet<String>(e.getValue());
+            Set<String> paths = new HashSet<>(e.getValue());
             id2paths.put(id, paths);
         }
         return new WatchesReport(id2paths);
@@ -321,11 +321,11 @@ public class WatchManagerOptimized implements IWatchManager, IDeadWatcherListene
      */
     @Override
     public WatchesPathReport getWatchesByPath() {
-        Map<String, Set<Long>> path2ids = new HashMap<String, Set<Long>>();
+        Map<String, Set<Long>> path2ids = new HashMap<>();
         for (Entry<String, BitHashSet> e : pathWatches.entrySet()) {
             BitHashSet watchers = e.getValue();
             synchronized (watchers) {
-                Set<Long> ids = new HashSet<Long>(watchers.size());
+                Set<Long> ids = new HashSet<>(watchers.size());
                 path2ids.put(e.getKey(), ids);
                 for (Integer wbit : watchers) {
                     Watcher watcher = watcherBitIdMap.get(wbit);
@@ -343,7 +343,7 @@ public class WatchManagerOptimized implements IWatchManager, IDeadWatcherListene
      * it in this class.
      */
     public Map<Watcher, Set<String>> getWatcher2PathesMap() {
-        Map<Watcher, Set<String>> watcher2paths = new HashMap<Watcher, Set<String>>();
+        Map<Watcher, Set<String>> watcher2paths = new HashMap<>();
         for (Entry<String, BitHashSet> e : pathWatches.entrySet()) {
             String path = e.getKey();
             BitHashSet watchers = e.getValue();
@@ -355,7 +355,7 @@ public class WatchManagerOptimized implements IWatchManager, IDeadWatcherListene
                         continue;
                     }
                     if (!watcher2paths.containsKey(w)) {
-                        watcher2paths.put(w, new HashSet<String>());
+                        watcher2paths.put(w, new HashSet<>());
                     }
                     watcher2paths.get(w).add(path);
                 }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatcherCleaner.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatcherCleaner.java
index be98f9882..c3b7e602f 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatcherCleaner.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatcherCleaner.java
@@ -80,7 +80,7 @@ public class WatcherCleaner extends Thread {
                 maxInProcessingDeadWatchers);
         }
         this.maxInProcessingDeadWatchers = maxInProcessingDeadWatchers;
-        this.deadWatchers = new HashSet<Integer>();
+        this.deadWatchers = new HashSet<>();
         this.cleaners = new WorkerService("DeadWatcherCleanner", watcherCleanThreadsNum, false);
 
         LOG.info(
@@ -151,7 +151,7 @@ public class WatcherCleaner extends Thread {
                 // there are millions of watches, that's why we're doing lazily
                 // batch clean up in a separate thread with a snapshot of the
                 // current dead watchers.
-                final Set<Integer> snapshot = new HashSet<Integer>(deadWatchers);
+                final Set<Integer> snapshot = new HashSet<>(deadWatchers);
                 deadWatchers.clear();
                 int total = snapshot.size();
                 LOG.info("Processing {} dead watchers", total);
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesPathReport.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesPathReport.java
index 9d244b076..527d75b12 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesPathReport.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesPathReport.java
@@ -42,9 +42,9 @@ public class WatchesPathReport {
     }
 
     private static Map<String, Set<Long>> deepCopy(Map<String, Set<Long>> m) {
-        Map<String, Set<Long>> m2 = new HashMap<String, Set<Long>>();
+        Map<String, Set<Long>> m2 = new HashMap<>();
         for (Map.Entry<String, Set<Long>> e : m.entrySet()) {
-            m2.put(e.getKey(), new HashSet<Long>(e.getValue()));
+            m2.put(e.getKey(), new HashSet<>(e.getValue()));
         }
         return m2;
     }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesReport.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesReport.java
index e506143f1..1f3519bc9 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesReport.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesReport.java
@@ -42,9 +42,9 @@ public class WatchesReport {
     }
 
     private static Map<Long, Set<String>> deepCopy(Map<Long, Set<String>> m) {
-        Map<Long, Set<String>> m2 = new HashMap<Long, Set<String>>();
+        Map<Long, Set<String>> m2 = new HashMap<>();
         for (Map.Entry<Long, Set<String>> e : m.entrySet()) {
-            m2.put(e.getKey(), new HashSet<String>(e.getValue()));
+            m2.put(e.getKey(), new HashSet<>(e.getValue()));
         }
         return m2;
     }
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesSummary.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesSummary.java
index 9cd36ca16..f423a9c97 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesSummary.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatchesSummary.java
@@ -89,7 +89,7 @@ public class WatchesSummary {
      * @return map representation of summary
      */
     public Map<String, Object> toMap() {
-        Map<String, Object> summary = new LinkedHashMap<String, Object>();
+        Map<String, Object> summary = new LinkedHashMap<>();
         summary.put(KEY_NUM_CONNECTIONS, numConnections);
         summary.put(KEY_NUM_PATHS, numPaths);
         summary.put(KEY_NUM_TOTAL_WATCHES, totalWatches);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/GetEphemeralsTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/GetEphemeralsTest.java
index 7dcd9e815..6591cf3ce 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/GetEphemeralsTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/GetEphemeralsTest.java
@@ -83,7 +83,7 @@ public class GetEphemeralsTest extends ClientBase {
     public void testGetEphemerals() throws IOException, KeeperException, InterruptedException {
 
         final CountDownLatch doneProcessing = new CountDownLatch(1);
-        final List<String> unexpectedBehavior = new ArrayList<String>();
+        final List<String> unexpectedBehavior = new ArrayList<>();
         zk.getEphemerals((rc, ctx, paths) -> {
             if (paths == null) {
                 unexpectedBehavior.add(String.format("Expected ephemeral count for"
@@ -112,7 +112,7 @@ public class GetEphemeralsTest extends ClientBase {
 
         final CountDownLatch doneProcessing = new CountDownLatch(1);
         final String checkPath = BASE + "0";
-        final List<String> unexpectedBehavior = new ArrayList<String>();
+        final List<String> unexpectedBehavior = new ArrayList<>();
         zk.getEphemerals(checkPath, (rc, ctx, paths) -> {
             if (paths == null) {
                 unexpectedBehavior.add(String.format("Expected ephemeral count for %s to be %d but was null", checkPath, expected.length));
@@ -141,7 +141,7 @@ public class GetEphemeralsTest extends ClientBase {
         final CountDownLatch doneProcessing = new CountDownLatch(1);
         final String checkPath = "/unknownPath";
         final int expectedSize = 0;
-        final List<String> unexpectedBehavior = new ArrayList<String>();
+        final List<String> unexpectedBehavior = new ArrayList<>();
         zk.getEphemerals(checkPath, (rc, ctx, paths) -> {
             if (paths == null) {
                 unexpectedBehavior.add(String.format("Expected ephemeral count for %s to be %d but was null", checkPath, expectedSize));
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/JaasConfiguration.java b/zookeeper-server/src/test/java/org/apache/zookeeper/JaasConfiguration.java
index aecc7ede1..22d8d6efd 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/JaasConfiguration.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/JaasConfiguration.java
@@ -35,7 +35,7 @@ import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
  */
 public class JaasConfiguration extends javax.security.auth.login.Configuration {
 
-    private final Map<String, AppConfigurationEntry[]> sections = new HashMap<String, AppConfigurationEntry[]>();
+    private final Map<String, AppConfigurationEntry[]> sections = new HashMap<>();
 
     public JaasConfiguration() {
     }
@@ -47,7 +47,7 @@ public class JaasConfiguration extends javax.security.auth.login.Configuration {
      * @param args login key/value args
      */
     public void addSection(String name, String loginModuleName, String... args) {
-        Map<String, String> conf = new HashMap<String, String>();
+        Map<String, String> conf = new HashMap<>();
         // loop through the args (must be key/value sequence)
         for (int i = 0; i < args.length - 1; i += 2) {
             conf.put(args[i], args[i + 1]);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/RemoveWatchesTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/RemoveWatchesTest.java
index 93ab353ab..945b87cb0 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/RemoveWatchesTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/RemoveWatchesTest.java
@@ -481,7 +481,7 @@ public class RemoveWatchesTest extends ClientBase {
     @Timeout(value = 90)
     public void testManyPreNodeWatchers(boolean useAsync) throws Exception {
         int count = 50;
-        List<MyWatcher> wList = new ArrayList<MyWatcher>(count);
+        List<MyWatcher> wList = new ArrayList<>(count);
         MyWatcher w;
         String path = "/node";
         // Exists watcher
@@ -510,7 +510,7 @@ public class RemoveWatchesTest extends ClientBase {
     @Timeout(value = 90)
     public void testManyChildWatchers(boolean useAsync) throws Exception {
         int count = 50;
-        List<MyWatcher> wList = new ArrayList<MyWatcher>(count);
+        List<MyWatcher> wList = new ArrayList<>(count);
         MyWatcher w;
         String path = "/node";
 
@@ -546,7 +546,7 @@ public class RemoveWatchesTest extends ClientBase {
     @Timeout(value = 90)
     public void testManyDataWatchers(boolean useAsync) throws Exception {
         int count = 50;
-        List<MyWatcher> wList = new ArrayList<MyWatcher>(count);
+        List<MyWatcher> wList = new ArrayList<>(count);
         MyWatcher w;
         String path = "/node";
 
@@ -578,7 +578,7 @@ public class RemoveWatchesTest extends ClientBase {
     @Timeout(value = 90)
     public void testManyWatchersWhenNoConnection(boolean useAsync) throws Exception {
         int count = 3;
-        List<MyWatcher> wList = new ArrayList<MyWatcher>(count);
+        List<MyWatcher> wList = new ArrayList<>(count);
         MyWatcher w;
         String path = "/node";
 
@@ -990,7 +990,7 @@ public class RemoveWatchesTest extends ClientBase {
         private final String path;
         private String eventPath;
         private CountDownLatch latch;
-        private List<EventType> eventsAfterWatchRemoval = new ArrayList<EventType>();
+        private List<EventType> eventsAfterWatchRemoval = new ArrayList<>();
         MyWatcher(String path, int count) {
             this.path = path;
             latch = new CountDownLatch(count);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/SaslAuthTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/SaslAuthTest.java
index 005cf4bac..be9194f59 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/SaslAuthTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/SaslAuthTest.java
@@ -128,7 +128,7 @@ public class SaslAuthTest extends ClientBase {
     public void testValidSaslIds() throws Exception {
         ZooKeeper zk = createClient();
 
-        List<String> validIds = new ArrayList<String>();
+        List<String> validIds = new ArrayList<>();
         validIds.add("user");
         validIds.add("service/host.name.com");
         validIds.add("user@KERB.REALM");
@@ -136,7 +136,7 @@ public class SaslAuthTest extends ClientBase {
 
         int i = 0;
         for (String validId : validIds) {
-            List<ACL> aclList = new ArrayList<ACL>();
+            List<ACL> aclList = new ArrayList<>();
             ACL acl = new ACL(0, new Id("sasl", validId));
             aclList.add(acl);
             zk.create("/valid" + i, null, aclList, CreateMode.PERSISTENT);
@@ -148,13 +148,13 @@ public class SaslAuthTest extends ClientBase {
     public void testInvalidSaslIds() throws Exception {
         ZooKeeper zk = createClient();
 
-        List<String> invalidIds = new ArrayList<String>();
+        List<String> invalidIds = new ArrayList<>();
         invalidIds.add("user@KERB.REALM/server.com");
         invalidIds.add("user@KERB.REALM1@KERB.REALM2");
 
         int i = 0;
         for (String invalidId : invalidIds) {
-            List<ACL> aclList = new ArrayList<ACL>();
+            List<ACL> aclList = new ArrayList<>();
             try {
                 ACL acl = new ACL(0, new Id("sasl", invalidId));
                 aclList.add(acl);
@@ -253,4 +253,4 @@ public class SaslAuthTest extends ClientBase {
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java
index c829e85da..186d7b6eb 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java
@@ -550,7 +550,7 @@ public class ZooKeeperTest extends ClientBase {
         LsCommand cmd = new LsCommand();
         cmd.setZk(zk);
         cmd.parse("ls /".split(" "));
-        List<String> expected = new ArrayList<String>();
+        List<String> expected = new ArrayList<>();
         expected.add("[aa1, aa2, aa3, test1, zk1, zookeeper]");
         runCommandExpect(cmd, expected);
     }
@@ -571,7 +571,7 @@ public class ZooKeeperTest extends ClientBase {
         cmd.setZk(zk);
         cmd.parse("ls -R /a".split(" "));
 
-        List<String> expected = new ArrayList<String>();
+        List<String> expected = new ArrayList<>();
         expected.add("/a");
         expected.add("/a/b");
         expected.add("/a/c");
@@ -590,7 +590,7 @@ public class ZooKeeperTest extends ClientBase {
         cmd.setZk(zk);
         cmd.parse("ls -R /".split(" "));
 
-        List<String> expected = new ArrayList<String>();
+        List<String> expected = new ArrayList<>();
         expected.add("/");
         expected.add("/zookeeper");
         runCommandExpect(cmd, expected);
@@ -608,7 +608,7 @@ public class ZooKeeperTest extends ClientBase {
         cmd.setZk(zk);
         cmd.parse("ls -R /b/c".split(" "));
 
-        List<String> expected = new ArrayList<String>();
+        List<String> expected = new ArrayList<>();
         expected.add("/b/c");
         runCommandExpect(cmd, expected);
     }
@@ -626,7 +626,7 @@ public class ZooKeeperTest extends ClientBase {
         cmd.parse("ls -R /b/c/d".split(" "));
 
         try {
-            runCommandExpect(cmd, new ArrayList<String>());
+            runCommandExpect(cmd, new ArrayList<>());
             fail("Path doesn't exists so, command should fail.");
         } catch (CliWrapperException e) {
             assertEquals(KeeperException.Code.NONODE, ((KeeperException) e.getCause()).code());
@@ -691,7 +691,7 @@ public class ZooKeeperTest extends ClientBase {
         SyncCommand cmd = new SyncCommand();
         cmd.setZk(zk);
         cmd.parse("sync /".split(" "));
-        List<String> expected = new ArrayList<String>();
+        List<String> expected = new ArrayList<>();
         expected.add("Sync is OK");
 
         runCommandExpect(cmd, expected);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java
index bcfdfcc69..2d94d2ba4 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java
@@ -72,7 +72,7 @@ public class CRCTest extends ZKTestCase {
     /** return if checksum matches for a snapshot **/
     private boolean getCheckSum(FileSnap snap, File snapFile) throws IOException {
         DataTree dt = new DataTree();
-        Map<Long, Integer> sessions = new ConcurrentHashMap<Long, Integer>();
+        Map<Long, Integer> sessions = new ConcurrentHashMap<>();
         InputStream snapIS = new BufferedInputStream(new FileInputStream(snapFile));
         CheckedInputStream crcIn = new CheckedInputStream(snapIS, new Adler32());
         InputArchive ia = BinaryInputArchive.getArchive(crcIn);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/FinalRequestProcessorTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/FinalRequestProcessorTest.java
index 4b47d6cbb..cb86963e4 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/FinalRequestProcessorTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/FinalRequestProcessorTest.java
@@ -50,7 +50,7 @@ import org.mockito.stubbing.Answer;
 
 public class FinalRequestProcessorTest {
 
-    private List<ACL> testACLs = new ArrayList<ACL>();
+    private List<ACL> testACLs = new ArrayList<>();
     private final Record[] responseRecord = new Record[1];
     private final ReplyHeader[] replyHeaders = new ReplyHeader[1];
 
@@ -119,7 +119,7 @@ public class FinalRequestProcessorTest {
     @Test
     public void testACLDigestHashHiding_UserCanRead() {
         // Arrange
-        List<Id> authInfo = new ArrayList<Id>();
+        List<Id> authInfo = new ArrayList<>();
         authInfo.add(new Id("digest", "otheruser:somesecrethash"));
 
         // Act
@@ -133,7 +133,7 @@ public class FinalRequestProcessorTest {
     @Test
     public void testACLDigestHashHiding_UserCanAll() {
         // Arrange
-        List<Id> authInfo = new ArrayList<Id>();
+        List<Id> authInfo = new ArrayList<>();
         authInfo.add(new Id("digest", "user:secrethash"));
 
         // Act
@@ -147,7 +147,7 @@ public class FinalRequestProcessorTest {
     @Test
     public void testACLDigestHashHiding_AdminUser() {
         // Arrange
-        List<Id> authInfo = new ArrayList<Id>();
+        List<Id> authInfo = new ArrayList<>();
         authInfo.add(new Id("digest", "adminuser:adminsecret"));
 
         // Act
@@ -163,7 +163,7 @@ public class FinalRequestProcessorTest {
         // Arrange
         testACLs.clear();
         testACLs.addAll(Arrays.asList(new ACL(ZooDefs.Perms.READ, new Id("digest", "user:secrethash")), new ACL(ZooDefs.Perms.ADMIN, new Id("digest", "adminuser:adminsecret"))));
-        List<Id> authInfo = new ArrayList<Id>();
+        List<Id> authInfo = new ArrayList<>();
         authInfo.add(new Id("digest", "adminuser:adminsecret"));
 
         // Act
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/PrepRequestProcessorTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/PrepRequestProcessorTest.java
index 689b8eda9..b10258fb5 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/PrepRequestProcessorTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/PrepRequestProcessorTest.java
@@ -371,7 +371,7 @@ public class PrepRequestProcessorTest extends ClientBase {
         }
         @Override
         public Map<Long, Set<Long>> getSessionExpiryMap() {
-            return new HashMap<Long, Set<Long>>();
+            return new HashMap<>();
         }
         @Override
         public long getLocalSessionCount() {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/PurgeTxnTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/PurgeTxnTest.java
index 3a45a8d96..299cdaa64 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/PurgeTxnTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/PurgeTxnTest.java
@@ -186,7 +186,7 @@ public class PurgeTxnTest extends ZKTestCase {
         List<File> foundSnaps = txnLog.findNValidSnapshots(1);
         assertEquals(0, foundSnaps.size());
 
-        List<File> expectedNRecentSnapFiles = new ArrayList<File>();
+        List<File> expectedNRecentSnapFiles = new ArrayList<>();
         int counter = offset + (2 * nRecentCount);
         for (int i = 0; i < nRecentCount; i++) {
             // simulate log file
@@ -234,12 +234,12 @@ public class PurgeTxnTest extends ZKTestCase {
         AtomicInteger offset = new AtomicInteger(0);
         File version2 = new File(tmpDir.toString(), "version-2");
         assertTrue(version2.mkdir(), "Failed to create version_2 dir:" + version2.toString());
-        List<File> snapsToPurge = new ArrayList<File>();
-        List<File> logsToPurge = new ArrayList<File>();
-        List<File> snaps = new ArrayList<File>();
-        List<File> logs = new ArrayList<File>();
-        List<File> snapsAboveRecentFiles = new ArrayList<File>();
-        List<File> logsAboveRecentFiles = new ArrayList<File>();
+        List<File> snapsToPurge = new ArrayList<>();
+        List<File> logsToPurge = new ArrayList<>();
+        List<File> snaps = new ArrayList<>();
+        List<File> logs = new ArrayList<>();
+        List<File> snapsAboveRecentFiles = new ArrayList<>();
+        List<File> logsAboveRecentFiles = new ArrayList<>();
         createDataDirFiles(offset, fileToPurgeCount, false, version2, snapsToPurge, logsToPurge);
         createDataDirFiles(offset, nRecentCount, false, version2, snaps, logs);
         logs.add(logsToPurge.remove(0)); // log that precedes first retained snapshot is also retained
@@ -285,8 +285,8 @@ public class PurgeTxnTest extends ZKTestCase {
         AtomicInteger offset = new AtomicInteger(0);
         File version2 = new File(tmpDir.toString(), "version-2");
         assertTrue(version2.mkdir(), "Failed to create version_2 dir:" + version2.toString());
-        List<File> snaps = new ArrayList<File>();
-        List<File> logs = new ArrayList<File>();
+        List<File> snaps = new ArrayList<>();
+        List<File> logs = new ArrayList<>();
         createDataDirFiles(offset, nRecentCount, testWithPrecedingLogFile, version2, snaps, logs);
 
         FileTxnSnapLog txnLog = new FileTxnSnapLog(tmpDir, tmpDir);
@@ -307,10 +307,10 @@ public class PurgeTxnTest extends ZKTestCase {
         AtomicInteger offset = new AtomicInteger(0);
         File version2 = new File(tmpDir.toString(), "version-2");
         assertTrue(version2.mkdir(), "Failed to create version_2 dir:" + version2.toString());
-        List<File> snapsToPurge = new ArrayList<File>();
-        List<File> logsToPurge = new ArrayList<File>();
-        List<File> snaps = new ArrayList<File>();
-        List<File> logs = new ArrayList<File>();
+        List<File> snapsToPurge = new ArrayList<>();
+        List<File> logsToPurge = new ArrayList<>();
+        List<File> snaps = new ArrayList<>();
+        List<File> logs = new ArrayList<>();
         createDataDirFiles(offset, fileToPurgeCount, false, version2, snapsToPurge, logsToPurge);
         createDataDirFiles(offset, nRecentCount, false, version2, snaps, logs);
         logs.add(logsToPurge.remove(0)); // log that precedes first retained snapshot is also retained
@@ -560,7 +560,7 @@ public class PurgeTxnTest extends ZKTestCase {
 
     private List<String> manyClientOps(final ZooKeeper zk, final CountDownLatch doPurge, int thCount, final String prefix) {
         Thread[] ths = new Thread[thCount];
-        final List<String> znodes = Collections.synchronizedList(new ArrayList<String>());
+        final List<String> znodes = Collections.synchronizedList(new ArrayList<>());
         final CountDownLatch finished = new CountDownLatch(thCount);
         final AtomicReference<Exception> exception = new AtomicReference<>();
         for (int indx = 0; indx < thCount; indx++) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/ReferenceCountedACLCacheTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/ReferenceCountedACLCacheTest.java
index 9eab2e8cd..e7bb38da9 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/ReferenceCountedACLCacheTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/ReferenceCountedACLCacheTest.java
@@ -50,14 +50,14 @@ public class ReferenceCountedACLCacheTest {
 
     @Test
     public void testWhetherOrderingMatters() {
-        List<ACL> testACL = new ArrayList<ACL>();
+        List<ACL> testACL = new ArrayList<>();
         testACL.add(new ACL(ZooDefs.Perms.READ, new Id("scheme", "ro")));
         testACL.add(new ACL(ZooDefs.Perms.WRITE, new Id("scheme", "rw")));
 
         ReferenceCountedACLCache cache = new ReferenceCountedACLCache();
         Long aclId = cache.convertAcls(testACL);
 
-        List<ACL> testACL2 = new ArrayList<ACL>();
+        List<ACL> testACL2 = new ArrayList<>();
         testACL2.add(new ACL(ZooDefs.Perms.WRITE, new Id("scheme", "rw")));
         testACL2.add(new ACL(ZooDefs.Perms.READ, new Id("scheme", "ro")));
 
@@ -279,7 +279,7 @@ public class ReferenceCountedACLCacheTest {
     }
 
     private List<ACL> createACL(String id) {
-        List<ACL> acl1 = new ArrayList<ACL>();
+        List<ACL> acl1 = new ArrayList<>();
         acl1.add(new ACL(ZooDefs.Perms.ADMIN, new Id("scheme", id)));
         return acl1;
     }
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/SnapshotDigestTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/SnapshotDigestTest.java
index 4e8c6f8e2..fb73e1572 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/SnapshotDigestTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/SnapshotDigestTest.java
@@ -100,7 +100,7 @@ public class SnapshotDigestTest extends ClientBase {
         zk.delete(firstNode, -1);
 
         // trigger multi op
-        List<Op> subTxns = new ArrayList<Op>();
+        List<Op> subTxns = new ArrayList<>();
         for (int i = 0; i < 3; i++) {
             String path = pathPrefix + "-m" + i;
             subTxns.add(Op.create(path, path.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT));
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/TxnLogDigestTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/TxnLogDigestTest.java
index ae58fa563..c6af1724a 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/TxnLogDigestTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/TxnLogDigestTest.java
@@ -236,7 +236,7 @@ public class TxnLogDigestTest extends ClientBase {
         client.setData(path, updatedData.getBytes(), -1);
         nodes.put(path, updatedData);
 
-        List<Op> subTxns = new ArrayList<Op>();
+        List<Op> subTxns = new ArrayList<>();
         for (int i = 0; i < 3; i++) {
             path = prefix + "/m" + i;
             subTxns.add(Op.create(path, path.getBytes(),
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/CommandResponseTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/CommandResponseTest.java
index 8009dab47..855acd0b5 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/CommandResponseTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/CommandResponseTest.java
@@ -47,7 +47,7 @@ public class CommandResponseTest extends ZKTestCase {
     @Test
     public void testMap() {
         r.put("missing", "sudo");
-        Map<String, Object> m = new HashMap<String, Object>();
+        Map<String, Object> m = new HashMap<>();
         m.put("origin", "xkcd");
         m.put("url", "http://xkcd.com/149/");
         r.putAll(m);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/CommandsTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/CommandsTest.java
index c60ae868d..85c4a78e9 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/CommandsTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/CommandsTest.java
@@ -107,7 +107,7 @@ public class CommandsTest extends ClientBase {
     }
 
     public void testCommand(String cmdName, Field... fields) throws IOException, InterruptedException {
-        testCommand(cmdName, new HashMap<String, String>(), null, new HashMap<>(), HttpServletResponse.SC_OK, fields);
+        testCommand(cmdName, new HashMap<>(), null, new HashMap<>(), HttpServletResponse.SC_OK, fields);
     }
 
     private static class Field {
@@ -271,7 +271,7 @@ public class CommandsTest extends ClientBase {
 
     @Test
     public void testSetTraceMask() throws IOException, InterruptedException {
-        Map<String, String> kwargs = new HashMap<String, String>();
+        Map<String, String> kwargs = new HashMap<>();
         kwargs.put("traceMask", "1");
         testCommand("set_trace_mask", kwargs, null, new HashMap<>(), HttpServletResponse.SC_OK, new Field("tracemask", Long.class));
     }
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CnxManagerTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CnxManagerTest.java
index ad43d8826..920c1391c 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CnxManagerTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CnxManagerTest.java
@@ -78,7 +78,7 @@ public class CnxManagerTest extends ZKTestCase {
     public void setUp() throws Exception {
 
         this.count = 3;
-        this.peers = new HashMap<Long, QuorumServer>(count);
+        this.peers = new HashMap<>(count);
         peerTmpdir = new File[count];
         peerQuorumPort = new int[count];
         peerClientPort = new int[count];
@@ -499,7 +499,7 @@ public class CnxManagerTest extends ZKTestCase {
      */
     @Test
     public void testWorkerThreads() throws Exception {
-        ArrayList<QuorumPeer> peerList = new ArrayList<QuorumPeer>();
+        ArrayList<QuorumPeer> peerList = new ArrayList<>();
         try {
             for (int sid = 0; sid < 3; sid++) {
                 QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[sid], peerTmpdir[sid], peerClientPort[sid], 3, sid, 1000, 2, 2, 2);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CommitProcessorConcurrencyTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CommitProcessorConcurrencyTest.java
index e5f668d1f..21970f3ea 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CommitProcessorConcurrencyTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CommitProcessorConcurrencyTest.java
@@ -63,7 +63,7 @@ public class CommitProcessorConcurrencyTest extends ZKTestCase {
 
     @BeforeEach
     public void setUp() throws Exception {
-        processedRequests = new LinkedBlockingQueue<Request>();
+        processedRequests = new LinkedBlockingQueue<>();
         processor = new MockCommitProcessor();
         CommitProcessor.setMaxReadBatchSize(-1);
         CommitProcessor.setMaxCommitBatchSize(1);
@@ -174,8 +174,8 @@ public class CommitProcessorConcurrencyTest extends ZKTestCase {
     @Test
     public void processAsMuchUncommittedRequestsAsPossibleTest() throws Exception {
         final String path = "/testAsMuchAsPossible";
-        List<Request> shouldBeProcessed = new LinkedList<Request>();
-        Set<Request> shouldNotBeProcessed = new HashSet<Request>();
+        List<Request> shouldBeProcessed = new LinkedList<>();
+        Set<Request> shouldNotBeProcessed = new HashSet<>();
         for (int sessionId = 1; sessionId <= 5; ++sessionId) {
             for (int readReqId = 1; readReqId <= sessionId; ++readReqId) {
                 Request readReq = newRequest(new GetDataRequest(path, false), OpCode.getData, sessionId, readReqId);
@@ -225,8 +225,8 @@ public class CommitProcessorConcurrencyTest extends ZKTestCase {
     @Test
     public void processAllFollowingUncommittedAfterFirstCommitTest() throws Exception {
         final String path = "/testUncommittedFollowingCommited";
-        Set<Request> shouldBeInPending = new HashSet<Request>();
-        Set<Request> shouldBeProcessedAfterPending = new HashSet<Request>();
+        Set<Request> shouldBeInPending = new HashSet<>();
+        Set<Request> shouldBeProcessedAfterPending = new HashSet<>();
 
         Request writeReq = newRequest(
             new CreateRequest(path, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL.toFlag()),
@@ -287,7 +287,7 @@ public class CommitProcessorConcurrencyTest extends ZKTestCase {
     @Test
     public void processAllWritesMaxBatchSize() throws Exception {
         final String path = "/processAllWritesMaxBatchSize";
-        HashSet<Request> shouldBeProcessedAfterPending = new HashSet<Request>();
+        HashSet<Request> shouldBeProcessedAfterPending = new HashSet<>();
 
         Request writeReq = newRequest(
             new CreateRequest(
@@ -423,7 +423,7 @@ public class CommitProcessorConcurrencyTest extends ZKTestCase {
     public void noStarvationOfNonLocalCommittedRequestsTest() throws Exception {
         final String path = "/noStarvationOfCommittedRequests";
         processor.queuedRequests = new MockRequestsQueue();
-        Set<Request> nonLocalCommits = new HashSet<Request>();
+        Set<Request> nonLocalCommits = new HashSet<>();
         for (int i = 0; i < 10; i++) {
             Request nonLocalCommitReq = newRequest(
                 new CreateRequest(path, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL.toFlag()),
@@ -461,7 +461,7 @@ public class CommitProcessorConcurrencyTest extends ZKTestCase {
         processor.queuedRequests.add(firstCommittedReq);
         processor.queuedWriteRequests.add(firstCommittedReq);
         processor.committedRequests.add(firstCommittedReq);
-        Set<Request> allReads = new HashSet<Request>();
+        Set<Request> allReads = new HashSet<>();
 
         // +1 read request to queuedRequests
         Request firstRead = newRequest(new GetDataRequest(path, false), OpCode.getData, 0x1, 0);
@@ -476,7 +476,7 @@ public class CommitProcessorConcurrencyTest extends ZKTestCase {
             2);
         processor.committedRequests.add(secondCommittedReq);
 
-        Set<Request> waitingCommittedRequests = new HashSet<Request>();
+        Set<Request> waitingCommittedRequests = new HashSet<>();
         // +99 non local committed requests
         for (int writeReqId = 3; writeReqId < 102; ++writeReqId) {
             Request writeReq = newRequest(
@@ -530,7 +530,7 @@ public class CommitProcessorConcurrencyTest extends ZKTestCase {
         final int firstCXid = 0x100;
         int readReqId = firstCXid;
         processor.stoppedMainLoop = true;
-        HashSet<Request> localRequests = new HashSet<Request>();
+        HashSet<Request> localRequests = new HashSet<>();
         // queue the blocking write request to queuedRequests
         Request firstCommittedReq = newRequest(
             new CreateRequest(path, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL.toFlag()),
@@ -592,7 +592,7 @@ public class CommitProcessorConcurrencyTest extends ZKTestCase {
         final int numberofReads = 10;
         int readReqId = lastCXid;
         processor.stoppedMainLoop = true;
-        HashSet<Request> localRequests = new HashSet<Request>();
+        HashSet<Request> localRequests = new HashSet<>();
 
         // queue the blocking write request to queuedRequests
         Request orphanCommittedReq = newRequest(
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CommitProcessorTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CommitProcessorTest.java
index 46a4c3874..2de0987af 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CommitProcessorTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/CommitProcessorTest.java
@@ -81,7 +81,7 @@ public class CommitProcessorTest extends ZKTestCase {
     boolean stopped;
     TestZooKeeperServer zks;
     File tmpDir;
-    ArrayList<TestClientThread> testClients = new ArrayList<TestClientThread>();
+    ArrayList<TestClientThread> testClients = new ArrayList<>();
     CommitProcessor commitProcessor;
 
     public void setUp(int numCommitThreads, int numClientThreads, int writePercent) throws Exception {
@@ -318,7 +318,7 @@ public class CommitProcessorTest extends ZKTestCase {
     private class MockProposalRequestProcessor extends Thread implements RequestProcessor {
 
         private final CommitProcessor commitProcessor;
-        private final LinkedBlockingQueue<Request> proposals = new LinkedBlockingQueue<Request>();
+        private final LinkedBlockingQueue<Request> proposals = new LinkedBlockingQueue<>();
 
         public MockProposalRequestProcessor(CommitProcessor commitProcessor) {
             this.commitProcessor = commitProcessor;
@@ -367,7 +367,7 @@ public class CommitProcessorTest extends ZKTestCase {
         RequestProcessor nextProcessor;
         CommitProcessor commitProcessor;
         AtomicLong expectedZxid = new AtomicLong(1);
-        ConcurrentHashMap<Long, AtomicInteger> cxidMap = new ConcurrentHashMap<Long, AtomicInteger>();
+        ConcurrentHashMap<Long, AtomicInteger> cxidMap = new ConcurrentHashMap<>();
 
         AtomicInteger outstandingReadRequests = new AtomicInteger(0);
         AtomicInteger outstandingWriteRequests = new AtomicInteger(0);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java
index e4d32456a..67d646c97 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java
@@ -49,7 +49,7 @@ public class FLEBackwardElectionRoundTest extends ZKTestCase {
     public void setUp() throws Exception {
         count = 3;
 
-        peers = new HashMap<Long, QuorumServer>(count);
+        peers = new HashMap<>(count);
         tmpdir = new File[count];
         port = new int[count];
         cnxManagers = new QuorumCnxManager[count - 1];
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLELostMessageTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLELostMessageTest.java
index 84b233d72..d84396ed5 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLELostMessageTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLELostMessageTest.java
@@ -49,7 +49,7 @@ public class FLELostMessageTest extends ZKTestCase {
     public void setUp() throws Exception {
         count = 3;
 
-        peers = new HashMap<Long, QuorumServer>(count);
+        peers = new HashMap<>(count);
         tmpdir = new File[count];
         port = new int[count];
     }
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLEOutOfElectionTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLEOutOfElectionTest.java
index d1afdaa80..7feed9c05 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLEOutOfElectionTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FLEOutOfElectionTest.java
@@ -43,7 +43,7 @@ public class FLEOutOfElectionTest {
     @BeforeEach
     public void setUp() throws Exception {
         File tmpdir = ClientBase.createTmpDir();
-        Map<Long, QuorumServer> peers = new HashMap<Long, QuorumServer>();
+        Map<Long, QuorumServer> peers = new HashMap<>();
         for (int i = 0; i < 5; i++) {
             peers.put(Long.valueOf(i), new QuorumServer(Long.valueOf(i), new InetSocketAddress("127.0.0.1", PortAssignment.unique())));
         }
@@ -53,7 +53,7 @@ public class FLEOutOfElectionTest {
 
     @Test
     public void testIgnoringZxidElectionEpoch() {
-        Map<Long, Vote> votes = new HashMap<Long, Vote>();
+        Map<Long, Vote> votes = new HashMap<>();
         votes.put(0L, new Vote(0x1, 4L, ZxidUtils.makeZxid(1, 1), 1, 2, ServerState.FOLLOWING));
         votes.put(1L, new Vote(0x1, 4L, ZxidUtils.makeZxid(1, 2), 1, 2, ServerState.FOLLOWING));
         votes.put(3L, new Vote(0x1, 4L, ZxidUtils.makeZxid(2, 1), 2, 2, ServerState.FOLLOWING));
@@ -64,7 +64,7 @@ public class FLEOutOfElectionTest {
 
     @Test
     public void testElectionWIthDifferentVersion() {
-        Map<Long, Vote> votes = new HashMap<Long, Vote>();
+        Map<Long, Vote> votes = new HashMap<>();
         votes.put(0L, new Vote(0x1, 4L, ZxidUtils.makeZxid(1, 1), 1, 1, ServerState.FOLLOWING));
         votes.put(1L, new Vote(0x1, 4L, ZxidUtils.makeZxid(1, 1), 1, 1, ServerState.FOLLOWING));
         votes.put(3L, new Vote(4L, ZxidUtils.makeZxid(2, 1), 2, 2, ServerState.FOLLOWING));
@@ -75,7 +75,7 @@ public class FLEOutOfElectionTest {
 
     @Test
     public void testLookingNormal() {
-        Map<Long, Vote> votes = new HashMap<Long, Vote>();
+        Map<Long, Vote> votes = new HashMap<>();
         votes.put(0L, new Vote(4L, ZxidUtils.makeZxid(2, 1), 1, 1, ServerState.LOOKING));
         votes.put(1L, new Vote(4L, ZxidUtils.makeZxid(2, 1), 1, 1, ServerState.LOOKING));
         votes.put(3L, new Vote(4L, ZxidUtils.makeZxid(2, 1), 1, 1, ServerState.LOOKING));
@@ -86,7 +86,7 @@ public class FLEOutOfElectionTest {
 
     @Test
     public void testLookingDiffRounds() {
-        HashMap<Long, Vote> votes = new HashMap<Long, Vote>();
+        HashMap<Long, Vote> votes = new HashMap<>();
         votes.put(0L, new Vote(4L, ZxidUtils.makeZxid(1, 1), 1, 1, ServerState.LOOKING));
         votes.put(1L, new Vote(4L, ZxidUtils.makeZxid(2, 1), 2, 2, ServerState.LOOKING));
         votes.put(3L, new Vote(4L, ZxidUtils.makeZxid(2, 1), 3, 2, ServerState.LOOKING));
@@ -97,7 +97,7 @@ public class FLEOutOfElectionTest {
 
     @Test
     public void testOutofElection() {
-        HashMap<Long, Vote> outofelection = new HashMap<Long, Vote>();
+        HashMap<Long, Vote> outofelection = new HashMap<>();
 
         outofelection.put(1L, new Vote(0x0, 5, ZxidUtils.makeZxid(15, 0), 0xa, 0x17, ServerState.FOLLOWING));
         outofelection.put(2L, new Vote(0x0, 5, ZxidUtils.makeZxid(15, 0), 0xa, 0x17, ServerState.FOLLOWING));
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FuzzySnapshotRelatedTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FuzzySnapshotRelatedTest.java
index a75fb3830..73ad201c1 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FuzzySnapshotRelatedTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/FuzzySnapshotRelatedTest.java
@@ -430,8 +430,8 @@ public class FuzzySnapshotRelatedTest extends QuorumPeerTestBase {
 
     static class CustomDataTree extends DataTree {
 
-        Map<String, NodeCreateListener> nodeCreateListeners = new HashMap<String, NodeCreateListener>();
-        Map<String, NodeSerializeListener> listeners = new HashMap<String, NodeSerializeListener>();
+        Map<String, NodeCreateListener> nodeCreateListeners = new HashMap<>();
+        Map<String, NodeSerializeListener> listeners = new HashMap<>();
         DigestSerializeListener digestListener;
         SetDataTxnListener setListener;
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LeaderBeanTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LeaderBeanTest.java
index dc537abbd..82084e13c 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LeaderBeanTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LeaderBeanTest.java
@@ -62,7 +62,7 @@ public class LeaderBeanTest {
 
     public static Map<Long, QuorumServer> getMockedPeerViews(long myId) {
         int clientPort = PortAssignment.unique();
-        Map<Long, QuorumServer> peersView = new HashMap<Long, QuorumServer>();
+        Map<Long, QuorumServer> peersView = new HashMap<>();
         InetAddress clientIP = InetAddress.getLoopbackAddress();
 
         peersView.put(Long.valueOf(myId),
@@ -174,7 +174,7 @@ public class LeaderBeanTest {
 
     @Test
     public void testFollowerInfo() throws IOException {
-        Map<Long, QuorumServer> votingMembers = new HashMap<Long, QuorumServer>();
+        Map<Long, QuorumServer> votingMembers = new HashMap<>();
         votingMembers.put(1L, null);
         votingMembers.put(2L, null);
         votingMembers.put(3L, null);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerHandlerTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerHandlerTest.java
index 2d63f24e5..bbf36367e 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerHandlerTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerHandlerTest.java
@@ -73,8 +73,8 @@ public class LearnerHandlerTest extends ZKTestCase {
 
         long lastProcessedZxid;
         ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
-        LinkedList<Proposal> committedLog = new LinkedList<Leader.Proposal>();
-        LinkedList<Proposal> txnLog = new LinkedList<Leader.Proposal>();
+        LinkedList<Proposal> committedLog = new LinkedList<>();
+        LinkedList<Proposal> txnLog = new LinkedList<>();
 
         public MockZKDatabase(FileTxnSnapLog snapLog) {
             super(snapLog);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerSyncThrottlerTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerSyncThrottlerTest.java
index fbd33d2a0..51d80c2c2 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerSyncThrottlerTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerSyncThrottlerTest.java
@@ -127,7 +127,7 @@ public class LearnerSyncThrottlerTest extends ZKTestCase {
         final CountDownLatch threadStartLatch = new CountDownLatch(numThreads);
         final CountDownLatch syncProgressLatch = new CountDownLatch(numThreads);
 
-        List<Future<Boolean>> results = new ArrayList<Future<Boolean>>(numThreads);
+        List<Future<Boolean>> results = new ArrayList<>(numThreads);
         for (int i = 0; i < numThreads; i++) {
             results.add(threadPool.submit(new Callable<Boolean>() {
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumDigestTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumDigestTest.java
index af2fed8cf..1ffc74f0d 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumDigestTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumDigestTest.java
@@ -251,7 +251,7 @@ public class QuorumDigestTest extends QuorumPeerTestBase {
                 ProcessTxnResult rc = new ProcessTxnResult();
                 rc.path = "";
                 rc.stat = new Stat();
-                rc.multiResult = new ArrayList<ProcessTxnResult>();
+                rc.multiResult = new ArrayList<>();
                 return rc;
             }
             return invocation.proceed(header, txn, digest);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerTest.java
index 194144b14..b832f4f96 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerTest.java
@@ -49,7 +49,7 @@ public class QuorumPeerTest {
         long myId = 1;
         File dataDir = ClientBase.createTmpDir();
         int clientPort = PortAssignment.unique();
-        Map<Long, QuorumServer> peersView = new HashMap<Long, QuorumServer>();
+        Map<Long, QuorumServer> peersView = new HashMap<>();
         InetAddress clientIP = InetAddress.getLoopbackAddress();
 
         peersView.put(Long.valueOf(myId), new QuorumServer(myId, new InetSocketAddress(clientIP, PortAssignment.unique()), new InetSocketAddress(clientIP, PortAssignment.unique()), new InetSocketAddress(clientIP, clientPort), LearnerType.PARTICIPANT));
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerTestBase.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerTestBase.java
index 2a116dce0..8249cd222 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerTestBase.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerTestBase.java
@@ -303,7 +303,7 @@ public class QuorumPeerTestBase extends ZKTestCase implements Watcher {
         }
 
         public MainThread(int myid, int clientPort, String quorumCfgSection) throws IOException {
-            this(myid, clientPort, quorumCfgSection, new HashMap<String, String>());
+            this(myid, clientPort, quorumCfgSection, new HashMap<>());
         }
 
         public MainThread(int myid, int clientPort, String quorumCfgSection, Map<String, String> otherConfigs) throws IOException {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumRequestPipelineTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumRequestPipelineTest.java
index c395a62e6..624661044 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumRequestPipelineTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumRequestPipelineTest.java
@@ -46,7 +46,7 @@ public class QuorumRequestPipelineTest extends QuorumBase {
     protected final CountDownLatch callComplete = new CountDownLatch(1);
     protected boolean complete = false;
     protected static final String PARENT_PATH = "/foo";
-    protected static final Set<String> CHILDREN = new HashSet<String>(Arrays.asList("1", "2", "3"));
+    protected static final Set<String> CHILDREN = new HashSet<>(Arrays.asList("1", "2", "3"));
     protected static final String AUTH_PROVIDER = "digest";
     protected static final byte[] AUTH = "hello".getBytes();
     protected static final byte[] DATA = "Hint Water".getBytes();
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumSSLTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumSSLTest.java
index b5af84f1e..b7aed52bc 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumSSLTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumSSLTest.java
@@ -896,7 +896,7 @@ public class QuorumSSLTest extends QuorumPeerTestBase {
     public void testCipherSuites() throws Exception {
         // Get default cipher suites from JDK
         SSLServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
-        List<String> defaultCiphers = new ArrayList<String>();
+        List<String> defaultCiphers = new ArrayList<>();
         for (String cipher : ssf.getDefaultCipherSuites()) {
             if (!cipher.matches(".*EMPTY.*") && cipher.startsWith("TLS") && cipher.contains("RSA")) {
                 defaultCiphers.add(cipher);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigBackupTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigBackupTest.java
index b465865b3..cb03b2f8f 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigBackupTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigBackupTest.java
@@ -117,8 +117,8 @@ public class ReconfigBackupTest extends QuorumPeerTestBase {
         final String[] servers = new String[NEW_SERVER_COUNT];
 
         StringBuilder sb = new StringBuilder();
-        ArrayList<String> oldServers = new ArrayList<String>();
-        ArrayList<String> newServers = new ArrayList<String>();
+        ArrayList<String> oldServers = new ArrayList<>();
+        ArrayList<String> newServers = new ArrayList<>();
 
         for (int i = 0; i < NEW_SERVER_COUNT; i++) {
             clientPorts[i] = PortAssignment.unique();
@@ -238,7 +238,7 @@ public class ReconfigBackupTest extends QuorumPeerTestBase {
         StringBuilder sb = new StringBuilder();
         String server;
         StringBuilder oldSb = new StringBuilder();
-        ArrayList<String> allServers = new ArrayList<String>();
+        ArrayList<String> allServers = new ArrayList<>();
 
         for (int i = 0; i < SERVER_COUNT; i++) {
             clientPorts[i] = PortAssignment.unique();
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigFailureCasesTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigFailureCasesTest.java
index 4fba09f84..120365444 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigFailureCasesTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigFailureCasesTest.java
@@ -66,7 +66,7 @@ public class ReconfigFailureCasesTest extends QuorumPeerTestBase {
         ZooKeeper[] zkArr = ReconfigTest.createHandles(qu);
         ZooKeeperAdmin[] zkAdminArr = ReconfigTest.createAdminHandles(qu);
 
-        ArrayList<String> members = new ArrayList<String>();
+        ArrayList<String> members = new ArrayList<>();
         members.add("group.1=3:4:5");
         members.add("group.2=1:2");
         members.add("weight.1=0");
@@ -88,7 +88,7 @@ public class ReconfigFailureCasesTest extends QuorumPeerTestBase {
         ReconfigTest.testNormalOperation(zkArr[1], zkArr[2]);
 
         // Attempt an incremental reconfig.
-        List<String> leavingServers = new ArrayList<String>();
+        List<String> leavingServers = new ArrayList<>();
         leavingServers.add("3");
         try {
             zkAdminArr[1].reconfigure(null, leavingServers, null, -1, null);
@@ -117,7 +117,7 @@ public class ReconfigFailureCasesTest extends QuorumPeerTestBase {
         ZooKeeper[] zkArr = ReconfigTest.createHandles(qu);
         ZooKeeperAdmin[] zkAdminArr = ReconfigTest.createAdminHandles(qu);
 
-        List<String> leavingServers = new ArrayList<String>();
+        List<String> leavingServers = new ArrayList<>();
         leavingServers.add("2");
         leavingServers.add("3");
         try {
@@ -144,7 +144,7 @@ public class ReconfigFailureCasesTest extends QuorumPeerTestBase {
         ZooKeeper[] zkArr = ReconfigTest.createHandles(qu);
         ZooKeeperAdmin[] zkAdminArr = ReconfigTest.createAdminHandles(qu);
 
-        List<String> leavingServers = new ArrayList<String>();
+        List<String> leavingServers = new ArrayList<>();
         leavingServers.add("3");
         try {
             zkAdminArr[1].reconfigure(null, leavingServers, null, 8, null);
@@ -183,7 +183,7 @@ public class ReconfigFailureCasesTest extends QuorumPeerTestBase {
         int[][] ports = ReconfigRecoveryTest.generatePorts(SERVER_COUNT);
 
         // generate old config string
-        Set<Integer> observers = new HashSet<Integer>();
+        Set<Integer> observers = new HashSet<>();
         observers.add(3);
         StringBuilder sb = ReconfigRecoveryTest.generateConfig(SERVER_COUNT, ports, observers);
         String currentQuorumCfgSection = sb.toString();
@@ -217,7 +217,7 @@ public class ReconfigFailureCasesTest extends QuorumPeerTestBase {
             fail("Reconfig should have failed with NewConfigNoQuorum");
         }
         // In this scenario to change 3's role to participant we need to remove it first
-        ArrayList<String> leavingServers = new ArrayList<String>();
+        ArrayList<String> leavingServers = new ArrayList<>();
         leavingServers.add("3");
         ReconfigTest.reconfig(zkAdmin[1], null, leavingServers, null, -1);
         ReconfigTest.testNormalOperation(zk[2], zk[3]);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigLegacyTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigLegacyTest.java
index 498b4b6c4..2f9a5303e 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigLegacyTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigLegacyTest.java
@@ -60,7 +60,7 @@ public class ReconfigLegacyTest extends QuorumPeerTestBase {
         final int[] clientPorts = new int[SERVER_COUNT];
         StringBuilder sb = new StringBuilder();
         String server;
-        ArrayList<String> allServers = new ArrayList<String>();
+        ArrayList<String> allServers = new ArrayList<>();
 
         for (int i = 0; i < SERVER_COUNT; i++) {
             clientPorts[i] = PortAssignment.unique();
@@ -154,8 +154,8 @@ public class ReconfigLegacyTest extends QuorumPeerTestBase {
         final int newClientPort = PortAssignment.unique();
 
         StringBuilder sb = new StringBuilder();
-        ArrayList<String> allServers = new ArrayList<String>();
-        ArrayList<String> newServers = new ArrayList<String>();
+        ArrayList<String> allServers = new ArrayList<>();
+        ArrayList<String> newServers = new ArrayList<>();
 
         for (int i = 0; i < SERVER_COUNT; i++) {
             clientPorts[i] = PortAssignment.unique();
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigRecoveryTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigRecoveryTest.java
index 746da1d85..80b2a215f 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigRecoveryTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ReconfigRecoveryTest.java
@@ -52,7 +52,7 @@ public class ReconfigRecoveryTest extends QuorumPeerTestBase {
         final int[] clientPorts = new int[SERVER_COUNT];
         StringBuilder sb = new StringBuilder();
         String server;
-        ArrayList<String> allServers = new ArrayList<String>();
+        ArrayList<String> allServers = new ArrayList<>();
 
         String currentQuorumCfgSection = null, nextQuorumCfgSection;
 
@@ -136,7 +136,7 @@ public class ReconfigRecoveryTest extends QuorumPeerTestBase {
 
         String currentQuorumCfg, nextQuorumCfgSection;
 
-        ArrayList<String> allServersNext = new ArrayList<String>();
+        ArrayList<String> allServersNext = new ArrayList<>();
 
         for (int i = 0; i < 2; i++) {
             oldClientPorts[i] = PortAssignment.unique();
@@ -294,7 +294,7 @@ public class ReconfigRecoveryTest extends QuorumPeerTestBase {
 
         String currentQuorumCfgSection = null, nextQuorumCfgSection;
 
-        ArrayList<String> allServers = new ArrayList<String>();
+        ArrayList<String> allServers = new ArrayList<>();
         for (int i = 0; i < SERVER_COUNT; i++) {
             clientPorts[i] = PortAssignment.unique();
             server = "server." + i + "=localhost:" + PortAssignment.unique() + ":" + PortAssignment.unique()
@@ -375,13 +375,13 @@ public class ReconfigRecoveryTest extends QuorumPeerTestBase {
         String currentQuorumCfgSection, nextQuorumCfgSection;
 
         // generate old config string
-        Set<Integer> observers = new HashSet<Integer>();
+        Set<Integer> observers = new HashSet<>();
         observers.add(2);
         StringBuilder sb = generateConfig(3, ports, observers);
         currentQuorumCfgSection = sb.toString();
 
         // generate new config string
-        ArrayList<String> allServersNext = new ArrayList<String>();
+        ArrayList<String> allServersNext = new ArrayList<>();
         sb = new StringBuilder();
         for (int i = 2; i < SERVER_COUNT; i++) {
             String server = "server." + i + "=localhost:" + ports[i][0] + ":" + ports[i][1]
@@ -446,7 +446,7 @@ public class ReconfigRecoveryTest extends QuorumPeerTestBase {
         String currentQuorumCfg, nextQuorumCfgSection;
 
         // generate old config string
-        Set<Integer> observers = new HashSet<Integer>();
+        Set<Integer> observers = new HashSet<>();
         observers.add(2);
 
         StringBuilder sb = generateConfig(3, ports, observers);
@@ -475,7 +475,7 @@ public class ReconfigRecoveryTest extends QuorumPeerTestBase {
         }
 
         // generate new config string
-        ArrayList<String> allServersNext = new ArrayList<String>();
+        ArrayList<String> allServersNext = new ArrayList<>();
         sb = new StringBuilder();
         for (int i = 2; i < SERVER_COUNT; i++) {
             String server = "server." + i + "=localhost:" + ports[i][0] + ":" + ports[i][1]
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/SessionUpgradeQuorumTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/SessionUpgradeQuorumTest.java
index 3d60c8b91..8876f74c9 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/SessionUpgradeQuorumTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/SessionUpgradeQuorumTest.java
@@ -149,7 +149,7 @@ public class SessionUpgradeQuorumTest extends QuorumPeerTestBase {
             mt[i].shutdown();
         }
 
-        ArrayList<States> waitStates = new ArrayList<States>();
+        ArrayList<States> waitStates = new ArrayList<>();
         waitStates.add(States.CONNECTING);
         waitStates.add(States.CLOSED);
         waitForOne(zk, waitStates);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/StandaloneDisabledTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/StandaloneDisabledTest.java
index 2cfec4d52..1483d80a8 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/StandaloneDisabledTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/StandaloneDisabledTest.java
@@ -108,7 +108,7 @@ public class StandaloneDisabledTest extends QuorumPeerTestBase {
 
         //Add two participants and change them to observers to check
         //that we can reconfigure down to one participant with observers.
-        ArrayList<String> observerStrings = new ArrayList<String>();
+        ArrayList<String> observerStrings = new ArrayList<>();
         startObservers(observerStrings);
         testReconfig(follower2, true, reconfigServers); //add partcipants
         testReconfig(follower2, true, observerStrings); //change to observers
@@ -129,7 +129,7 @@ public class StandaloneDisabledTest extends QuorumPeerTestBase {
         zkAdminHandles = new ZooKeeperAdmin[NUM_SERVERS];
         clientPorts = new int[NUM_SERVERS];
         serverStrings = buildServerStrings();
-        reconfigServers = new ArrayList<String>();
+        reconfigServers = new ArrayList<>();
         System.setProperty("zookeeper.DigestAuthenticationProvider.superDigest", "super:D/InIHSb7yEEbrWz8b9l71RjZJU="/* password is 'test'*/);
     }
 
@@ -151,7 +151,7 @@ public class StandaloneDisabledTest extends QuorumPeerTestBase {
      * the test servers.
      */
     private ArrayList<String> buildServerStrings() {
-        ArrayList<String> serverStrings = new ArrayList<String>();
+        ArrayList<String> serverStrings = new ArrayList<>();
 
         for (int i = 0; i < NUM_SERVERS; i++) {
             clientPorts[i] = PortAssignment.unique();
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/WatchLeakTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/WatchLeakTest.java
index 2fadcf36f..93d3b845c 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/WatchLeakTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/WatchLeakTest.java
@@ -228,7 +228,7 @@ public class WatchLeakTest {
      * @return a message that attempts to set 1 watch on /
      */
     private ByteBuffer createWatchesMessage() {
-        List<String> dataWatches = new ArrayList<String>(1);
+        List<String> dataWatches = new ArrayList<>(1);
         dataWatches.add("/");
         List<String> existWatches = Collections.emptyList();
         List<String> childWatches = Collections.emptyList();
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/Zab1_0Test.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/Zab1_0Test.java
index 107ae6a72..dcf7819b1 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/Zab1_0Test.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/Zab1_0Test.java
@@ -1195,7 +1195,7 @@ public class Zab1_0Test extends ZKTestCase {
             FileTxnSnapLog logFactory = new FileTxnSnapLog(tmpDir, tmpDir);
             File version2 = new File(tmpDir, "version-2");
             version2.mkdir();
-            logFactory.save(new DataTree(), new ConcurrentHashMap<Long, Integer>(), false);
+            logFactory.save(new DataTree(), new ConcurrentHashMap<>(), false);
             long zxid = ZxidUtils.makeZxid(3, 3);
             logFactory.append(new Request(1, 1, ZooDefs.OpCode.error, new TxnHeader(1, 1, zxid, 1, ZooDefs.OpCode.error), new ErrorTxn(1), zxid));
             logFactory.commit();
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ZabUtils.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ZabUtils.java
index fff5e62de..0755e8920 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ZabUtils.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/ZabUtils.java
@@ -42,7 +42,7 @@ public class ZabUtils {
     public static final int SYNC_LIMIT = 2;
 
     public static QuorumPeer createQuorumPeer(File tmpDir) throws IOException {
-        HashMap<Long, QuorumPeer.QuorumServer> peers = new HashMap<Long, QuorumPeer.QuorumServer>();
+        HashMap<Long, QuorumPeer.QuorumServer> peers = new HashMap<>();
         QuorumPeer peer = QuorumPeer.testingQuorumPeer();
         peer.syncLimit = SYNC_LIMIT;
         peer.initLimit = 2;
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/KerberosTestUtils.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/KerberosTestUtils.java
index db95d8d6d..e7de1dc35 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/KerberosTestUtils.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/KerberosTestUtils.java
@@ -115,7 +115,7 @@ public class KerberosTestUtils {
 
         @Override
         public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
-            Map<String, String> options = new HashMap<String, String>();
+            Map<String, String> options = new HashMap<>();
             options.put("principal", principal);
             options.put("refreshKrb5Config", "true");
             if (IBM_JAVA) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/MiniKdc.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/MiniKdc.java
index fdd68b5bc..bfb61a7d8 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/MiniKdc.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/MiniKdc.java
@@ -154,7 +154,7 @@ public class MiniKdc {
     public static final String TRANSPORT = "transport";
     public static final String DEBUG = "debug";
 
-    private static final Set<String> PROPERTIES = new HashSet<String>();
+    private static final Set<String> PROPERTIES = new HashSet<>();
     private static final Properties DEFAULT_CONFIG = new Properties();
 
     static {
@@ -214,7 +214,7 @@ public class MiniKdc {
      */
     public MiniKdc(Properties conf, File workDir) throws Exception {
         if (!conf.keySet().containsAll(PROPERTIES)) {
-            Set<String> missingProperties = new HashSet<String>(PROPERTIES);
+            Set<String> missingProperties = new HashSet<>(PROPERTIES);
             missingProperties.removeAll(conf.keySet());
             throw new IllegalArgumentException("Missing configuration properties: " + missingProperties);
         }
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/MiniKdcTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/MiniKdcTest.java
index 3e57f9a46..4221ceb81 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/MiniKdcTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/MiniKdcTest.java
@@ -61,7 +61,7 @@ public class MiniKdcTest extends KerberosSecurityTestcase {
         kdc.createPrincipal(new File(workDir, "keytab"), "foo/bar", "bar/foo");
         List<PrincipalName> principalNameList = Keytab.loadKeytab(new File(workDir, "keytab")).getPrincipals();
 
-        Set<String> principals = new HashSet<String>();
+        Set<String> principals = new HashSet<>();
         for (PrincipalName principalName : principalNameList) {
             principals.add(principalName.getName());
         }
@@ -82,7 +82,7 @@ public class MiniKdcTest extends KerberosSecurityTestcase {
             File keytab = new File(workDir, "foo.keytab");
             kdc.createPrincipal(keytab, principal);
 
-            Set<Principal> principals = new HashSet<Principal>();
+            Set<Principal> principals = new HashSet<>();
             principals.add(new KerberosPrincipal(principal));
 
             // client login
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumAuthTestBase.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumAuthTestBase.java
index 67c5d70dc..f1a9bcac8 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumAuthTestBase.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumAuthTestBase.java
@@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory;
 public class QuorumAuthTestBase extends ZKTestCase {
 
     protected static final Logger LOG = LoggerFactory.getLogger(QuorumAuthTestBase.class);
-    protected List<MainThread> mt = new ArrayList<MainThread>();
+    protected List<MainThread> mt = new ArrayList<>();
     protected static File jaasConfigDir;
 
     public static void setupJaasConfig(String jaasEntries) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumAuthUpgradeTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumAuthUpgradeTest.java
index 46d65c9a4..fb03f23d6 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumAuthUpgradeTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumAuthUpgradeTest.java
@@ -87,7 +87,7 @@ public class QuorumAuthUpgradeTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 30)
     public void testNullAuthLearnerServer() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "false");
 
         String connectStr = startQuorum(2, authConfigs, 0);
@@ -106,7 +106,7 @@ public class QuorumAuthUpgradeTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 30)
     public void testAuthLearnerAgainstNullAuthServer() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
 
         String connectStr = startQuorum(2, authConfigs, 1);
@@ -125,7 +125,7 @@ public class QuorumAuthUpgradeTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 30)
     public void testAuthLearnerAgainstNoAuthRequiredServer() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
 
         String connectStr = startQuorum(2, authConfigs, 2);
@@ -144,7 +144,7 @@ public class QuorumAuthUpgradeTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 30)
     public void testAuthLearnerServer() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_AUTH_REQUIRED, "true");
@@ -178,7 +178,7 @@ public class QuorumAuthUpgradeTest extends QuorumAuthTestBase {
         // Start peer0,1,2 servers with quorum.auth.enableSasl=false and
         // quorum.auth.learnerRequireSasl=false, quorum.auth.serverRequireSasl=false
         // Assume this is an existing cluster.
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "false");
 
         String connectStr = startQuorum(3, authConfigs, 0);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumDigestAuthTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumDigestAuthTest.java
index b1b1dedf6..c70c5c9c3 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumDigestAuthTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumDigestAuthTest.java
@@ -81,7 +81,7 @@ public class QuorumDigestAuthTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 30)
     public void testValidCredentials() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_AUTH_REQUIRED, "true");
@@ -103,7 +103,7 @@ public class QuorumDigestAuthTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 30)
     public void testValidCredentialsWithMultiAddresses() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_AUTH_REQUIRED, "true");
@@ -126,7 +126,7 @@ public class QuorumDigestAuthTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 30)
     public void testSaslNotRequiredWithInvalidCredentials() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_LOGIN_CONTEXT, "QuorumLearnerInvalid");
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "false");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "false");
@@ -148,7 +148,7 @@ public class QuorumDigestAuthTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 30)
     public void testSaslRequiredInvalidCredentials() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_LOGIN_CONTEXT, "QuorumLearnerInvalid");
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
@@ -169,7 +169,7 @@ public class QuorumDigestAuthTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 10)
     public void testEnableQuorumServerRequireSaslWithoutQuorumLearnerRequireSasl() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_LOGIN_CONTEXT, "QuorumLearner");
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
@@ -198,7 +198,7 @@ public class QuorumDigestAuthTest extends QuorumAuthTestBase {
     @Test
     @Timeout(value = 10)
     public void testEnableQuorumAuthenticationConfigurations() throws Exception {
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_LOGIN_CONTEXT, "QuorumLearner");
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "false");
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumKerberosAuthTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumKerberosAuthTest.java
index d9a32a755..475c89973 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumKerberosAuthTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumKerberosAuthTest.java
@@ -114,7 +114,7 @@ public class QuorumKerberosAuthTest extends KerberosSecurityTestcase {
     public void testValidCredentials() throws Exception {
         String serverPrincipal = KerberosTestUtils.getServerPrincipal();
         serverPrincipal = serverPrincipal.substring(0, serverPrincipal.lastIndexOf("@"));
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_AUTH_REQUIRED, "true");
@@ -138,7 +138,7 @@ public class QuorumKerberosAuthTest extends KerberosSecurityTestcase {
     public void testValidCredentialsWithMultiAddresses() throws Exception {
         String serverPrincipal = KerberosTestUtils.getServerPrincipal();
         serverPrincipal = serverPrincipal.substring(0, serverPrincipal.lastIndexOf("@"));
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_AUTH_REQUIRED, "true");
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumKerberosHostBasedAuthTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumKerberosHostBasedAuthTest.java
index f02da0b20..287761ac3 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumKerberosHostBasedAuthTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/auth/QuorumKerberosHostBasedAuthTest.java
@@ -138,7 +138,7 @@ public class QuorumKerberosHostBasedAuthTest extends KerberosSecurityTestcase {
     @Timeout(value = 120)
     public void testValidCredentials() throws Exception {
         String serverPrincipal = hostServerPrincipal.substring(0, hostServerPrincipal.lastIndexOf("@"));
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_AUTH_REQUIRED, "true");
@@ -161,7 +161,7 @@ public class QuorumKerberosHostBasedAuthTest extends KerberosSecurityTestcase {
     @Timeout(value = 120)
     public void testValidCredentialsWithMultiAddresses() throws Exception {
         String serverPrincipal = hostServerPrincipal.substring(0, hostServerPrincipal.lastIndexOf("@"));
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_AUTH_REQUIRED, "true");
@@ -183,7 +183,7 @@ public class QuorumKerberosHostBasedAuthTest extends KerberosSecurityTestcase {
     @Timeout(value = 120)
     public void testConnectBadServer() throws Exception {
         String serverPrincipal = hostServerPrincipal.substring(0, hostServerPrincipal.lastIndexOf("@"));
-        Map<String, String> authConfigs = new HashMap<String, String>();
+        Map<String, String> authConfigs = new HashMap<>();
         authConfigs.put(QuorumAuth.QUORUM_SASL_AUTH_ENABLED, "true");
         authConfigs.put(QuorumAuth.QUORUM_SERVER_SASL_AUTH_REQUIRED, "true");
         authConfigs.put(QuorumAuth.QUORUM_LEARNER_SASL_AUTH_REQUIRED, "true");
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/util/BitHashSetTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/util/BitHashSetTest.java
index 5a2a5b79b..8d42528af 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/util/BitHashSetTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/util/BitHashSetTest.java
@@ -36,7 +36,7 @@ public class BitHashSetTest extends ZKTestCase {
         assertEquals(1, ws.size());
         assertEquals(1, ws.cachedSize());
 
-        List<Integer> actualBits = new ArrayList<Integer>();
+        List<Integer> actualBits = new ArrayList<>();
 
         for (int bit : ws) {
             actualBits.add(bit);
@@ -77,7 +77,7 @@ public class BitHashSetTest extends ZKTestCase {
         assertEquals(1, ws.size());
         assertEquals(0, ws.cachedSize());
 
-        List<Integer> actualBits = new ArrayList<Integer>();
+        List<Integer> actualBits = new ArrayList<>();
 
         for (int bit : ws) {
             actualBits.add(bit);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/util/BitMapTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/util/BitMapTest.java
index 8c1922f35..9ea76e702 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/util/BitMapTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/util/BitMapTest.java
@@ -28,7 +28,7 @@ public class BitMapTest extends ZKTestCase {
 
     @Test
     public void testAddAndRemove() {
-        BitMap<String> bitMap = new BitMap<String>();
+        BitMap<String> bitMap = new BitMap<>();
         String v1 = "v1";
         Integer bit = bitMap.add(v1);
 
@@ -62,7 +62,7 @@ public class BitMapTest extends ZKTestCase {
 
     @Test
     public void testBitReuse() {
-        BitMap<String> bitMap = new BitMap<String>();
+        BitMap<String> bitMap = new BitMap<>();
         int v1Bit = bitMap.add("v1");
         int v2Bit = bitMap.add("v2");
         int v3Bit = bitMap.add("v3");
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchManagerTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchManagerTest.java
index bd613a444..f65391c49 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchManagerTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchManagerTest.java
@@ -236,7 +236,7 @@ public class WatchManagerTest extends ZKTestCase {
         // 1. start 5 workers to trigger watchers on that path
         //    count all the watchers have been fired
         AtomicInteger watchTriggered = new AtomicInteger();
-        List<WatcherTriggerWorker> triggerWorkers = new ArrayList<WatcherTriggerWorker>();
+        List<WatcherTriggerWorker> triggerWorkers = new ArrayList<>();
         for (int i = 0; i < 5; i++) {
             WatcherTriggerWorker worker = new WatcherTriggerWorker(manager, paths, watchTriggered);
             triggerWorkers.add(worker);
@@ -246,7 +246,7 @@ public class WatchManagerTest extends ZKTestCase {
         // 2. start 5 workers to add different watchers on the same path
         //    count all the watchers being added
         AtomicInteger watchesAdded = new AtomicInteger();
-        List<AddWatcherWorker> addWorkers = new ArrayList<AddWatcherWorker>();
+        List<AddWatcherWorker> addWorkers = new ArrayList<>();
         for (int i = 0; i < 5; i++) {
             AddWatcherWorker worker = new AddWatcherWorker(manager, paths, watchers, watchesAdded);
             addWorkers.add(worker);
@@ -297,7 +297,7 @@ public class WatchManagerTest extends ZKTestCase {
         // 1. start 5 workers to remove watchers on those path
         //    record the watchers have been removed
         AtomicInteger watchesRemoved = new AtomicInteger();
-        List<RemoveWatcherWorker> removeWorkers = new ArrayList<RemoveWatcherWorker>();
+        List<RemoveWatcherWorker> removeWorkers = new ArrayList<>();
         for (int i = 0; i < 5; i++) {
             RemoveWatcherWorker worker = new RemoveWatcherWorker(manager, paths, watchers, watchesRemoved);
             removeWorkers.add(worker);
@@ -307,7 +307,7 @@ public class WatchManagerTest extends ZKTestCase {
         // 2. start 5 workers to add different watchers on different path
         //    record the watchers have been added
         AtomicInteger watchesAdded = new AtomicInteger();
-        List<AddWatcherWorker> addWorkers = new ArrayList<AddWatcherWorker>();
+        List<AddWatcherWorker> addWorkers = new ArrayList<>();
         for (int i = 0; i < 5; i++) {
             AddWatcherWorker worker = new AddWatcherWorker(manager, paths, watchers, watchesAdded);
             addWorkers.add(worker);
@@ -359,8 +359,8 @@ public class WatchManagerTest extends ZKTestCase {
 
         // 1. start 5 workers to randomly mark those watcher as dead
         //    and remove them from watch manager
-        Set<Watcher> deadWatchers = new HashSet<Watcher>();
-        List<CreateDeadWatchersWorker> deadWorkers = new ArrayList<CreateDeadWatchersWorker>();
+        Set<Watcher> deadWatchers = new HashSet<>();
+        List<CreateDeadWatchersWorker> deadWorkers = new ArrayList<>();
         for (int i = 0; i < 5; i++) {
             CreateDeadWatchersWorker worker = new CreateDeadWatchersWorker(manager, watchers, deadWatchers);
             deadWorkers.add(worker);
@@ -369,7 +369,7 @@ public class WatchManagerTest extends ZKTestCase {
 
         // 2. start 5 workers to add different watchers on the same path
         AtomicInteger watchesAdded = new AtomicInteger();
-        List<AddWatcherWorker> addWorkers = new ArrayList<AddWatcherWorker>();
+        List<AddWatcherWorker> addWorkers = new ArrayList<>();
         for (int i = 0; i < 5; i++) {
             AddWatcherWorker worker = new AddWatcherWorker(manager, paths, watchers, watchesAdded);
             addWorkers.add(worker);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatcherCleanerTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatcherCleanerTest.java
index 9ed145aa3..17e44eb9b 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatcherCleanerTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatcherCleanerTest.java
@@ -43,7 +43,7 @@ public class WatcherCleanerTest extends ZKTestCase {
 
         private CountDownLatch latch;
         private int delayMs;
-        private Set<Integer> deadWatchers = new HashSet<Integer>();
+        private Set<Integer> deadWatchers = new HashSet<>();
 
         public void setCountDownLatch(CountDownLatch latch) {
             this.latch = latch;
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatcherOrBitSetTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatcherOrBitSetTest.java
index fb25d2104..6e4220a77 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatcherOrBitSetTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatcherOrBitSetTest.java
@@ -32,7 +32,7 @@ public class WatcherOrBitSetTest extends ZKTestCase {
 
     @Test
     public void testWatcherSet() {
-        Set<Watcher> wset = new HashSet<Watcher>();
+        Set<Watcher> wset = new HashSet<>();
         WatcherOrBitSet hashSet = new WatcherOrBitSet(wset);
         assertEquals(0, hashSet.size());
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchesPathReportTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchesPathReportTest.java
index 4e1c31682..37efedab9 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchesPathReportTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchesPathReportTest.java
@@ -36,11 +36,11 @@ public class WatchesPathReportTest extends ZKTestCase {
     @BeforeEach
     public void setUp() {
         m = new HashMap<String, Set<Long>>();
-        Set<Long> s = new HashSet<Long>();
+        Set<Long> s = new HashSet<>();
         s.add(101L);
         s.add(102L);
         m.put("path1", s);
-        s = new HashSet<Long>();
+        s = new HashSet<>();
         s.add(201L);
         m.put("path2", s);
         r = new WatchesPathReport(m);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchesReportTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchesReportTest.java
index 0ae952f6c..3b0d0e2ae 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchesReportTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/watch/WatchesReportTest.java
@@ -36,11 +36,11 @@ public class WatchesReportTest extends ZKTestCase {
     @BeforeEach
     public void setUp() {
         m = new HashMap<Long, Set<String>>();
-        Set<String> s = new HashSet<String>();
+        Set<String> s = new HashSet<>();
         s.add("path1a");
         s.add("path1b");
         m.put(1L, s);
-        s = new HashSet<String>();
+        s = new HashSet<>();
         s.add("path2a");
         m.put(2L, s);
         r = new WatchesReport(m);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ACLTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ACLTest.java
index d1b5a1065..2f0d408fc 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ACLTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ACLTest.java
@@ -156,7 +156,7 @@ public class ACLTest extends ZKTestCase implements Watcher {
                 id.setId("1.1.1." + j);
                 id.setScheme("ip");
                 acl.setId(id);
-                List<ACL> list = new ArrayList<ACL>();
+                List<ACL> list = new ArrayList<>();
                 list.add(acl);
                 zk.create(path, path.getBytes(), list, CreateMode.PERSISTENT);
             }
@@ -184,7 +184,7 @@ public class ACLTest extends ZKTestCase implements Watcher {
                 id.setId("1.1.1." + j);
                 id.setScheme("ip");
                 acl.setId(id);
-                ArrayList<ACL> list = new ArrayList<ACL>();
+                ArrayList<ACL> list = new ArrayList<>();
                 list.add(acl);
                 zk.create(path, path.getBytes(), list, CreateMode.PERSISTENT);
             }
@@ -268,7 +268,7 @@ public class ACLTest extends ZKTestCase implements Watcher {
         ZooKeeper zk = ClientBase.createZKClient(HOSTPORT);
         try {
 
-            List<ACL> acls = new ArrayList<ACL>();
+            List<ACL> acls = new ArrayList<>();
             acls.add(null);
 
             // case 1 : null value in ACL list with create
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/AsyncOps.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/AsyncOps.java
index ea02aa82a..f55e9675e 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/AsyncOps.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/AsyncOps.java
@@ -281,7 +281,7 @@ public class AsyncOps {
 
     public static class ChildrenCB extends AsyncCB implements ChildrenCallback {
 
-        List<String> children = new ArrayList<String>();
+        List<String> children = new ArrayList<>();
 
         ChildrenCB(ZooKeeper zk) {
             this(zk, new CountDownLatch(1));
@@ -366,7 +366,7 @@ public class AsyncOps {
 
     public static class Children2CB extends AsyncCB implements Children2Callback {
 
-        List<String> children = new ArrayList<String>();
+        List<String> children = new ArrayList<>();
 
         Children2CB(ZooKeeper zk) {
             this(zk, new CountDownLatch(1));
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/AsyncTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/AsyncTest.java
index c31527003..f1667db10 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/AsyncTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/AsyncTest.java
@@ -64,7 +64,7 @@ public class AsyncTest extends ZKTestCase implements StringCallback, VoidCallbac
         return zk;
     }
 
-    List<Integer> results = new LinkedList<Integer>();
+    List<Integer> results = new LinkedList<>();
 
     @Test
     public void testAsync() throws Exception {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientBase.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientBase.java
index 43c2fad07..e2257c156 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientBase.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientBase.java
@@ -230,7 +230,7 @@ public abstract class ClientBase extends ZKTestCase {
 
     }
     public static List<HostPort> parseHostPortList(String hplist) {
-        ArrayList<HostPort> alist = new ArrayList<HostPort>();
+        ArrayList<HostPort> alist = new ArrayList<>();
         for (String hp : hplist.split(",")) {
             int idx = hp.lastIndexOf(':');
             String host = hp.substring(0, idx);
@@ -465,7 +465,7 @@ public abstract class ClientBase extends ZKTestCase {
     }
 
     protected void setUpAll() throws Exception {
-        allClients = new LinkedList<ZooKeeper>();
+        allClients = new LinkedList<>();
         allClientsSetup = true;
     }
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientTest.java
index 5ee50f19a..96db26f80 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientTest.java
@@ -135,7 +135,7 @@ public class ClientTest extends ClientBase {
             }
 
             try {
-                ArrayList<ACL> testACL = new ArrayList<ACL>();
+                ArrayList<ACL> testACL = new ArrayList<>();
                 testACL.add(new ACL(Perms.ALL | Perms.ADMIN, Ids.AUTH_IDS));
                 testACL.add(new ACL(Perms.ALL | Perms.ADMIN, new Id("ip", "127.0.0.1/8")));
                 zk.create("/acltest", new byte[0], testACL, CreateMode.PERSISTENT);
@@ -145,7 +145,7 @@ public class ClientTest extends ClientBase {
             }
 
             try {
-                ArrayList<ACL> testACL = new ArrayList<ACL>();
+                ArrayList<ACL> testACL = new ArrayList<>();
                 testACL.add(new ACL(Perms.ALL | Perms.ADMIN, new Id()));
                 zk.create("/nullidtest", new byte[0], testACL, CreateMode.PERSISTENT);
                 fail("Should have received an invalid acl error");
@@ -154,7 +154,7 @@ public class ClientTest extends ClientBase {
             }
 
             zk.addAuthInfo("digest", "ben:passwd".getBytes());
-            ArrayList<ACL> testACL = new ArrayList<ACL>();
+            ArrayList<ACL> testACL = new ArrayList<>();
             testACL.add(new ACL(Perms.ALL, new Id("auth", "")));
             testACL.add(new ACL(Perms.WRITE, new Id("ip", "127.0.0.1")));
             zk.create("/acltest", new byte[0], testACL, CreateMode.PERSISTENT);
@@ -204,7 +204,7 @@ public class ClientTest extends ClientBase {
         try {
             zk = createClient();
             zk.addAuthInfo("digest", "ben:passwd".getBytes());
-            ArrayList<ACL> testACL = new ArrayList<ACL>();
+            ArrayList<ACL> testACL = new ArrayList<>();
             testACL.add(new ACL(Perms.ALL, new Id("auth", null)));
             zk.create("/acltest", new byte[0], testACL, CreateMode.PERSISTENT);
             zk.close();
@@ -242,7 +242,7 @@ public class ClientTest extends ClientBase {
 
     private class MyWatcher extends CountdownWatcher {
 
-        LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<WatchedEvent>();
+        LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<>();
 
         public void process(WatchedEvent event) {
             super.process(event);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/DisconnectedWatcherTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/DisconnectedWatcherTest.java
index c8a4fffe7..aacede199 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/DisconnectedWatcherTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/DisconnectedWatcherTest.java
@@ -43,7 +43,7 @@ public class DisconnectedWatcherTest extends ClientBase {
 
     private class MyWatcher extends CountdownWatcher {
 
-        LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<WatchedEvent>();
+        LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<>();
 
         public void process(WatchedEvent event) {
             super.process(event);
@@ -200,7 +200,7 @@ public class DisconnectedWatcherTest extends ClientBase {
 
         // Create 10,000 nodes. This should ensure the length of our
         // watches set below exceeds 1MB.
-        List<String> paths = new ArrayList<String>();
+        List<String> paths = new ArrayList<>();
         for (int i = 0; i < 10000; i++) {
             String path = zk1.create(pathBase + "/ch-", null, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
             paths.add(path);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLENewEpochTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLENewEpochTest.java
index 2ad1fe1b8..eb62dd653 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLENewEpochTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLENewEpochTest.java
@@ -54,8 +54,8 @@ public class FLENewEpochTest extends ZKTestCase {
     public void setUp() throws Exception {
         count = 3;
 
-        peers = new HashMap<Long, QuorumServer>(count);
-        threads = new ArrayList<LEThread>(count);
+        peers = new HashMap<>(count);
+        threads = new ArrayList<>(count);
         tmpdir = new File[count];
         port = new int[count];
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLEPredicateTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLEPredicateTest.java
index b9e374953..5c372b9dc 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLEPredicateTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLEPredicateTest.java
@@ -55,7 +55,7 @@ public class FLEPredicateTest extends ZKTestCase {
     @Test
     public void testPredicate() throws IOException {
 
-        peers = new HashMap<Long, QuorumServer>(3);
+        peers = new HashMap<>(3);
 
         /*
          * Creates list of peers.
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLERestartTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLERestartTest.java
index 52cd1851a..07ac68b78 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLERestartTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLERestartTest.java
@@ -74,8 +74,8 @@ public class FLERestartTest extends ZKTestCase {
     @BeforeEach
     public void setUp() throws Exception {
         count = 3;
-        peers = new HashMap<Long, QuorumServer>(count);
-        restartThreads = new ArrayList<FLERestartThread>(count);
+        peers = new HashMap<>(count);
+        restartThreads = new ArrayList<>(count);
         tmpdir = new File[count];
         port = new int[count];
         finish = new Semaphore(0);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLETest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLETest.java
index 0f679b2d2..b147f7ae8 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLETest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLETest.java
@@ -90,14 +90,14 @@ public class FLETest extends ZKTestCase {
     public void setUp() throws Exception {
         count = 7;
 
-        peers = new HashMap<Long, QuorumServer>(count);
-        threads = new ArrayList<LEThread>(count);
+        peers = new HashMap<>(count);
+        threads = new ArrayList<>(count);
         voteMap = new HashMap<Integer, HashSet<TestVote>>();
         votes = new Vote[count];
         tmpdir = new File[count];
         port = new int[count];
         successCount = 0;
-        joinedThreads = new HashSet<Long>();
+        joinedThreads = new HashSet<>();
     }
 
     @AfterEach
@@ -191,7 +191,7 @@ public class FLETest extends ZKTestCase {
                          * we first update it with the vote of this peer.
                          */
                         if (quora.get(v.getId()) == null) {
-                            quora.put(v.getId(), new HashSet<Integer>());
+                            quora.put(v.getId(), new HashSet<>());
                         }
                         quora.get(v.getId()).add(i);
 
@@ -296,7 +296,7 @@ public class FLETest extends ZKTestCase {
      * @throws Exception
      */
     private void runElection(int rounds) throws Exception {
-        ConcurrentHashMap<Long, HashSet<Integer>> quora = new ConcurrentHashMap<Long, HashSet<Integer>>();
+        ConcurrentHashMap<Long, HashSet<Integer>> quora = new ConcurrentHashMap<>();
 
         LOG.info("TestLE: {}, {}", getTestName(), count);
 
@@ -401,7 +401,7 @@ public class FLETest extends ZKTestCase {
         int sid;
         QuorumPeer peer;
         int waitTime = 10 * 1000;
-        ArrayList<QuorumPeer> peerList = new ArrayList<QuorumPeer>();
+        ArrayList<QuorumPeer> peerList = new ArrayList<>();
         for (sid = 0; sid < 3; sid++) {
             port[sid] = PortAssignment.unique();
             peers.put(Long.valueOf(sid), new QuorumServer(sid, new InetSocketAddress("127.0.0.1", PortAssignment.unique()), new InetSocketAddress("127.0.0.1", PortAssignment.unique()), new InetSocketAddress("127.0.0.1", port[sid])));
@@ -450,7 +450,7 @@ public class FLETest extends ZKTestCase {
         int sid;
         QuorumPeer peer;
         int waitTime = 10 * 1000;
-        ArrayList<QuorumPeer> peerList = new ArrayList<QuorumPeer>();
+        ArrayList<QuorumPeer> peerList = new ArrayList<>();
         for (sid = 0; sid < 3; sid++) {
             peers.put(Long.valueOf(sid), new QuorumServer(sid, new InetSocketAddress("127.0.0.1", PortAssignment.unique()), new InetSocketAddress("127.0.0.1", PortAssignment.unique())));
             tmpdir[sid] = ClientBase.createTmpDir();
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLEZeroWeightTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLEZeroWeightTest.java
index 59ed266f6..68bfa3127 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLEZeroWeightTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FLEZeroWeightTest.java
@@ -57,8 +57,8 @@ public class FLEZeroWeightTest extends ZKTestCase {
     public void setUp() throws Exception {
         count = 9;
 
-        peers = new HashMap<Long, QuorumServer>(count);
-        threads = new ArrayList<LEThread>(count);
+        peers = new HashMap<>(count);
+        threads = new ArrayList<>(count);
         votes = new Vote[count];
         tmpdir = new File[count];
         port = new int[count];
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FollowerResyncConcurrencyTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FollowerResyncConcurrencyTest.java
index aafd36ac7..d9d67c402 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/FollowerResyncConcurrencyTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/FollowerResyncConcurrencyTest.java
@@ -635,7 +635,7 @@ public class FollowerResyncConcurrencyTest extends ZKTestCase {
 
     private class MyWatcher extends CountdownWatcher {
 
-        LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<WatchedEvent>();
+        LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<>();
 
         public void process(WatchedEvent event) {
             super.process(event);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/GetChildren2Test.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/GetChildren2Test.java
index 6776fdf4e..0ea8053dc 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/GetChildren2Test.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/GetChildren2Test.java
@@ -93,8 +93,8 @@ public class GetChildren2Test extends ClientBase {
         String name = "/foo";
         zk.create(name, name.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
 
-        List<String> children = new ArrayList<String>();
-        List<String> children_s = new ArrayList<String>();
+        List<String> children = new ArrayList<>();
+        List<String> children_s = new ArrayList<>();
 
         for (int i = 0; i < 10; i++) {
             String childname = name + "/bar" + i;
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/GetProposalFromTxnTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/GetProposalFromTxnTest.java
index ed6a30d48..010d69b33 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/GetProposalFromTxnTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/GetProposalFromTxnTest.java
@@ -101,7 +101,7 @@ public class GetProposalFromTxnTest extends ZKTestCase {
         Iterator<Proposal> itr = db.getProposalsFromTxnLog(zxids[0], 10000000);
 
         int createCount = 0;
-        ArrayList<Long> retrievedZxids = new ArrayList<Long>(MSG_COUNT);
+        ArrayList<Long> retrievedZxids = new ArrayList<>(MSG_COUNT);
 
         // Get zxid of create requests
         while (itr.hasNext()) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/HierarchicalQuorumTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/HierarchicalQuorumTest.java
index 35992513d..e91261ed3 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/HierarchicalQuorumTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/HierarchicalQuorumTest.java
@@ -214,7 +214,7 @@ public class HierarchicalQuorumTest extends ClientBase {
         // interesting to see what's there...
         JMXEnv.dump();
         // make sure we have these 5 servers listed
-        Set<String> ensureNames = new LinkedHashSet<String>();
+        Set<String> ensureNames = new LinkedHashSet<>();
         for (int i = 1; i <= numberOfPeers; i++) {
             ensureNames.add("InMemoryDataTree");
         }
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/IntegrityCheck.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/IntegrityCheck.java
index 4aba36da2..1fc467cc2 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/IntegrityCheck.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/IntegrityCheck.java
@@ -52,7 +52,7 @@ public class IntegrityCheck implements StatCallback, DataCallback {
 
     ZooKeeper zk;
 
-    Map<String, byte[]> lastValue = new HashMap<String, byte[]>();
+    Map<String, byte[]> lastValue = new HashMap<>();
 
     int count;
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/JMXEnv.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/JMXEnv.java
index 5b80574e6..49db17078 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/JMXEnv.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/JMXEnv.java
@@ -111,7 +111,7 @@ public class JMXEnv {
                 throw new RuntimeException(e);
             }
 
-            found = new HashSet<ObjectName>();
+            found = new HashSet<>();
             for (String name : expectedNames) {
                 LOG.info("expect:{}", name);
                 for (ObjectName bean : beans) {
@@ -220,7 +220,7 @@ public class JMXEnv {
 
         Set<ObjectName> beans;
         int nTry = 0;
-        Set<ObjectName> found = new HashSet<ObjectName>();
+        Set<ObjectName> found = new HashSet<>();
         do {
             if (nTry++ > 0) {
                 Thread.sleep(500);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/LoadFromLogNoServerTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/LoadFromLogNoServerTest.java
index 30c277207..bec029d2c 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/LoadFromLogNoServerTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/LoadFromLogNoServerTest.java
@@ -130,7 +130,7 @@ public class LoadFromLogNoServerTest extends ZKTestCase {
         } else if (type == ZooDefs.OpCode.multi) {
             txnHeader = new TxnHeader(0xabcd, 0x123, prevPzxid + 1, Time.currentElapsedTime(), ZooDefs.OpCode.create);
             txn = new CreateTxn(path, new byte[0], null, false, cversion);
-            List<Txn> txnList = new ArrayList<Txn>();
+            List<Txn> txnList = new ArrayList<>();
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             BinaryOutputArchive boa = BinaryOutputArchive.getArchive(baos);
             txn.serialize(boa, "request");
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/LocalSessionsOnlyTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/LocalSessionsOnlyTest.java
index 98fafdfde..cf6d46a6d 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/LocalSessionsOnlyTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/LocalSessionsOnlyTest.java
@@ -106,7 +106,7 @@ public class LocalSessionsOnlyTest extends ZKTestCase {
         zk.close();
 
         // Validate data on both follower and leader
-        Map<String, Integer> peers = new HashMap<String, Integer>();
+        Map<String, Integer> peers = new HashMap<>();
         peers.put("leader", leaderIdx);
         peers.put("follower", followerIdx);
         for (Entry<String, Integer> entry : peers.entrySet()) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/LogChopperTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/LogChopperTest.java
index e31eba261..9bdefc051 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/LogChopperTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/LogChopperTest.java
@@ -85,7 +85,7 @@ public class LogChopperTest extends ClientBase {
         }
         txnLog.close();
         rmr(tmp);
-        return new Pair<Long, Long>(firstZxid, lastZxid);
+        return new Pair<>(firstZxid, lastZxid);
     }
 
     @Test
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/MultiAsyncTransactionTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/MultiAsyncTransactionTest.java
index 0ee0825e9..fada1c479 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/MultiAsyncTransactionTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/MultiAsyncTransactionTest.java
@@ -82,7 +82,7 @@ public class MultiAsyncTransactionTest extends ClientBase {
     @Test
     public void testSequentialNodeCreateInAsyncMulti() throws Exception {
         final int iteration = 4;
-        final List<MultiResult> results = new ArrayList<MultiResult>();
+        final List<MultiResult> results = new ArrayList<>();
 
         pendingOps.set(iteration);
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/MultiOperationTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/MultiOperationTest.java
index 4ff593222..0fdf02ca7 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/MultiOperationTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/MultiOperationTest.java
@@ -192,7 +192,7 @@ public class MultiOperationTest extends ClientBase {
     @ValueSource(booleans = {true, false})
     @Timeout(value = 90)
     public void testInvalidPath(boolean useAsync) throws Exception {
-        List<Integer> expectedResultCodes = new ArrayList<Integer>();
+        List<Integer> expectedResultCodes = new ArrayList<>();
         expectedResultCodes.add(KeeperException.Code.RUNTIMEINCONSISTENCY.intValue());
         expectedResultCodes.add(KeeperException.Code.BADARGUMENTS.intValue());
         expectedResultCodes.add(KeeperException.Code.RUNTIMEINCONSISTENCY.intValue());
@@ -295,7 +295,7 @@ public class MultiOperationTest extends ClientBase {
     @ValueSource(booleans = {true, false})
     @Timeout(value = 90)
     public void testBlankPath(boolean useAsync) throws Exception {
-        List<Integer> expectedResultCodes = new ArrayList<Integer>();
+        List<Integer> expectedResultCodes = new ArrayList<>();
         expectedResultCodes.add(KeeperException.Code.RUNTIMEINCONSISTENCY.intValue());
         expectedResultCodes.add(KeeperException.Code.BADARGUMENTS.intValue());
         expectedResultCodes.add(KeeperException.Code.RUNTIMEINCONSISTENCY.intValue());
@@ -318,7 +318,7 @@ public class MultiOperationTest extends ClientBase {
     @ValueSource(booleans = {true, false})
     @Timeout(value = 90)
     public void testInvalidCreateModeFlag(boolean useAsync) throws Exception {
-        List<Integer> expectedResultCodes = new ArrayList<Integer>();
+        List<Integer> expectedResultCodes = new ArrayList<>();
         expectedResultCodes.add(KeeperException.Code.RUNTIMEINCONSISTENCY.intValue());
         expectedResultCodes.add(KeeperException.Code.BADARGUMENTS.intValue());
         expectedResultCodes.add(KeeperException.Code.RUNTIMEINCONSISTENCY.intValue());
@@ -361,7 +361,7 @@ public class MultiOperationTest extends ClientBase {
         // setData using chRoot client.
         zk_chroot = createClient(this.hostPort + chRoot);
         String[] names = {"/multi0", "/multi1", "/multi2"};
-        List<Op> ops = new ArrayList<Op>();
+        List<Op> ops = new ArrayList<>();
 
         for (int i = 0; i < names.length; i++) {
             ops.add(Op.create(names[i], new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT));
@@ -383,7 +383,7 @@ public class MultiOperationTest extends ClientBase {
         // checking the child version using chRoot client.
         zk_chroot = createClient(this.hostPort + chRoot);
         String[] names = {"/multi0", "/multi1", "/multi2"};
-        List<Op> ops = new ArrayList<Op>();
+        List<Op> ops = new ArrayList<>();
 
         for (int i = 0; i < names.length; i++) {
             zk.create(chRoot + names[i], new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
@@ -499,7 +499,7 @@ public class MultiOperationTest extends ClientBase {
     public void testSetData(boolean useAsync) throws Exception {
 
         String[] names = {"/multi0", "/multi1", "/multi2"};
-        List<Op> ops = new ArrayList<Op>();
+        List<Op> ops = new ArrayList<>();
 
         for (int i = 0; i < names.length; i++) {
             ops.add(Op.create(names[i], new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT));
@@ -745,8 +745,8 @@ public class MultiOperationTest extends ClientBase {
     @ParameterizedTest
     @ValueSource(booleans = {true, false})
     public void testMultiGetChildren(boolean useAsync) throws Exception {
-        List<String> topLevelNodes = new ArrayList<String>();
-        Map<String, List<String>> childrenNodes = new HashMap<String, List<String>>();
+        List<String> topLevelNodes = new ArrayList<>();
+        Map<String, List<String>> childrenNodes = new HashMap<>();
         // Creating a database where '/fooX' nodes has 'barXY' named children.
         for (int i = 0; i < 10; i++) {
             String name = "/foo" + i;
@@ -777,7 +777,7 @@ public class MultiOperationTest extends ClientBase {
     @ParameterizedTest
     @ValueSource(booleans = {true, false})
     public void testMultiGetChildrenSameNode(boolean useAsync) throws Exception {
-        List<String> childrenNodes = new ArrayList<String>();
+        List<String> childrenNodes = new ArrayList<>();
         // Creating a database where '/foo' node has 'barX' named children.
         String topLevelNode = "/foo";
         zk.create(topLevelNode, topLevelNode.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java
index 573d361ae..edde2b5da 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java
@@ -439,7 +439,7 @@ public class ObserverMasterTest extends ObserverMasterTestBase {
         waitServerUp(observerClientPort);
 
         // create a client to the observer
-        final LinkedBlockingQueue<KeeperState> states = new LinkedBlockingQueue<KeeperState>();
+        final LinkedBlockingQueue<KeeperState> states = new LinkedBlockingQueue<>();
         ZooKeeper observerClient = new ZooKeeper(
             "127.0.0.1:" + observerClientPort,
             ClientBase.CONNECTION_TIMEOUT,
@@ -456,7 +456,7 @@ public class ObserverMasterTest extends ObserverMasterTestBase {
         assertEquals(KeeperState.SyncConnected, state);
 
         // issue reconfig command
-        ArrayList<String> newServers = new ArrayList<String>();
+        ArrayList<String> newServers = new ArrayList<>();
         String server = "server.3=127.0.0.1:" + PortAssignment.unique() + ":" + PortAssignment.unique() + ":participant;localhost:" + PortAssignment.unique();
         newServers.add(server);
         ZooKeeperAdmin admin = createAdmin(clientPort1);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBase.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBase.java
index 4f723f299..42740f897 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBase.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBase.java
@@ -183,7 +183,7 @@ public class QuorumBase extends ClientBase {
         int initLimit = 3;
         int syncLimit = 3;
         int connectToLearnerMasterLimit = 3;
-        Map<Long, QuorumServer> peers = new HashMap<Long, QuorumServer>();
+        Map<Long, QuorumServer> peers = new HashMap<>();
         peers.put(Long.valueOf(1), new QuorumServer(1, new InetSocketAddress(LOCALADDR, port1), new InetSocketAddress(LOCALADDR, portLE1), new InetSocketAddress(LOCALADDR, portClient1), LearnerType.PARTICIPANT));
         peers.put(Long.valueOf(2), new QuorumServer(2, new InetSocketAddress(LOCALADDR, port2), new InetSocketAddress(LOCALADDR, portLE2), new InetSocketAddress(LOCALADDR, portClient2), LearnerType.PARTICIPANT));
         peers.put(Long.valueOf(3), new QuorumServer(3, new InetSocketAddress(LOCALADDR, port3), new InetSocketAddress(LOCALADDR, portLE3), new InetSocketAddress(LOCALADDR, portClient3), LearnerType.PARTICIPANT));
@@ -279,7 +279,7 @@ public class QuorumBase extends ClientBase {
         // interesting to see what's there...
         JMXEnv.dump();
         // make sure we have these 5 servers listed
-        Set<String> ensureNames = new LinkedHashSet<String>();
+        Set<String> ensureNames = new LinkedHashSet<>();
         for (int i = 1; i <= 5; i++) {
             ensureNames.add("InMemoryDataTree");
         }
@@ -384,7 +384,7 @@ public class QuorumBase extends ClientBase {
     }
 
     public ArrayList<QuorumPeer> getPeerList() {
-        ArrayList<QuorumPeer> peers = new ArrayList<QuorumPeer>();
+        ArrayList<QuorumPeer> peers = new ArrayList<>();
         peers.add(s1);
         peers.add(s2);
         peers.add(s3);
@@ -418,7 +418,7 @@ public class QuorumBase extends ClientBase {
         int connectToLearnerMasterLimit = 3;
 
         if (peers == null) {
-            peers = new HashMap<Long, QuorumServer>();
+            peers = new HashMap<>();
 
             peers.put(Long.valueOf(1), new QuorumServer(1, new InetSocketAddress(LOCALADDR, port1), new InetSocketAddress(LOCALADDR, portLE1), new InetSocketAddress(LOCALADDR, portClient1), LearnerType.PARTICIPANT));
             peers.put(Long.valueOf(2), new QuorumServer(2, new InetSocketAddress(LOCALADDR, port2), new InetSocketAddress(LOCALADDR, portLE2), new InetSocketAddress(LOCALADDR, portClient2), LearnerType.PARTICIPANT));
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBaseOracle_2Nodes.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBaseOracle_2Nodes.java
index d32af9995..a7f4a7e1d 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBaseOracle_2Nodes.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBaseOracle_2Nodes.java
@@ -129,7 +129,7 @@ public class QuorumBaseOracle_2Nodes extends ClientBase{
         int initLimit = 3;
         int syncLimit = 3;
         int connectToLearnerMasterLimit = 3;
-        Map<Long, QuorumPeer.QuorumServer> peers = new HashMap<Long, QuorumPeer.QuorumServer>();
+        Map<Long, QuorumPeer.QuorumServer> peers = new HashMap<>();
         peers.put(Long.valueOf(1), new QuorumPeer.QuorumServer(1, new InetSocketAddress(LOCALADDR, port1), new InetSocketAddress(LOCALADDR, portLE1), new InetSocketAddress(LOCALADDR, portClient1), QuorumPeer.LearnerType.PARTICIPANT));
         peers.put(Long.valueOf(2), new QuorumPeer.QuorumServer(2, new InetSocketAddress(LOCALADDR, port2), new InetSocketAddress(LOCALADDR, portLE2), new InetSocketAddress(LOCALADDR, portClient2), QuorumPeer.LearnerType.PARTICIPANT));
 
@@ -165,7 +165,7 @@ public class QuorumBaseOracle_2Nodes extends ClientBase{
         // interesting to see what's there...
         JMXEnv.dump();
         // make sure we have these 5 servers listed
-        Set<String> ensureNames = new LinkedHashSet<String>();
+        Set<String> ensureNames = new LinkedHashSet<>();
         for (int i = 1; i <= 2; i++) {
             ensureNames.add("InMemoryDataTree");
         }
@@ -240,7 +240,7 @@ public class QuorumBaseOracle_2Nodes extends ClientBase{
     }
 
     public ArrayList<QuorumPeer> getPeerList() {
-        ArrayList<QuorumPeer> peers = new ArrayList<QuorumPeer>();
+        ArrayList<QuorumPeer> peers = new ArrayList<>();
         peers.add(s1);
         peers.add(s2);
         return peers;
@@ -269,7 +269,7 @@ public class QuorumBaseOracle_2Nodes extends ClientBase{
         int connectToLearnerMasterLimit = 3;
 
         if (peers == null) {
-            peers = new HashMap<Long, QuorumPeer.QuorumServer>();
+            peers = new HashMap<>();
 
             peers.put(Long.valueOf(1), new QuorumPeer.QuorumServer(1, new InetSocketAddress(LOCALADDR, port1), new InetSocketAddress(LOCALADDR, portLE1), new InetSocketAddress(LOCALADDR, portClient1), QuorumPeer.LearnerType.PARTICIPANT));
             peers.put(Long.valueOf(2), new QuorumPeer.QuorumServer(2, new InetSocketAddress(LOCALADDR, port2), new InetSocketAddress(LOCALADDR, portLE2), new InetSocketAddress(LOCALADDR, portClient2), QuorumPeer.LearnerType.PARTICIPANT));
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumTest.java
index 72a5f140b..ff53b0fe9 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumTest.java
@@ -314,7 +314,7 @@ public class QuorumTest extends ZKTestCase {
             assertTrue(oldWatcher.zkDisco);
         }
 
-        ArrayList<ZooKeeper> toClose = new ArrayList<ZooKeeper>();
+        ArrayList<ZooKeeper> toClose = new ArrayList<>();
         toClose.add(zknew);
         // Let's just make sure it can still move
         for (int i = 0; i < 10; i++) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumUtil.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumUtil.java
index ce1cd1b3c..865d82b0c 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumUtil.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumUtil.java
@@ -65,9 +65,9 @@ public class QuorumUtil {
 
     }
 
-    private final Map<Long, QuorumServer> peersView = new HashMap<Long, QuorumServer>();
+    private final Map<Long, QuorumServer> peersView = new HashMap<>();
 
-    private final Map<Integer, PeerStruct> peers = new HashMap<Integer, PeerStruct>();
+    private final Map<Integer, PeerStruct> peers = new HashMap<>();
 
     public final int N;
 
@@ -165,7 +165,7 @@ public class QuorumUtil {
         try {
             JMXEnv.dump();
             // make sure we have all servers listed
-            Set<String> ensureNames = new LinkedHashSet<String>();
+            Set<String> ensureNames = new LinkedHashSet<>();
             for (int i = 1; i <= ALL; ++i) {
                 ensureNames.add("InMemoryDataTree");
             }
@@ -294,7 +294,7 @@ public class QuorumUtil {
     }
 
     public List<QuorumPeer> getFollowerQuorumPeers() {
-        List<QuorumPeer> peerList = new ArrayList<QuorumPeer>(ALL - 1);
+        List<QuorumPeer> peerList = new ArrayList<>(ALL - 1);
 
         for (PeerStruct ps : peers.values()) {
             if (ps.peer.leader == null) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigExceptionTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigExceptionTest.java
index 9dc21ba27..5afcb0d34 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigExceptionTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigExceptionTest.java
@@ -156,7 +156,7 @@ public class ReconfigExceptionTest extends ZKTestCase {
         try {
             zkAdmin.addAuthInfo("digest", "super:test".getBytes());
             // There is ACL however the permission is wrong - need WRITE permission at leaste.
-            ArrayList<ACL> acls = new ArrayList<ACL>(Collections.singletonList(new ACL(ZooDefs.Perms.READ, new Id("digest", "user:tl+z3z0vO6PfPfEENfLF96E6pM0="/* password is test */))));
+            ArrayList<ACL> acls = new ArrayList<>(Collections.singletonList(new ACL(ZooDefs.Perms.READ, new Id("digest", "user:tl+z3z0vO6PfPfEENfLF96E6pM0="/* password is test */))));
             zkAdmin.setACL(ZooDefs.CONFIG_NODE, acls, -1);
             resetZKAdmin();
             zkAdmin.addAuthInfo("digest", "user:test".getBytes());
@@ -174,7 +174,7 @@ public class ReconfigExceptionTest extends ZKTestCase {
 
         try {
             zkAdmin.addAuthInfo("digest", "super:test".getBytes());
-            ArrayList<ACL> acls = new ArrayList<ACL>(Collections.singletonList(new ACL(ZooDefs.Perms.WRITE, new Id("digest", "user:tl+z3z0vO6PfPfEENfLF96E6pM0="/* password is test */))));
+            ArrayList<ACL> acls = new ArrayList<>(Collections.singletonList(new ACL(ZooDefs.Perms.WRITE, new Id("digest", "user:tl+z3z0vO6PfPfEENfLF96E6pM0="/* password is test */))));
             zkAdmin.setACL(ZooDefs.CONFIG_NODE, acls, -1);
             resetZKAdmin();
             zkAdmin.addAuthInfo("digest", "user:test".getBytes());
@@ -208,7 +208,7 @@ public class ReconfigExceptionTest extends ZKTestCase {
     }
 
     private boolean reconfigPort() throws KeeperException, InterruptedException {
-        List<String> joiningServers = new ArrayList<String>();
+        List<String> joiningServers = new ArrayList<>();
         int leaderId = 1;
         while (qu.getPeer(leaderId).peer.leader == null) {
             leaderId++;
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigMisconfigTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigMisconfigTest.java
index 9e1b83802..712497f35 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigMisconfigTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigMisconfigTest.java
@@ -115,7 +115,7 @@ public class ReconfigMisconfigTest extends ZKTestCase {
     }
 
     private boolean reconfigPort() throws KeeperException, InterruptedException {
-        List<String> joiningServers = new ArrayList<String>();
+        List<String> joiningServers = new ArrayList<>();
         int leaderId = 1;
         while (qu.getPeer(leaderId).peer.leader == null) {
             leaderId++;
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigTest.java
index 65026a6b9..20ec82d09 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigTest.java
@@ -288,8 +288,8 @@ public class ReconfigTest extends ZKTestCase implements DataCallback {
         zkArr = createHandles(qu);
         zkAdminArr = createAdminHandles(qu);
 
-        List<String> leavingServers = new ArrayList<String>();
-        List<String> joiningServers = new ArrayList<String>();
+        List<String> leavingServers = new ArrayList<>();
+        List<String> joiningServers = new ArrayList<>();
 
         int leaderIndex = getLeaderId(qu);
 
@@ -366,8 +366,8 @@ public class ReconfigTest extends ZKTestCase implements DataCallback {
         zkArr = createHandles(qu);
         zkAdminArr = createAdminHandles(qu);
 
-        List<String> leavingServers = new ArrayList<String>();
-        List<String> joiningServers = new ArrayList<String>();
+        List<String> leavingServers = new ArrayList<>();
+        List<String> joiningServers = new ArrayList<>();
 
         int leaderIndex = getLeaderId(qu);
 
@@ -473,7 +473,7 @@ public class ReconfigTest extends ZKTestCase implements DataCallback {
 
         // new config will have three of the servers as followers
         // two of the servers as observers, and all ports different
-        ArrayList<String> newServers = new ArrayList<String>();
+        ArrayList<String> newServers = new ArrayList<>();
         for (int i = 1; i <= 5; i++) {
             String server = "server." + i + "=localhost:" + PortAssignment.unique()
                             + ":" + PortAssignment.unique() + ":" + ((i == 4 || i == 5) ? "observer" : "participant")
@@ -507,12 +507,12 @@ public class ReconfigTest extends ZKTestCase implements DataCallback {
         zkArr = createHandles(qu);
         zkAdminArr = createAdminHandles(qu);
 
-        List<String> leavingServers = new ArrayList<String>();
+        List<String> leavingServers = new ArrayList<>();
 
         // lets remove someone who's not the leader
         leavingServers.add(getLeaderId(qu) == 5 ? "4" : "5");
 
-        List<Integer> results = new LinkedList<Integer>();
+        List<Integer> results = new LinkedList<>();
 
         zkAdminArr[1].reconfigure(null, leavingServers, null, -1, this, results);
 
@@ -547,7 +547,7 @@ public class ReconfigTest extends ZKTestCase implements DataCallback {
 
         // changing a server's role / port is done by "adding" it with the same
         // id but different role / port
-        List<String> joiningServers = new ArrayList<String>();
+        List<String> joiningServers = new ArrayList<>();
 
         int leaderIndex = getLeaderId(qu);
 
@@ -622,7 +622,7 @@ public class ReconfigTest extends ZKTestCase implements DataCallback {
         zkArr = createHandles(qu);
         zkAdminArr = createAdminHandles(qu);
 
-        List<String> joiningServers = new ArrayList<String>();
+        List<String> joiningServers = new ArrayList<>();
 
         int leaderIndex = getLeaderId(qu);
         int followerIndex = leaderIndex == 1 ? 2 : 1;
@@ -761,7 +761,7 @@ public class ReconfigTest extends ZKTestCase implements DataCallback {
         zkArr = createHandles(qu);
         zkAdminArr = createAdminHandles(qu);
 
-        List<String> joiningServers = new ArrayList<String>();
+        List<String> joiningServers = new ArrayList<>();
 
         int leaderIndex = getLeaderId(qu);
         int followerIndex = leaderIndex == 1 ? 2 : 1;
@@ -950,8 +950,8 @@ public class ReconfigTest extends ZKTestCase implements DataCallback {
         zkArr = createHandles(qu);
         zkAdminArr = createAdminHandles(qu);
 
-        List<String> leavingServers = new ArrayList<String>();
-        List<String> joiningServers = new ArrayList<String>();
+        List<String> leavingServers = new ArrayList<>();
+        List<String> joiningServers = new ArrayList<>();
 
         // assert remotePeerBean.1 of ReplicatedServer_2
         int leavingIndex = 1;
@@ -1035,7 +1035,7 @@ public class ReconfigTest extends ZKTestCase implements DataCallback {
 
         // changing a server's role / port is done by "adding" it with the same
         // id but different role / port
-        List<String> joiningServers = new ArrayList<String>();
+        List<String> joiningServers = new ArrayList<>();
 
         // assert remotePeerBean.1 of ReplicatedServer_2
         int changingIndex = 1;
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/SaslAuthDesignatedClientTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/SaslAuthDesignatedClientTest.java
index 27156865d..e5cd89d43 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/SaslAuthDesignatedClientTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/SaslAuthDesignatedClientTest.java
@@ -112,7 +112,7 @@ public class SaslAuthDesignatedClientTest extends ClientBase {
     public void testReadAccessUser() throws Exception {
         System.setProperty("zookeeper.letAnySaslUserDoX", "anyone");
         ZooKeeper zk = createClient();
-        List<ACL> aclList = new ArrayList<ACL>();
+        List<ACL> aclList = new ArrayList<>();
         ACL acl = new ACL(Perms.ADMIN | Perms.CREATE | Perms.WRITE | Perms.DELETE, new Id("sasl", "fakeuser"));
         ACL acl1 = new ACL(Perms.READ, new Id("sasl", "anyone"));
         aclList.add(acl);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/SessionTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/SessionTest.java
index 9d859eeaa..85f76c213 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/SessionTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/SessionTest.java
@@ -331,7 +331,7 @@ public class SessionTest extends ZKTestCase {
 
     private class DupWatcher extends CountdownWatcher {
 
-        public List<WatchedEvent> states = new LinkedList<WatchedEvent>();
+        public List<WatchedEvent> states = new LinkedList<>();
         public void process(WatchedEvent event) {
             super.process(event);
             if (event.getType() == EventType.None) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/SessionTrackerCheckTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/SessionTrackerCheckTest.java
index 250dc887b..d0ea52bd2 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/SessionTrackerCheckTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/SessionTrackerCheckTest.java
@@ -43,7 +43,7 @@ public class SessionTrackerCheckTest extends ZKTestCase {
     public static final int TICK_TIME = 1000;
     public static final int CONNECTION_TIMEOUT = TICK_TIME * 10;
 
-    private ConcurrentHashMap<Long, Integer> sessionsWithTimeouts = new ConcurrentHashMap<Long, Integer>();
+    private ConcurrentHashMap<Long, Integer> sessionsWithTimeouts = new ConcurrentHashMap<>();
 
     private class Expirer implements SessionExpirer {
 
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/StandaloneTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/StandaloneTest.java
index c7efeb177..49e648b0e 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/StandaloneTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/StandaloneTest.java
@@ -137,7 +137,7 @@ public class StandaloneTest extends QuorumPeerTestBase implements Watcher {
         ZooKeeperAdmin zkAdmin = new ZooKeeperAdmin(HOSTPORT, CONNECTION_TIMEOUT, watcher);
         watcher.waitForConnected(CONNECTION_TIMEOUT);
 
-        List<String> joiners = new ArrayList<String>();
+        List<String> joiners = new ArrayList<>();
         joiners.add("server.2=localhost:1234:1235;1236");
         // generate some transactions that will get logged
         try {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java
index 905b6cd78..c782e9820 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java
@@ -169,7 +169,7 @@ public class StaticHostProviderTest extends ZKTestCase {
         hostProvider.onConnected();
 
         // Number of machines increased, my server is not in the new cluster
-        newList = new ArrayList<InetSocketAddress>(3);
+        newList = new ArrayList<>(3);
         for (byte i = 4; i > 1; i--) { // 10.10.10.4:1238, 10.10.10.3:1237, 10.10.10.2:1236
             newList.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
         }
@@ -203,20 +203,20 @@ public class StaticHostProviderTest extends ZKTestCase {
     public void testUpdateMigrationGoesRound() throws UnknownHostException {
         HostProvider hostProvider = getHostProvider((byte) 4);
         // old list (just the ports): 1238, 1237, 1236, 1235
-        Collection<InetSocketAddress> newList = new ArrayList<InetSocketAddress>(10);
+        Collection<InetSocketAddress> newList = new ArrayList<>(10);
         for (byte i = 12; i > 2; i--) { // 1246, 1245, 1244, 1243, 1242, 1241,
             // 1240, 1239, 1238, 1237
             newList.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
         }
 
         // servers from the old list that appear in the new list
-        Collection<InetSocketAddress> oldStaying = new ArrayList<InetSocketAddress>(2);
+        Collection<InetSocketAddress> oldStaying = new ArrayList<>(2);
         for (byte i = 4; i > 2; i--) { // 1238, 1237
             oldStaying.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
         }
 
         // servers in the new list that are not in the old list
-        Collection<InetSocketAddress> newComing = new ArrayList<InetSocketAddress>(10);
+        Collection<InetSocketAddress> newComing = new ArrayList<>(10);
         for (byte i = 12; i > 4; i--) {// 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1139
             newComing.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
         }
@@ -232,7 +232,7 @@ public class StaticHostProviderTest extends ZKTestCase {
         // This means reconfigMode = true, and nextHostInReconfigMode will be
         // called from next
         // Since pNew = 1 we should first try the new servers
-        ArrayList<InetSocketAddress> seen = new ArrayList<InetSocketAddress>();
+        ArrayList<InetSocketAddress> seen = new ArrayList<>();
         for (int i = 0; i < newComing.size(); i++) {
             InetSocketAddress addr = hostProvider.next(0);
             assertTrue(newComing.contains(addr));
@@ -325,7 +325,7 @@ public class StaticHostProviderTest extends ZKTestCase {
 
         // remove host number 0 (the first one in the current list)
         // and add back hosts 6, 7 and 8
-        newList = new ArrayList<InetSocketAddress>(8);
+        newList = new ArrayList<>(8);
         for (byte i = 9; i > 1; i--) {
             newList.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
         }
@@ -486,7 +486,7 @@ public class StaticHostProviderTest extends ZKTestCase {
     }
 
     private Collection<InetSocketAddress> getServerAddresses(byte size) {
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size);
+        ArrayList<InetSocketAddress> list = new ArrayList<>(size);
         while (size > 0) {
             try {
                 list.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, size}), 1234 + size));
@@ -699,7 +699,7 @@ public class StaticHostProviderTest extends ZKTestCase {
     public void testReResolvingSingle() throws UnknownHostException {
         // Arrange
         byte size = 1;
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size);
+        ArrayList<InetSocketAddress> list = new ArrayList<>(size);
 
         // Test a hostname that resolves to a single address
         list.add(InetSocketAddress.createUnresolved("issues.apache.org", 1234));
@@ -733,7 +733,7 @@ public class StaticHostProviderTest extends ZKTestCase {
     public void testReResolvingMultiple() throws UnknownHostException {
         // Arrange
         byte size = 1;
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size);
+        ArrayList<InetSocketAddress> list = new ArrayList<>(size);
 
         // Test a hostname that resolves to multiple addresses
         list.add(InetSocketAddress.createUnresolved("www.apache.org", 1234));
@@ -748,7 +748,7 @@ public class StaticHostProviderTest extends ZKTestCase {
         when(apacheOrg2.toString()).thenReturn("www.apache.org");
         when(apacheOrg2.getHostName()).thenReturn("www.apache.org");
 
-        final List<InetAddress> resolvedAddresses = new ArrayList<InetAddress>();
+        final List<InetAddress> resolvedAddresses = new ArrayList<>();
         resolvedAddresses.add(apacheOrg1);
         resolvedAddresses.add(apacheOrg2);
         StaticHostProvider.Resolver resolver = new StaticHostProvider.Resolver() {
@@ -775,10 +775,10 @@ public class StaticHostProviderTest extends ZKTestCase {
     @Test
     public void testReResolveMultipleOneFailing() throws UnknownHostException {
         // Arrange
-        final List<InetSocketAddress> list = new ArrayList<InetSocketAddress>();
+        final List<InetSocketAddress> list = new ArrayList<>();
         list.add(InetSocketAddress.createUnresolved("www.apache.org", 1234));
-        final List<String> ipList = new ArrayList<String>();
-        final List<InetAddress> resolvedAddresses = new ArrayList<InetAddress>();
+        final List<String> ipList = new ArrayList<>();
+        final List<InetAddress> resolvedAddresses = new ArrayList<>();
         for (int i = 0; i < 3; i++) {
             ipList.add(String.format("192.168.1.%d", i + 1));
             final InetAddress apacheOrg = mock(InetAddress.class);
@@ -821,10 +821,10 @@ public class StaticHostProviderTest extends ZKTestCase {
     @Test
     public void testEmptyResolution() throws UnknownHostException {
         // Arrange
-        final List<InetSocketAddress> list = new ArrayList<InetSocketAddress>();
+        final List<InetSocketAddress> list = new ArrayList<>();
         list.add(InetSocketAddress.createUnresolved("www.apache.org", 1234));
         list.add(InetSocketAddress.createUnresolved("www.google.com", 1234));
-        final List<InetAddress> resolvedAddresses = new ArrayList<InetAddress>();
+        final List<InetAddress> resolvedAddresses = new ArrayList<>();
 
         final InetAddress apacheOrg1 = mock(InetAddress.class);
         when(apacheOrg1.getHostAddress()).thenReturn("192.168.1.1");
@@ -865,7 +865,7 @@ public class StaticHostProviderTest extends ZKTestCase {
     @Test
     public void testReResolvingLocalhost() {
         byte size = 2;
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size);
+        ArrayList<InetSocketAddress> list = new ArrayList<>(size);
 
         // Test a hostname that resolves to multiple addresses
         list.add(InetSocketAddress.createUnresolved("localhost", 1234));
@@ -884,7 +884,7 @@ public class StaticHostProviderTest extends ZKTestCase {
     }
 
     private Collection<InetSocketAddress> getUnresolvedServerAddresses(byte size) {
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size);
+        ArrayList<InetSocketAddress> list = new ArrayList<>(size);
         while (size > 0) {
             list.add(InetSocketAddress.createUnresolved("10.10.10." + size, 1234 + size));
             --size;
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/TruncateTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/TruncateTest.java
index 622dadfa7..f81afc867 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/TruncateTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/TruncateTest.java
@@ -189,7 +189,7 @@ public class TruncateTest extends ZKTestCase {
         int port3 = PortAssignment.unique();
 
         // Start up two of the quorum and add 10 txns
-        Map<Long, QuorumServer> peers = new HashMap<Long, QuorumServer>();
+        Map<Long, QuorumServer> peers = new HashMap<>();
         peers.put(Long.valueOf(1), new QuorumServer(1, new InetSocketAddress("127.0.0.1", PortAssignment.unique()), new InetSocketAddress("127.0.0.1", PortAssignment.unique()), new InetSocketAddress("127.0.0.1", port1)));
         peers.put(Long.valueOf(2), new QuorumServer(2, new InetSocketAddress("127.0.0.1", PortAssignment.unique()), new InetSocketAddress("127.0.0.1", PortAssignment.unique()), new InetSocketAddress("127.0.0.1", port2)));
         peers.put(Long.valueOf(3), new QuorumServer(3, new InetSocketAddress("127.0.0.1", PortAssignment.unique()), new InetSocketAddress("127.0.0.1", PortAssignment.unique()), new InetSocketAddress("127.0.0.1", port3)));
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatchEventWhenAutoResetTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatchEventWhenAutoResetTest.java
index f519c95d1..5fd4b96b1 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatchEventWhenAutoResetTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatchEventWhenAutoResetTest.java
@@ -51,7 +51,7 @@ public class WatchEventWhenAutoResetTest extends ZKTestCase {
 
     public static class EventsWatcher extends CountdownWatcher {
 
-        private LinkedBlockingQueue<WatchedEvent> dataEvents = new LinkedBlockingQueue<WatchedEvent>();
+        private LinkedBlockingQueue<WatchedEvent> dataEvents = new LinkedBlockingQueue<>();
 
         @Override
         public void process(WatchedEvent event) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatcherFuncTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatcherFuncTest.java
index 0987c4cf7..180cd08a6 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatcherFuncTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatcherFuncTest.java
@@ -45,7 +45,7 @@ public class WatcherFuncTest extends ClientBase {
 
     private static class SimpleWatcher implements Watcher {
 
-        private LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<WatchedEvent>();
+        private LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<>();
         private CountDownLatch latch;
 
         public SimpleWatcher(CountDownLatch latch) {
@@ -103,7 +103,7 @@ public class WatcherFuncTest extends ClientBase {
         lsnr_dwatch = new SimpleWatcher(lsnr_latch);
         lsnr = createClient(lsnr_dwatch, lsnr_latch);
 
-        expected = new ArrayList<EventType>();
+        expected = new ArrayList<>();
     }
 
     @AfterEach
@@ -266,7 +266,7 @@ public class WatcherFuncTest extends ClientBase {
         SimpleWatcher w3 = new SimpleWatcher(null);
         SimpleWatcher w4 = new SimpleWatcher(null);
 
-        List<EventType> e2 = new ArrayList<EventType>();
+        List<EventType> e2 = new ArrayList<>();
 
         assertNull(lsnr.exists("/foo", true));
         assertNull(lsnr.exists("/foo", w1));
@@ -302,7 +302,7 @@ public class WatcherFuncTest extends ClientBase {
         client.setData("/foo/bar", "child".getBytes(), -1);
         e2.add(EventType.NodeDataChanged);
 
-        lsnr_dwatch.verify(new ArrayList<EventType>()); // not reg so should = 0
+        lsnr_dwatch.verify(new ArrayList<>()); // not reg so should = 0
         w1.verify(expected);
         w2.verify(e2);
         w3.verify(e2);
@@ -341,7 +341,7 @@ public class WatcherFuncTest extends ClientBase {
         SimpleWatcher w3 = new SimpleWatcher(null);
         SimpleWatcher w4 = new SimpleWatcher(null);
 
-        List<EventType> e2 = new ArrayList<EventType>();
+        List<EventType> e2 = new ArrayList<>();
 
         try {
             lsnr.getData("/foo", w1, null);
@@ -408,7 +408,7 @@ public class WatcherFuncTest extends ClientBase {
         SimpleWatcher w3 = new SimpleWatcher(null);
         SimpleWatcher w4 = new SimpleWatcher(null);
 
-        List<EventType> e2 = new ArrayList<EventType>();
+        List<EventType> e2 = new ArrayList<>();
 
         try {
             lsnr.getChildren("/foo", true);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatcherTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatcherTest.java
index 8a17885b1..22da89a2e 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatcherTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatcherTest.java
@@ -63,7 +63,7 @@ public class WatcherTest extends ClientBase {
 
     private class MyWatcher extends CountdownWatcher {
 
-        LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<WatchedEvent>();
+        LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<>();
 
         public void process(WatchedEvent event) {
             super.process(event);
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ZooKeeperTestClient.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ZooKeeperTestClient.java
index c4ef9e23d..389104b9a 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ZooKeeperTestClient.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ZooKeeperTestClient.java
@@ -45,7 +45,7 @@ public class ZooKeeperTestClient extends ZKTestCase implements Watcher {
 
     protected String testDirOnZK = dirOnZK + "/" + Time.currentElapsedTime();
 
-    LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<WatchedEvent>();
+    LinkedBlockingQueue<WatchedEvent> events = new LinkedBlockingQueue<>();
 
     private WatchedEvent getEvent(int numTries) throws InterruptedException {
         WatchedEvent event = null;