bookkeeper-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From zhai...@apache.org
Subject [bookkeeper] branch master updated: ISSUE #463: Improve bookkeeper unit test
Date Tue, 29 Aug 2017 23:37:15 GMT
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
     new dd96803  ISSUE #463: Improve bookkeeper unit test
dd96803 is described below

commit dd9680373188948f0e7b8f3b994309626a472856
Author: Sijie Guo <sijie@apache.org>
AuthorDate: Wed Aug 30 07:37:04 2017 +0800

    ISSUE #463: Improve bookkeeper unit test
    
    Descriptions of the changes in this PR:
    
    - remove `timeout` on individual tests, instead setting globalTimeout on base test `BookKeeperClusterTestCase` to simplify managing timeout on individual tests
    - use maven docker build to run unit tests
    - zookeeper cluster uses port 0
    
    Author: Sijie Guo <sijie@apache.org>
    
    Reviewers: Jia Zhai <None>
    
    This closes #481 from sijie/merge_fix, closes #463
---
 .../apache/bookkeeper/benchmark/TestBenchmark.java |  6 +-
 .../http/twitter/TestTwitterHttpServer.java        |  2 +-
 .../bookkeeper/http/vertx/TestVertxHttpServer.java |  2 +-
 .../bookie/CompactableLedgerStorage.java           |  2 +-
 .../apache/bookkeeper/bookie/HandleFactory.java    |  2 +-
 .../apache/bookkeeper/client/LedgerFragment.java   |  2 +-
 .../org/apache/bookkeeper/client/package-info.java |  2 +-
 .../org/apache/bookkeeper/common/package-info.java |  2 +-
 .../org/apache/bookkeeper/util/DoubleByteBuf.java  |  2 +-
 .../java/org/apache/bookkeeper/auth/TestAuth.java  | 24 +++----
 .../bookkeeper/bookie/AdvertisedAddressTest.java   |  4 +-
 .../bookie/BookieInitializationTest.java           | 28 ++++-----
 .../bookkeeper/bookie/BookieJournalTest.java       | 22 +++----
 .../bookkeeper/bookie/BookieShutdownTest.java      |  4 +-
 .../bookie/BookieStorageThresholdTest.java         |  2 +-
 .../apache/bookkeeper/bookie/BookieThreadTest.java |  2 +-
 .../apache/bookkeeper/bookie/CompactionTest.java   | 24 +++----
 .../org/apache/bookkeeper/bookie/CookieTest.java   | 34 +++++-----
 .../apache/bookkeeper/bookie/CreateNewLogTest.java |  4 +-
 .../org/apache/bookkeeper/bookie/EntryLogTest.java | 12 ++--
 .../bookkeeper/bookie/IndexCorruptionTest.java     |  4 +-
 .../bookkeeper/bookie/IndexPersistenceMgrTest.java |  4 +-
 .../apache/bookkeeper/bookie/LedgerCacheTest.java  | 18 +++---
 .../bookkeeper/bookie/LedgerStorageTest.java       |  2 +-
 .../bookie/TestGcOverreplicatedLedger.java         |  6 +-
 .../bookkeeper/bookie/TestLedgerDirsManager.java   | 14 ++---
 .../apache/bookkeeper/bookie/TestSyncThread.java   |  8 +--
 .../org/apache/bookkeeper/bookie/UpgradeTest.java  |  8 +--
 .../bookkeeper/client/BookKeeperAdminTest.java     | 10 +--
 .../client/BookKeeperClientZKSessionExpiry.java    |  2 +-
 .../bookkeeper/client/BookKeeperCloseTest.java     | 20 +++---
 ...KeeperDiskSpaceWeightedLedgerPlacementTest.java | 10 +--
 .../apache/bookkeeper/client/BookKeeperTest.java   | 22 +++----
 .../bookkeeper/client/BookieRecoveryTest.java      | 24 +++----
 .../bookkeeper/client/BookieWriteLedgerTest.java   | 28 ++++-----
 ...BookieWriteLedgersWithDifferentDigestsTest.java |  4 +-
 .../client/GenericEnsemblePlacementPolicyTest.java |  6 +-
 .../apache/bookkeeper/client/LedgerCloseTest.java  |  8 +--
 .../bookkeeper/client/LedgerRecoveryTest.java      | 22 +++----
 .../apache/bookkeeper/client/ListLedgersTest.java  |  8 +--
 .../client/ParallelLedgerRecoveryTest.java         | 28 ++++-----
 .../client/RoundRobinDistributionScheduleTest.java |  4 +-
 .../apache/bookkeeper/client/SlowBookieTest.java   |  6 +-
 .../client/TestAddEntryQuorumTimeout.java          |  6 +-
 .../bookkeeper/client/TestBookieHealthCheck.java   |  6 +-
 .../bookkeeper/client/TestBookieWatcher.java       |  4 +-
 .../bookkeeper/client/TestDelayEnsembleChange.java | 12 ++--
 .../client/TestDisableEnsembleChange.java          |  8 +--
 .../org/apache/bookkeeper/client/TestFencing.java  | 14 ++---
 .../client/TestGetBookieInfoTimeout.java           |  2 +-
 .../bookkeeper/client/TestLedgerChecker.java       | 22 +++----
 .../client/TestLedgerFragmentReplication.java      |  8 +--
 .../apache/bookkeeper/client/TestParallelRead.java | 10 +--
 .../apache/bookkeeper/client/TestPiggybackLAC.java |  2 +-
 .../TestRackawareEnsemblePlacementPolicy.java      | 34 +++++-----
 ...ackawareEnsemblePlacementPolicyUsingScript.java | 18 +++---
 .../bookkeeper/client/TestReadEntryListener.java   | 16 ++---
 .../client/TestReadLastConfirmedAndEntry.java      |  4 +-
 .../client/TestReadLastConfirmedLongPoll.java      |  4 +-
 .../apache/bookkeeper/client/TestReadTimeout.java  |  2 +-
 .../TestRegionAwareEnsemblePlacementPolicy.java    | 60 +++++++++---------
 .../apache/bookkeeper/client/TestSequenceRead.java |  2 +-
 .../bookkeeper/client/TestSpeculativeRead.java     |  8 +--
 .../client/TestTryReadLastConfirmed.java           |  6 +-
 .../bookkeeper/client/TestWatchEnsembleChange.java |  4 +-
 .../client/TestWeightedRandomSelection.java        | 12 ++--
 .../bookkeeper/client/UpdateLedgerCmdTest.java     |  2 +-
 .../bookkeeper/client/UpdateLedgerOpTest.java      |  8 +--
 .../conf/NoSystemPropertiesConfigurationTest.java  |  2 +-
 .../conf/SystemPropertiesConfigurationTest.java    |  2 +-
 .../apache/bookkeeper/http/TestHttpService.java    |  4 +-
 .../org/apache/bookkeeper/meta/GcLedgersTest.java  |  6 +-
 .../apache/bookkeeper/meta/LedgerLayoutTest.java   | 10 +--
 .../bookkeeper/meta/LedgerManagerIteratorTest.java |  2 +-
 .../meta/LedgerMetadataCreationTest.java           |  8 +--
 .../apache/bookkeeper/meta/TestLedgerManager.java  | 10 +--
 .../meta/TestLongZkLedgerIdGenerator.java          |  4 +-
 .../bookkeeper/meta/TestZkLedgerIdGenerator.java   |  2 +-
 .../org/apache/bookkeeper/meta/TestZkVersion.java  |  6 +-
 .../apache/bookkeeper/metastore/TestMetaStore.java | 10 +--
 .../org/apache/bookkeeper/proto/TestBKStats.java   |  2 +-
 .../bookkeeper/proto/TestBackwardCompatCMS42.java  |  6 +-
 .../apache/bookkeeper/proto/TestDeathwatcher.java  |  2 +-
 .../proto/TestPerChannelBookieClient.java          |  8 +--
 .../bookkeeper/replication/AuditorBookieTest.java  | 10 +--
 .../replication/AuditorLedgerCheckerTest.java      | 32 +++++-----
 .../AuditorPeriodicBookieCheckTest.java            |  2 +-
 .../replication/AuditorPeriodicCheckTest.java      |  8 +--
 .../replication/AuditorRollingRestartTest.java     |  4 +-
 .../replication/AuthAutoRecoveryTest.java          |  2 +-
 .../replication/AutoRecoveryMainTest.java          |  6 +-
 .../replication/BookieAutoRecoveryTest.java        | 14 ++---
 .../replication/BookieLedgerIndexTest.java         |  6 +-
 .../TestAutoRecoveryAlongWithBookieServers.java    |  2 +-
 .../TestLedgerUnderreplicationManager.java         | 26 ++++----
 .../replication/TestReplicationWorker.java         | 18 +++---
 .../bookkeeper/sasl/GSSAPIBookKeeperTest.java      |  4 +-
 .../bookkeeper/sasl/MD5DigestBookKeeperTest.java   |  2 +-
 .../apache/bookkeeper/test/AsyncLedgerOpsTest.java |  2 +-
 .../bookkeeper/test/BookKeeperClusterTestCase.java |  9 +++
 .../apache/bookkeeper/test/BookieClientTest.java   |  6 +-
 .../apache/bookkeeper/test/BookieFailureTest.java  | 16 ++---
 .../bookkeeper/test/BookieJournalRollingTest.java  |  6 +-
 .../bookkeeper/test/BookieReadWriteTest.java       | 26 ++++----
 .../apache/bookkeeper/test/BookieZKExpireTest.java |  2 +-
 .../java/org/apache/bookkeeper/test/CloseTest.java |  4 +-
 .../bookkeeper/test/ConcurrentLedgerTest.java      |  2 +-
 .../apache/bookkeeper/test/ConditionalSetTest.java |  2 +-
 .../apache/bookkeeper/test/ConfigurationTest.java  |  4 +-
 .../bookkeeper/test/ForceReadOnlyBookieTest.java   |  2 +-
 .../bookkeeper/test/LedgerCreateDeleteTest.java    |  6 +-
 .../apache/bookkeeper/test/LedgerDeleteTest.java   |  4 +-
 .../bookkeeper/test/MultipleThreadReadTest.java    |  6 +-
 .../org/apache/bookkeeper/test/PortManager.java    |  2 +-
 .../apache/bookkeeper/test/ReadOnlyBookieTest.java | 10 +--
 .../org/apache/bookkeeper/test/ZooKeeperUtil.java  | 14 +++--
 .../java/org/apache/bookkeeper/tls/TestTLS.java    | 30 ++++-----
 .../apache/bookkeeper/util/DoubleByteBufTest.java  | 10 +--
 .../apache/bookkeeper/util/SubTreeCacheTest.java   | 23 +++----
 .../apache/bookkeeper/util/TestDiskChecker.java    |  6 +-
 .../org/apache/bookkeeper/util/TestZkUtils.java    |  2 +-
 .../GrowableArrayBlockingQueueTest.java            |  6 +-
 .../bookkeeper/zookeeper/TestRetryPolicy.java      |  4 +-
 .../bookkeeper/zookeeper/TestZooKeeperClient.java  |  8 +--
 .../stats/twitter/finagle/CounterImpl.java         |  2 +-
 dev/docker/Dockerfile                              | 20 ++++++
 dev/docker/ci.sh                                   | 65 +++++++++++++++++++
 dev/docker/run.sh                                  | 73 ++++++++++++++++++++++
 pom.xml                                            |  6 +-
 .../tests/backward/TestBackwardCompat.java         | 10 +--
 .../tests/backward/TestBookieRecovery.java         |  2 +-
 131 files changed, 753 insertions(+), 579 deletions(-)

diff --git a/bookkeeper-benchmark/src/test/java/org/apache/bookkeeper/benchmark/TestBenchmark.java b/bookkeeper-benchmark/src/test/java/org/apache/bookkeeper/benchmark/TestBenchmark.java
index f5108ec..3f69499 100644
--- a/bookkeeper-benchmark/src/test/java/org/apache/bookkeeper/benchmark/TestBenchmark.java
+++ b/bookkeeper-benchmark/src/test/java/org/apache/bookkeeper/benchmark/TestBenchmark.java
@@ -38,7 +38,7 @@ public class TestBenchmark extends BookKeeperClusterTestCase {
         super(5);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testThroughputLatency() throws Exception {
         String latencyFile = System.getProperty("test.latency.file", "latencyDump.dat");
         BenchThroughputLatency.main(new String[] {
@@ -51,7 +51,7 @@ public class TestBenchmark extends BookKeeperClusterTestCase {
             });
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testBookie() throws Exception {
         BookieSocketAddress bookie = getBookie(0);
         BenchBookie.main(new String[] {
@@ -61,7 +61,7 @@ public class TestBenchmark extends BookKeeperClusterTestCase {
                 });
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testReadThroughputLatency() throws Exception {
         final AtomicBoolean threwException = new AtomicBoolean(false);
         Thread t = new Thread() {
diff --git a/bookkeeper-http/twitter-http-server/src/test/java/org/apache/bookkeeper/http/twitter/TestTwitterHttpServer.java b/bookkeeper-http/twitter-http-server/src/test/java/org/apache/bookkeeper/http/twitter/TestTwitterHttpServer.java
index 8f1355f..d7598db 100644
--- a/bookkeeper-http/twitter-http-server/src/test/java/org/apache/bookkeeper/http/twitter/TestTwitterHttpServer.java
+++ b/bookkeeper-http/twitter-http-server/src/test/java/org/apache/bookkeeper/http/twitter/TestTwitterHttpServer.java
@@ -39,7 +39,7 @@ public class TestTwitterHttpServer {
 
     private int port = 8080;
 
-    @Test(timeout = 60000)
+    @Test
     public void testStartBasicHttpServer() throws Exception {
         TwitterHttpServer httpServer = new TwitterHttpServer();
         ServiceProvider serviceProvider = NullServiceProvider.getInstance();
diff --git a/bookkeeper-http/vertx-http-server/src/test/java/org/apache/bookkeeper/http/vertx/TestVertxHttpServer.java b/bookkeeper-http/vertx-http-server/src/test/java/org/apache/bookkeeper/http/vertx/TestVertxHttpServer.java
index f655c8e..4a0644a 100644
--- a/bookkeeper-http/vertx-http-server/src/test/java/org/apache/bookkeeper/http/vertx/TestVertxHttpServer.java
+++ b/bookkeeper-http/vertx-http-server/src/test/java/org/apache/bookkeeper/http/vertx/TestVertxHttpServer.java
@@ -39,7 +39,7 @@ public class TestVertxHttpServer {
 
     private int port = 8080;
 
-    @Test(timeout = 60000)
+    @Test
     public void testStartBasicHttpServer() throws Exception {
         VertxHttpServer httpServer = new VertxHttpServer();
         ServiceProvider serviceProvider = NullServiceProvider.getInstance();
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/CompactableLedgerStorage.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/CompactableLedgerStorage.java
index 242b990..9a5a0ab 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/CompactableLedgerStorage.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/CompactableLedgerStorage.java
@@ -57,4 +57,4 @@ public interface CompactableLedgerStorage extends LedgerStorage {
      * @throws IOException
      */
     void flushEntriesLocationsIndex() throws IOException;
-}
\ No newline at end of file
+}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/HandleFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/HandleFactory.java
index ee5f8f8..22500b7 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/HandleFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/HandleFactory.java
@@ -29,4 +29,4 @@ interface HandleFactory {
 
     LedgerDescriptor getReadOnlyHandle(long ledgerId)
             throws IOException, Bookie.NoLedgerException;
-}
\ No newline at end of file
+}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerFragment.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerFragment.java
index 6aadb8a..e12f77f 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerFragment.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerFragment.java
@@ -145,4 +145,4 @@ public class LedgerFragment {
                 getFirstStoredEntryId(), lastKnownEntryId, getLastStoredEntryId(),
                 getAddress(), isLedgerClosed);
     }
-}
\ No newline at end of file
+}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/package-info.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/package-info.java
index e52a7d1..29b32f6 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/package-info.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/package-info.java
@@ -21,4 +21,4 @@
 /**
  * BookKeeper Client.
  */
-package org.apache.bookkeeper.client;
\ No newline at end of file
+package org.apache.bookkeeper.client;
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/common/package-info.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/common/package-info.java
index 23e9ae6..08891b0 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/common/package-info.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/common/package-info.java
@@ -21,4 +21,4 @@
  *
  * <p>NOTE: refactor this package to bookkeeper-common module after 4.5</p>
  */
-package org.apache.bookkeeper.common;
\ No newline at end of file
+package org.apache.bookkeeper.common;
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/DoubleByteBuf.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/DoubleByteBuf.java
index 3b4c83a..15eb263 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/DoubleByteBuf.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/DoubleByteBuf.java
@@ -465,4 +465,4 @@ public final class DoubleByteBuf extends AbstractReferenceCountedByteBuf {
             throw new RuntimeException(t);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/auth/TestAuth.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/auth/TestAuth.java
index 2d112c6..d36e29d 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/auth/TestAuth.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/auth/TestAuth.java
@@ -109,7 +109,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
      * Test an connection will authorize with a single message
      * to the server and a single response.
      */
-    @Test(timeout=30000)
+    @Test
     public void testSingleMessageAuth() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -128,7 +128,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
         assertEquals("Should have entry", 1, entryCount(ledgerId.get(), bookieConf, clientConf));
     }
     
-    @Test(timeout=30000)
+    @Test
     public void testCloseMethodCalledOnAuthProvider() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -170,7 +170,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
      * Test that when the bookie provider sends a failure message
      * the client will not be able to write
      */
-    @Test(timeout=30000)
+    @Test
     public void testSingleMessageAuthFailure() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -198,7 +198,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
      * Test that authentication works when the providers
      * exchange multiple messages
      */
-    @Test(timeout=30000)
+    @Test
     public void testMultiMessageAuth() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -220,7 +220,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
      * Test that when the bookie provider sends a failure message
      * the client will not be able to write
      */
-    @Test(timeout=30000)
+    @Test
     public void testMultiMessageAuthFailure() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -248,7 +248,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
      * Test that when the bookie and the client have a different
      * plugin configured, no messages will get through.
      */
-    @Test(timeout=30000)
+    @Test
     public void testDifferentPluginFailure() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -275,7 +275,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
      * Test that when the plugin class does exist, but
      * doesn't implement the interface, we fail predictably
      */
-    @Test(timeout=30000)
+    @Test
     public void testExistantButNotValidPlugin() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -310,7 +310,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
      * the bookie will not start and the client will
      * break.
      */
-    @Test(timeout=30000)
+    @Test
     public void testNonExistantPlugin() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -342,7 +342,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
      * Test that when the plugin on the bookie crashes, the client doesn't
      * hang also, but it cannot write in any case.
      */
-    @Test(timeout=30000)
+    @Test
     public void testCrashDuringAuth() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -370,7 +370,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
      * Test that when a bookie simply stops replying during auth, the client doesn't
      * hang also, but it cannot write in any case.
      */
-    @Test(timeout=30000)
+    @Test
     public void testCrashType2DuringAuth() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -396,7 +396,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
     /**
      * Client will try to perform authentication but bookies are not configured
      */
-    @Test(timeout=30000)
+    @Test
     public void testClientWithAuthAndBookieWithDisabledAuth() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         assertNull(bookieConf.getBookieAuthProviderFactoryClass());
@@ -417,7 +417,7 @@ public class TestAuth extends BookKeeperClusterTestCase {
     /**
      * The plugin will drop the connection from the bookie side
      */
-    @Test(timeout=30000)
+    @Test
     public void testDropConnectionFromBookieAuthPlugin() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/AdvertisedAddressTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/AdvertisedAddressTest.java
index fe33886..eb4b7fd 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/AdvertisedAddressTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/AdvertisedAddressTest.java
@@ -55,7 +55,7 @@ public class AdvertisedAddressTest extends BookKeeperClusterTestCase {
     /**
      * Test starting bookie with clean state.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testSetAdvertisedAddress() throws Exception {
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration()
                 .setZkServers(zkUtil.getZooKeeperConnectString()).setJournalDirName(newDirectory(false))
@@ -84,7 +84,7 @@ public class AdvertisedAddressTest extends BookKeeperClusterTestCase {
     /**
      * When advertised address is specified, it should override the use
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBothUseHostnameAndAdvertisedAddress() throws Exception {
         ServerConfiguration conf = new ServerConfiguration().setBookiePort(bookiePort);
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieInitializationTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieInitializationTest.java
index 455c908..135736f 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieInitializationTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieInitializationTest.java
@@ -95,7 +95,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
      * Verify the bookie server exit code. On ZooKeeper exception, should return
      * exit code ZK_REG_FAIL = 4
      */
-    @Test(timeout = 20000)
+    @Test
     public void testExitCodeZK_REG_FAIL() throws Exception {
         File tmpDir = createTempDir("bookie", "test");
 
@@ -121,7 +121,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
                 ExitCode.ZK_REG_FAIL, bkServer.getExitCode());
     }
 
-    @Test(timeout = 20000)
+    @Test
     public void testBookieRegistrationWithSameZooKeeperClient() throws Exception {
         File tmpDir = createTempDir("bookie", "test");
 
@@ -150,7 +150,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
      * timeout when previous reg node exists in zk. On zNode delete event,
      * should continue startup
      */
-    @Test(timeout = 20000)
+    @Test
     public void testBookieRegistration() throws Exception {
         File tmpDir = createTempDir("bookie", "test");
 
@@ -215,7 +215,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
      * KeeperException.NodeExistsException if the znode still exists even after
      * the zk session timeout.
      */
-    @Test(timeout = 30000)
+    @Test
     public void testRegNodeExistsAfterSessionTimeOut() throws Exception {
         File tmpDir = createTempDir("bookie", "test");
 
@@ -270,7 +270,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
      * Verify duplicate bookie server startup. Should throw
      * java.net.BindException if already BK server is running
      */
-    @Test(timeout = 20000)
+    @Test
     public void testDuplicateBookieServerStartup() throws Exception {
         File tmpDir = createTempDir("bookie", "test");
 
@@ -298,7 +298,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
     /**
      * Verify bookie server starts up on ephemeral ports.
      */
-    @Test(timeout = 20000)
+    @Test
     public void testBookieServerStartupOnEphemeralPorts() throws Exception {
         File tmpDir = createTempDir("bookie", "test");
 
@@ -330,7 +330,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
     /**
      * Verify bookie start behaviour when ZK Server is not running.
      */
-    @Test(timeout = 20000)
+    @Test
     public void testStartBookieWithoutZKServer() throws Exception {
         zkUtil.killServer();
 
@@ -352,7 +352,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
      * Verify that if I try to start a bookie without zk initialized, it won't
      * prevent me from starting the bookie when zk is initialized
      */
-    @Test(timeout = 20000)
+    @Test
     public void testStartBookieWithoutZKInitialized() throws Exception {
         File tmpDir = createTempDir("bookie", "test");
         final String ZK_ROOT = "/ledgers2";
@@ -380,7 +380,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
     /**
      * Check disk full. Expected to fail on start.
      */
-    @Test(timeout = 30000)
+    @Test
     public void testWithDiskFullReadOnlyDisabledOrForceGCAllowDisabled() throws Exception {
         File tmpDir = createTempDir("DiskCheck", "test");
         long usableSpace = tmpDir.getUsableSpace();
@@ -427,7 +427,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
     /**
      * Check disk full. Expected to start as read-only.
      */
-    @Test(timeout = 30000)
+    @Test
     public void testWithDiskFullReadOnlyEnabledAndForceGCAllowAllowed() throws Exception {
         File tmpDir = createTempDir("DiskCheck", "test");
         long usableSpace = tmpDir.getUsableSpace();
@@ -486,7 +486,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
         }
     }
     
-    @Test(timeout = 30000)
+    @Test
     public void testWithDiskFullAndAbilityToCreateNewIndexFile() throws Exception {
         File tmpDir = createTempDir("DiskCheck", "test");
 
@@ -546,7 +546,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
     /**
      * Check disk error for file. Expected to throw DiskErrorException.
      */
-    @Test(timeout = 30000)
+    @Test
     public void testWithDiskError() throws Exception {
         File parent = createTempDir("DiskCheck", "test");
         File child = File.createTempFile("DiskCheck", "test", parent);
@@ -572,7 +572,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
      * if ALLOW_MULTIPLEDIRS_UNDER_SAME_DISKPARTITION is disabled then Bookie initialization
      * will fail if there are multiple ledger/index/journal dirs are in same partition/filesystem.
      */
-    @Test(timeout = 2000000)
+    @Test
     public void testAllowDiskPartitionDuplicationDisabled() throws Exception {
         File tmpDir1 = createTempDir("bookie", "test");
         File tmpDir2 = createTempDir("bookie", "test");
@@ -645,7 +645,7 @@ public class BookieInitializationTest extends BookKeeperClusterTestCase {
      * if ALLOW_MULTIPLEDIRS_UNDER_SAME_DISKPARTITION is enabled then Bookie initialization
      * should succeed even if there are multiple ledger/index/journal dirs in the same diskpartition/filesystem.
      */
-    @Test(timeout = 2000000)
+    @Test
     public void testAllowDiskPartitionDuplicationAllowed() throws Exception {
         File tmpDir1 = createTempDir("bookie", "test");
         File tmpDir2 = createTempDir("bookie", "test");
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieJournalTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieJournalTest.java
index 30062e9..8332b34 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieJournalTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieJournalTest.java
@@ -334,7 +334,7 @@ public class BookieJournalTest {
      * word at the start. This is for versions of bookkeeper before
      * the magic word was introduced
      */
-    @Test(timeout=60000)
+    @Test
     public void testPreV2Journal() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         Bookie.checkDirectoryStructure(Bookie.getCurrentDirectory(journalDir));
@@ -432,7 +432,7 @@ public class BookieJournalTest {
      * start the bookie. An admin should look to see what has
      * happened in this case
      */
-    @Test(timeout=60000)
+    @Test
     public void testAllJunkJournal() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         Bookie.checkDirectoryStructure(Bookie.getCurrentDirectory(journalDir));
@@ -466,7 +466,7 @@ public class BookieJournalTest {
      * the magic word existed, if the bookie started but nothing was
      * ever written.
      */
-    @Test(timeout=60000)
+    @Test
     public void testEmptyJournal() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         Bookie.checkDirectoryStructure(Bookie.getCurrentDirectory(journalDir));
@@ -488,7 +488,7 @@ public class BookieJournalTest {
      * Test that a journal can load if only the magic word and
      * version are there.
      */
-    @Test(timeout=60000)
+    @Test
     public void testHeaderOnlyJournal() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         Bookie.checkDirectoryStructure(Bookie.getCurrentDirectory(journalDir));
@@ -510,7 +510,7 @@ public class BookieJournalTest {
      * Test that if a journal has junk at the end, it does not load.
      * If the journal is corrupt like this, admin intervention is needed
      */
-    @Test(timeout=60000)
+    @Test
     public void testJunkEndedJournal() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         Bookie.checkDirectoryStructure(Bookie.getCurrentDirectory(journalDir));
@@ -545,7 +545,7 @@ public class BookieJournalTest {
      * should be fine here. The bookie has crashed while writing
      * but so the client has not be notified of success.
      */
-    @Test(timeout=60000)
+    @Test
     public void testTruncatedInLenJournal() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         Bookie.checkDirectoryStructure(Bookie.getCurrentDirectory(journalDir));
@@ -589,7 +589,7 @@ public class BookieJournalTest {
      * This is ok, as the client will disregard the entry after looking
      * at its checksum.
      */
-    @Test(timeout=60000)
+    @Test
     public void testTruncatedInEntryJournal() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         Bookie.checkDirectoryStructure(Bookie.getCurrentDirectory(journalDir));
@@ -642,7 +642,7 @@ public class BookieJournalTest {
     /**
      * Test partial index (truncate master key) with pre-v3 journals
      */
-    @Test(timeout=60000)
+    @Test
     public void testPartialFileInfoPreV3Journal1() throws Exception {
         testPartialFileInfoPreV3Journal(true);
     }
@@ -650,7 +650,7 @@ public class BookieJournalTest {
     /**
      * Test partial index with pre-v3 journals
      */
-    @Test(timeout=60000)
+    @Test
     public void testPartialFileInfoPreV3Journal2() throws Exception {
         testPartialFileInfoPreV3Journal(false);
     }
@@ -698,7 +698,7 @@ public class BookieJournalTest {
     /**
      * Test partial index (truncate master key) with post-v3 journals
      */
-    @Test(timeout=60000)
+    @Test
     public void testPartialFileInfoPostV3Journal1() throws Exception {
         testPartialFileInfoPostV3Journal(true);
     }
@@ -706,7 +706,7 @@ public class BookieJournalTest {
     /**
      * Test partial index with post-v3 journals
      */
-    @Test(timeout=60000)
+    @Test
     public void testPartialFileInfoPostV3Journal2() throws Exception {
         testPartialFileInfoPostV3Journal(false);
     }
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieShutdownTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieShutdownTest.java
index 5f34144..4dd61f7 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieShutdownTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieShutdownTest.java
@@ -59,7 +59,7 @@ public class BookieShutdownTest extends BookKeeperClusterTestCase {
      * Continuously restarting the bookie server to see all the external
      * resources are releasing properly. BOOKKEEPER-678
      */
-    @Test(timeout = 150000)
+    @Test
     public void testBookieRestartContinuously() throws Exception {
         for (int index = 0; index < 10; index++) {
             SyncObj sync = new SyncObj();
@@ -111,7 +111,7 @@ public class BookieShutdownTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookieShutdownFromBookieThread() throws Exception {
         ServerConfiguration conf = bsConfs.get(0);
         killBookie(0);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieStorageThresholdTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieStorageThresholdTest.java
index e9dd6ab..af8f1a3 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieStorageThresholdTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieStorageThresholdTest.java
@@ -130,7 +130,7 @@ public class BookieStorageThresholdTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testStorageThresholdCompaction() throws Exception {
 
         // We are having BKCluster with just one bookie (NUM_BOOKIES = 1).
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieThreadTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieThreadTest.java
index dfcbcf4..2420a06 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieThreadTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieThreadTest.java
@@ -67,7 +67,7 @@ public class BookieThreadTest {
     /**
      * Test verifies uncaught exception handling of BookieThread
      */
-    @Test(timeout = 30000)
+    @Test
     public void testUncaughtException() throws Exception {
         MyThread myThread = new MyThread("Test-Thread");
         myThread.start();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CompactionTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CompactionTest.java
index 87bbf35..9fcba8f 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CompactionTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CompactionTest.java
@@ -174,7 +174,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testDisableCompaction() throws Exception {
         // prepare data
         LedgerHandle[] lhs = prepareData(3, false);
@@ -210,7 +210,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testForceGarbageCollection() throws Exception {
         ServerConfiguration conf = newServerConfiguration();
         conf.setGcWaitTime(60000);
@@ -255,7 +255,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
         storage.shutdown();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testMinorCompaction() throws Exception {
         // prepare data
         LedgerHandle[] lhs = prepareData(3, false);
@@ -301,7 +301,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
         verifyLedger(lhs[0].getId(), 0, lhs[0].getLastAddConfirmed());
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testMinorCompactionWithNoWritableLedgerDirs() throws Exception {
         // prepare data
         LedgerHandle[] lhs = prepareData(3, false);
@@ -354,7 +354,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testMinorCompactionWithNoWritableLedgerDirsButIsForceGCAllowWhenNoSpaceIsSet() throws Exception {
         // prepare data
         LedgerHandle[] lhs = prepareData(3, false);
@@ -431,7 +431,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
         }
     }
     
-    @Test(timeout=60000)
+    @Test
     public void testMajorCompaction() throws Exception {
 
         // prepare data
@@ -477,7 +477,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
         verifyLedger(lhs[1].getId(), 0, lhs[1].getLastAddConfirmed());
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testMajorCompactionAboveThreshold() throws Exception {
         // prepare data
         LedgerHandle[] lhs = prepareData(3, false);
@@ -509,7 +509,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testCompactionSmallEntryLogs() throws Exception {
 
         // create a ledger to write a few entries
@@ -559,7 +559,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
      * {@see https://issues.apache.org/jira/browse/BOOKKEEPER-530}
      * {@see https://issues.apache.org/jira/browse/BOOKKEEPER-664}
      */
-    @Test(timeout=60000)
+    @Test
     public void testCompactionSafety() throws Exception {
         tearDown(); // I dont want the test infrastructure
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration();
@@ -714,7 +714,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
      * Test that compaction should execute silently when there is no entry logs
      * to compact. {@see https://issues.apache.org/jira/browse/BOOKKEEPER-700}
      */
-    @Test(timeout = 60000)
+    @Test
     public void testWhenNoLogsToCompact() throws Exception {
         tearDown(); // I dont want the test infrastructure
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration();
@@ -761,7 +761,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
     /**
      * Suspend garbage collection when suspendMajor/suspendMinor is set.
      */
-    @Test(timeout=60000)
+    @Test
     public void testSuspendGarbageCollection() throws Exception {
         ServerConfiguration conf = newServerConfiguration();
         conf.setGcWaitTime(500);
@@ -817,7 +817,7 @@ public abstract class CompactionTest extends BookKeeperClusterTestCase {
         storage.gcThread.resumeMajorGC();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testCompactionWithEntryLogRollover() throws Exception {
         // Disable bookie gc during this test
         baseConf.setGcWaitTime(60000);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CookieTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CookieTest.java
index 2288b79..014c194 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CookieTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CookieTest.java
@@ -75,7 +75,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
     /**
      * Test starting bookie with clean state.
      */
-    @Test(timeout=60000)
+    @Test
     public void testCleanStart() throws Exception {
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration()
             .setZkServers(zkUtil.getZooKeeperConnectString())
@@ -94,7 +94,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * is different to a local cookie, the bookie
      * will fail to start
      */
-    @Test(timeout=60000)
+    @Test
     public void testBadJournalCookie() throws Exception {
         ServerConfiguration conf1 = TestBKConfiguration.newServerConfiguration()
             .setJournalDirName(newDirectory())
@@ -129,7 +129,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * the configuration, the bookie will fail to
      * start
      */
-    @Test(timeout=60000)
+    @Test
     public void testDirectoryMissing() throws Exception {
         String[] ledgerDirs = new String[] {
             newDirectory(), newDirectory(), newDirectory() };
@@ -171,7 +171,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * preexisting bookie, the bookie will fail
      * to start
      */
-    @Test(timeout=60000)
+    @Test
     public void testDirectoryAdded() throws Exception {
         String ledgerDir0 = newDirectory();
         String journalDir = newDirectory();
@@ -203,7 +203,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * Test that if a directory is added to an existing bookie, and
      * allowStorageExpansion option is true, the bookie should come online.
      */
-    @Test(timeout=60000)
+    @Test
     public void testStorageExpansionOption() throws Exception {
         String ledgerDir0 = newDirectory();
         String indexDir0 = newDirectory();
@@ -286,7 +286,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * Test that adding of a non-empty directory is not allowed
      * even when allowStorageExpansion option is true
      */
-    @Test(timeout=60000)
+    @Test
     public void testNonEmptyDirAddWithStorageExpansionOption() throws Exception {
         String ledgerDir0 = newDirectory();
         String indexDir0 = newDirectory();
@@ -341,7 +341,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * Test that if a directory's contents
      * are emptied, the bookie will fail to start
      */
-    @Test(timeout=60000)
+    @Test
     public void testDirectoryCleared() throws Exception {
         String ledgerDir0 = newDirectory();
         String journalDir = newDirectory();
@@ -368,7 +368,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * Test that if a bookie's port is changed
      * the bookie will fail to start
      */
-    @Test(timeout=60000)
+    @Test
     public void testBookiePortChanged() throws Exception {
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration()
             .setZkServers(zkUtil.getZooKeeperConnectString())
@@ -394,7 +394,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * existed in the system, then the bookie will fail
      * to start
      */
-    @Test(timeout=60000)
+    @Test
     public void testNewBookieStartingWithAnotherBookiesPort() throws Exception {
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration()
             .setZkServers(zkUtil.getZooKeeperConnectString())
@@ -421,7 +421,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
     /*
      * Test Cookie verification with format.
      */
-    @Test(timeout=60000)
+    @Test
     public void testVerifyCookieWithFormat() throws Exception {
         ClientConfiguration adminConf = new ClientConfiguration()
             .setZkServers(zkUtil.getZooKeeperConnectString());
@@ -459,7 +459,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * Test that if a bookie is started with directories with
      * version 2 data, that it will fail to start (it needs upgrade)
      */
-    @Test(timeout=60000)
+    @Test
     public void testV2data() throws Exception {
         File journalDir = newV2JournalDirectory();
         tmpDirs.add(journalDir);
@@ -484,7 +484,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * Test that if a bookie is started with directories with
      * version 1 data, that it will fail to start (it needs upgrade)
      */
-    @Test(timeout=60000)
+    @Test
     public void testV1data() throws Exception {
         File journalDir = newV1JournalDirectory();
         tmpDirs.add(journalDir);
@@ -509,7 +509,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * Test restart bookie with useHostNameAsBookieID=true, which had cookie generated
      * with ipaddress.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testRestartWithHostNameAsBookieID() throws Exception {
         String[] ledgerDirs = new String[] { newDirectory(), newDirectory(),
                 newDirectory() };
@@ -533,7 +533,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * Test restart bookie with useHostNameAsBookieID=false, which had cookie generated
      * with hostname.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testRestartWithIpAddressAsBookieID() throws Exception {
         String[] ledgerDirs = new String[] { newDirectory(), newDirectory(),
                 newDirectory() };
@@ -558,7 +558,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
      * Test old version bookie starts with the cookies generated by new version
      * (with useHostNameAsBookieID=true)
      */
-    @Test(timeout = 60000)
+    @Test
     public void testV2dataWithHostNameAsBookieID() throws Exception {
         File journalDir = newV2JournalDirectory();
         tmpDirs.add(journalDir);
@@ -584,7 +584,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
     /**
      * Test write cookie multiple times.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testWriteToZooKeeper() throws Exception {
         String[] ledgerDirs = new String[] { newDirectory(), newDirectory(), newDirectory() };
         String journalDir = newDirectory();
@@ -611,7 +611,7 @@ public class CookieTest extends BookKeeperClusterTestCase {
     /**
      * Test delete cookie.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testDeleteFromZooKeeper() throws Exception {
         String[] ledgerDirs = new String[] { newDirectory(), newDirectory(), newDirectory() };
         String journalDir = newDirectory();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CreateNewLogTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CreateNewLogTest.java
index 0f8dc86..8e562c2 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CreateNewLogTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CreateNewLogTest.java
@@ -76,7 +76,7 @@ public class CreateNewLogTest {
      * 
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testCreateNewLog() throws Exception {
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration();
                      
@@ -101,7 +101,7 @@ public class CreateNewLogTest {
         Assert.assertTrue("Wrong log id", el.getCurrentLogId() > 1);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testCreateNewLogWithNoWritableLedgerDirs() throws Exception {
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration();
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java
index a8c0596..95a5ed3 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java
@@ -63,7 +63,7 @@ public class EntryLogTest {
         tempDirs.clear();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testCorruptEntryLog() throws Exception {
         File tmpDir = createTempDir("bkTest", ".dir");
         File curDir = Bookie.getCurrentDirectory(tmpDir);
@@ -104,7 +104,7 @@ public class EntryLogTest {
         return bb;
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testMissingLogId() throws Exception {
         File tmpDir = createTempDir("entryLogTest", ".dir");
         File curDir = Bookie.getCurrentDirectory(tmpDir);
@@ -165,7 +165,7 @@ public class EntryLogTest {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     /** Test that EntryLogger Should fail with FNFE, if entry logger directories does not exist*/
     public void testEntryLoggerShouldThrowFNFEIfDirectoriesDoesNotExist()
             throws Exception {
@@ -190,7 +190,7 @@ public class EntryLogTest {
     /**
      * Test to verify the DiskFull during addEntry
      */
-    @Test(timeout=60000)
+    @Test
     public void testAddEntryFailureOnDiskFull() throws Exception {
         File ledgerDir1 = createTempDir("bkTest", ".dir");
         File ledgerDir2 = createTempDir("bkTest", ".dir");
@@ -221,7 +221,7 @@ public class EntryLogTest {
     /**
      * Explicitely try to recover using the ledgers map index at the end of the entry log
      */
-    @Test(timeout=60000)
+    @Test
     public void testRecoverFromLedgersMap() throws Exception {
         File tmpDir = createTempDir("bkTest", ".dir");
         File curDir = Bookie.getCurrentDirectory(tmpDir);
@@ -255,7 +255,7 @@ public class EntryLogTest {
     /**
      * Explicitely try to recover using the ledgers map index at the end of the entry log
      */
-    @Test(timeout = 60000)
+    @Test
     public void testRecoverFromLedgersMapOnV0EntryLog() throws Exception {
         File tmpDir = createTempDir("bkTest", ".dir");
         File curDir = Bookie.getCurrentDirectory(tmpDir);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/IndexCorruptionTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/IndexCorruptionTest.java
index 4f2d58f..614b982 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/IndexCorruptionTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/IndexCorruptionTest.java
@@ -52,7 +52,7 @@ public class IndexCorruptionTest extends BookKeeperClusterTestCase {
         baseConf.setPageSize(pageSize);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testNoSuchLedger() throws Exception {
         LOG.debug("Testing NoSuchLedger");
 
@@ -93,7 +93,7 @@ public class IndexCorruptionTest extends BookKeeperClusterTestCase {
         assertEquals(entryId, numMsgs);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testEmptyIndexPage() throws Exception {
         LOG.debug("Testing EmptyIndexPage");
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/IndexPersistenceMgrTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/IndexPersistenceMgrTest.java
index a3cce93..d3ef23c 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/IndexPersistenceMgrTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/IndexPersistenceMgrTest.java
@@ -96,12 +96,12 @@ public class IndexPersistenceMgrTest {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEvictFileInfoWhenUnderlyingFileExists() throws Exception {
         evictFileInfoTest(true);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEvictFileInfoWhenUnderlyingFileDoesntExist() throws Exception {
         evictFileInfoTest(false);
     }
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java
index 8f4aacd..2a7e5c3 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java
@@ -136,7 +136,7 @@ public class LedgerCacheTest {
         flushThread.start();
     }
 
-    @Test(timeout=30000)
+    @Test
     public void testAddEntryException() throws IOException {
         // set page limitation
         conf.setPageLimit(10);
@@ -157,7 +157,7 @@ public class LedgerCacheTest {
         }
     }
 
-    @Test(timeout=30000)
+    @Test
     public void testLedgerEviction() throws Exception {
         int numEntries = 10;
         // limit open files & pages
@@ -180,7 +180,7 @@ public class LedgerCacheTest {
         }
     }
 
-    @Test(timeout=30000)
+    @Test
     public void testDeleteLedger() throws Exception {
         int numEntries = 10;
         // limit open files & pages
@@ -215,7 +215,7 @@ public class LedgerCacheTest {
         }
     }
 
-    @Test(timeout=30000)
+    @Test
     public void testPageEviction() throws Exception {
         int numLedgers = 10;
         byte[] masterKey = "blah".getBytes();
@@ -266,7 +266,7 @@ public class LedgerCacheTest {
     /**
      * Test Ledger Cache flush failure
      */
-    @Test(timeout=30000)
+    @Test
     public void testLedgerCacheFlushFailureOnDiskFull() throws Exception {
         File ledgerDir1 = createTempDir("bkTest", ".dir");
         File ledgerDir2 = createTempDir("bkTest", ".dir");
@@ -313,7 +313,7 @@ public class LedgerCacheTest {
      * entries in the entrylogger have been persisted to disk.
      * {@link https://issues.apache.org/jira/browse/BOOKKEEPER-447}
      */
-    @Test(timeout=30000)
+    @Test
     public void testIndexPageEvictionWriteOrder() throws Exception {
         final int numLedgers = 10;
         File journalDir = createTempDir("bookie", "journal");
@@ -370,7 +370,7 @@ public class LedgerCacheTest {
      *
      * @throws IOException
      */
-    @Test(timeout=30000)
+    @Test
     public void testSyncThreadNPE() throws IOException {
         newLedgerCache();
         try {
@@ -386,7 +386,7 @@ public class LedgerCacheTest {
      * the wrong time.
      * {@link https://issues.apache.org/jira/browse/BOOKKEEPER-604}
      */
-    @Test(timeout=60000)
+    @Test
     public void testFlushDeleteRace() throws Exception {
         newLedgerCache();
         final AtomicInteger rc = new AtomicInteger(0);
@@ -495,7 +495,7 @@ public class LedgerCacheTest {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEntryMemTableFlushFailure() throws Exception {
         File tmpDir = createTempDir("bkTest", ".dir");
         File curDir = Bookie.getCurrentDirectory(tmpDir);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerStorageTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerStorageTest.java
index d81e4d0..49fd563 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerStorageTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerStorageTest.java
@@ -31,7 +31,7 @@ public class LedgerStorageTest extends BookKeeperClusterTestCase {
         super(1);
     }
 
-    @Test(timeout = 20000)
+    @Test
     public void testLedgerDeleteNotification() throws Exception {
         LedgerStorage ledgerStorage = bs.get(0).getBookie().ledgerStorage;
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestGcOverreplicatedLedger.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestGcOverreplicatedLedger.java
index 1b58c2b..d0fd0ad 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestGcOverreplicatedLedger.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestGcOverreplicatedLedger.java
@@ -76,7 +76,7 @@ public class TestGcOverreplicatedLedger extends LedgerManagerTestCase {
         return Arrays.asList(new Object[][] { { FlatLedgerManagerFactory.class } });
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testGcOverreplicatedLedger() throws Exception {
         LedgerHandle lh = bkc.createLedger(2, 2, DigestType.MAC, "".getBytes());
         activeLedgers.put(lh.getId(), true);
@@ -123,7 +123,7 @@ public class TestGcOverreplicatedLedger extends LedgerManagerTestCase {
         Assert.assertFalse(activeLedgers.containsKey(lh.getId()));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNoGcOfLedger() throws Exception {
         LedgerHandle lh = bkc.createLedger(2, 2, DigestType.MAC, "".getBytes());
         activeLedgers.put(lh.getId(), true);
@@ -174,7 +174,7 @@ public class TestGcOverreplicatedLedger extends LedgerManagerTestCase {
         Assert.assertTrue(activeLedgers.containsKey(lh.getId()));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNoGcIfLedgerBeingReplicated() throws Exception {
         LedgerHandle lh = bkc.createLedger(2, 2, DigestType.MAC, "".getBytes());
         activeLedgers.put(lh.getId(), true);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestLedgerDirsManager.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestLedgerDirsManager.java
index 09869a1..d47ecbb 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestLedgerDirsManager.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestLedgerDirsManager.java
@@ -95,7 +95,7 @@ public class TestLedgerDirsManager {
         tempDirs.clear();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testGetWritableDir() throws Exception {
         try {
             List<File> writeDirs = dirsManager.getWritableLedgerDirs();
@@ -105,7 +105,7 @@ public class TestLedgerDirsManager {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testPickWritableDirExclusive() throws Exception {
         try {
             dirsManager.pickRandomWritableDir(curDir);
@@ -116,7 +116,7 @@ public class TestLedgerDirsManager {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testNoWritableDir() throws Exception {
         try {
             dirsManager.addToFilledDirs(curDir);
@@ -129,7 +129,7 @@ public class TestLedgerDirsManager {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testGetWritableDirForLog() throws Exception {
         List<File> writeDirs;
         try {
@@ -148,7 +148,7 @@ public class TestLedgerDirsManager {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testLedgerDirsMonitorDuringTransition() throws Exception {
 
         MockLedgerDirsListener mockLedgerDirsListener = new MockLedgerDirsListener();
@@ -168,7 +168,7 @@ public class TestLedgerDirsManager {
         assertFalse(mockLedgerDirsListener.readOnly);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerDirsMonitorHandlingLowWaterMark() throws Exception {
 
         ledgerMonitor.shutdown();
@@ -226,7 +226,7 @@ public class TestLedgerDirsManager {
         assertFalse(mockLedgerDirsListener.readOnly);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerDirsMonitorHandlingWithMultipleLedgerDirectories() throws Exception {
         ledgerMonitor.shutdown();
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestSyncThread.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestSyncThread.java
index 0febdc7..0d8f8a4 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestSyncThread.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestSyncThread.java
@@ -73,7 +73,7 @@ public class TestSyncThread {
      * the sync thread will not shutdown until it
      * has finished.
      */
-    @Test(timeout=60000)
+    @Test
     public void testSyncThreadLongShutdown() throws Exception {
         int flushInterval = 100;
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration();
@@ -149,7 +149,7 @@ public class TestSyncThread {
      * i.e. when we suspend the syncthread, nothing
      * will be synced.
      */
-    @Test(timeout=60000)
+    @Test
     public void testSyncThreadSuspension() throws Exception {
         int flushInterval = 100;
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration();
@@ -194,7 +194,7 @@ public class TestSyncThread {
      * runtime exception, the bookie will be told
      * to shutdown.
      */
-    @Test(timeout=60000)
+    @Test
     public void testSyncThreadShutdownOnError() throws Exception {
         int flushInterval = 100;
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration();
@@ -226,7 +226,7 @@ public class TestSyncThread {
      * a disk full exception, the owner of the sync
      * thread will be notified.
      */
-    @Test(timeout=60000)
+    @Test
     public void testSyncThreadDisksFull() throws Exception {
         int flushInterval = 100;
         ServerConfiguration conf = TestBKConfiguration.newServerConfiguration();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/UpgradeTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/UpgradeTest.java
index f47e745..fba9594 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/UpgradeTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/UpgradeTest.java
@@ -183,7 +183,7 @@ public class UpgradeTest extends BookKeeperClusterTestCase {
         b = null;
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testUpgradeV1toCurrent() throws Exception {
         File journalDir = newV1JournalDirectory();
         tmpDirs.add(journalDir);
@@ -192,7 +192,7 @@ public class UpgradeTest extends BookKeeperClusterTestCase {
         testUpgradeProceedure(zkUtil.getZooKeeperConnectString(), journalDir.getPath(), ledgerDir.getPath());
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testUpgradeV2toCurrent() throws Exception {
         File journalDir = newV2JournalDirectory();
         tmpDirs.add(journalDir);
@@ -201,7 +201,7 @@ public class UpgradeTest extends BookKeeperClusterTestCase {
         testUpgradeProceedure(zkUtil.getZooKeeperConnectString(), journalDir.getPath(), ledgerDir.getPath());
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testUpgradeCurrent() throws Exception {
         File journalDir = newV2JournalDirectory();
         tmpDirs.add(journalDir);
@@ -221,7 +221,7 @@ public class UpgradeTest extends BookKeeperClusterTestCase {
         b.shutdown();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testCommandLine() throws Exception {
         PrintStream origerr = System.err;
         PrintStream origout = System.out;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperAdminTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperAdminTest.java
index b197353..68956d8 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperAdminTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperAdminTest.java
@@ -47,13 +47,13 @@ public class BookKeeperAdminTest extends BookKeeperClusterTestCase {
     private final int lostBookieRecoveryDelayInitValue = 1800;
 
     public BookKeeperAdminTest() {
-        super(numOfBookies);
+        super(numOfBookies, 480);
         baseConf.setAutoRecoveryDaemonEnabled(true);
         baseConf.setLostBookieRecoveryDelay(lostBookieRecoveryDelayInitValue);
         baseConf.setOpenLedgerRereplicationGracePeriod(String.valueOf(30000));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLostBookieRecoveryDelayValue() throws Exception {
         BookKeeperAdmin bkAdmin = new BookKeeperAdmin(zkUtil.getZooKeeperConnectString());
         assertEquals("LostBookieRecoveryDelay", lostBookieRecoveryDelayInitValue, bkAdmin.getLostBookieRecoveryDelay());
@@ -67,7 +67,7 @@ public class BookKeeperAdminTest extends BookKeeperClusterTestCase {
         bkAdmin.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testTriggerAudit() throws Exception {
         ZkLedgerUnderreplicationManager urLedgerMgr = new ZkLedgerUnderreplicationManager(baseClientConf, zkc);
         BookKeeperAdmin bkAdmin = new BookKeeperAdmin(zkUtil.getZooKeeperConnectString());
@@ -103,7 +103,7 @@ public class BookKeeperAdminTest extends BookKeeperClusterTestCase {
         bkAdmin.close();
     }
 
-    @Test(timeout = 480000)
+    @Test
     public void testDecommissionBookie() throws Exception {
         ZkLedgerUnderreplicationManager urLedgerMgr = new ZkLedgerUnderreplicationManager(baseClientConf, zkc);
         BookKeeperAdmin bkAdmin = new BookKeeperAdmin(zkUtil.getZooKeeperConnectString());
@@ -168,7 +168,7 @@ public class BookKeeperAdminTest extends BookKeeperClusterTestCase {
         bkAdmin.close();
     }
 
-    @Test(timeout = 240000)
+    @Test
     public void testDecommissionForLedgersWithMultipleSegmentsAndNotWriteClosed() throws Exception {
         ZkLedgerUnderreplicationManager urLedgerMgr = new ZkLedgerUnderreplicationManager(baseClientConf, zkc);
         BookKeeperAdmin bkAdmin = new BookKeeperAdmin(zkUtil.getZooKeeperConnectString());
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperClientZKSessionExpiry.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperClientZKSessionExpiry.java
index 978daff..d639d95 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperClientZKSessionExpiry.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperClientZKSessionExpiry.java
@@ -35,7 +35,7 @@ public class BookKeeperClientZKSessionExpiry extends BookKeeperClusterTestCase {
         super(4);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testSessionLossWhileWriting() throws Exception {
 
         Thread expiryThread = new Thread() {
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperCloseTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperCloseTest.java
index 5d5cc16..183af5b 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperCloseTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperCloseTest.java
@@ -121,7 +121,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that createledger using bookkeeper client which is closed should
      * throw ClientClosedException
      */
-    @Test(timeout = 60000)
+    @Test
     public void testCreateLedger() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         LOG.info("Closing bookkeeper client");
@@ -158,7 +158,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that opening a ledger using bookkeeper client which is closed should
      * throw ClientClosedException
      */
-    @Test(timeout = 60000)
+    @Test
     public void testFenceLedger() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         LOG.info("Create ledger and add entries to it");
@@ -205,7 +205,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that deleting a ledger using bookkeeper client which is closed
      * should throw ClientClosedException
      */
-    @Test(timeout = 60000)
+    @Test
     public void testDeleteLedger() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         LOG.info("Create ledger and add entries to it");
@@ -241,7 +241,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that adding entry to a ledger using bookkeeper client which is
      * closed should throw ClientClosedException
      */
-    @Test(timeout = 60000)
+    @Test
     public void testAddLedgerEntry() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         LOG.info("Create ledger and add entries to it");
@@ -281,7 +281,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that closing a ledger using bookkeeper client which is closed should
      * throw ClientClosedException
      */
-    @Test(timeout = 60000)
+    @Test
     public void testCloseLedger() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         LOG.info("Create ledger and add entries to it");
@@ -319,7 +319,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that reading entry from a ledger using bookkeeper client which is
      * closed should throw ClientClosedException
      */
-    @Test(timeout = 60000)
+    @Test
     public void testReadLedgerEntry() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         LOG.info("Create ledger and add entries to it");
@@ -362,7 +362,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that readlastconfirmed entry from a ledger using bookkeeper client
      * which is closed should throw ClientClosedException
      */
-    @Test(timeout = 60000)
+    @Test
     public void testReadLastConfirmed() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         LOG.info("Create ledger and add entries to it");
@@ -408,7 +408,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that checking a ledger using a closed BK client will
      * throw a ClientClosedException
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCheck() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         LOG.info("Create ledger and add entries to it");
@@ -465,7 +465,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that BookKeeperAdmin operationg using a closed BK client will
      * throw a ClientClosedException
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookKeeperAdmin() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         try (BookKeeperAdmin bkadmin = new BookKeeperAdmin(bk)) {
@@ -530,7 +530,7 @@ public class BookKeeperCloseTest extends BookKeeperClusterTestCase {
      * Test that the bookkeeper client doesn't leave any threads hanging around.
      * See {@link https://issues.apache.org/jira/browse/BOOKKEEPER-804}
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookKeeperCloseThreads() throws Exception {
         ThreadGroup group = new ThreadGroup("test-group");
         final SettableFuture<Void> future = SettableFuture.<Void>create();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperDiskSpaceWeightedLedgerPlacementTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperDiskSpaceWeightedLedgerPlacementTest.java
index 3bc612e..5dd6b26 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperDiskSpaceWeightedLedgerPlacementTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperDiskSpaceWeightedLedgerPlacementTest.java
@@ -136,7 +136,7 @@ public class BookKeeperDiskSpaceWeightedLedgerPlacementTest extends BookKeeperCl
     /**
      * Test to show that weight based selection honors the disk weight of bookies
      */
-    @Test(timeout=60000)
+    @Test
     public void testDiskSpaceWeightedBookieSelection() throws Exception {
         long freeDiskSpace=1000000L;
         int multiple=3;
@@ -182,7 +182,7 @@ public class BookKeeperDiskSpaceWeightedLedgerPlacementTest extends BookKeeperCl
      * Test to show that weight based selection honors the disk weight of bookies and also adapts
      * when the bookies's weight changes.
      */
-    @Test(timeout=60000)
+    @Test
     public void testDiskSpaceWeightedBookieSelectionWithChangingWeights() throws Exception {
         long freeDiskSpace=1000000L;
         int multiple=3;
@@ -264,7 +264,7 @@ public class BookKeeperDiskSpaceWeightedLedgerPlacementTest extends BookKeeperCl
      * Test to show that weight based selection honors the disk weight of bookies and also adapts
      * when bookies go away permanently.
      */
-    @Test(timeout=60000)
+    @Test
     public void testDiskSpaceWeightedBookieSelectionWithBookiesDying() throws Exception {
         long freeDiskSpace=1000000L;
         int multiple=3;
@@ -339,7 +339,7 @@ public class BookKeeperDiskSpaceWeightedLedgerPlacementTest extends BookKeeperCl
      * Test to show that weight based selection honors the disk weight of bookies and also adapts
      * when bookies are added.
      */
-    @Test(timeout=60000)
+    @Test
     public void testDiskSpaceWeightedBookieSelectionWithBookiesBeingAdded() throws Exception {
         long freeDiskSpace=1000000L;
         int multiple=3;
@@ -407,7 +407,7 @@ public class BookKeeperDiskSpaceWeightedLedgerPlacementTest extends BookKeeperCl
      * Tests that the bookie selection is based on the amount of free disk space a bookie has. Also make sure that
      * the periodic bookieInfo read is working and causes the new weights to be taken into account.
      */
-    @Test(timeout=60000)
+    @Test
     public void testDiskSpaceWeightedBookieSelectionWithPeriodicBookieInfoUpdate() throws Exception {
         long freeDiskSpace=1000000L;
         int multiple=3;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperTest.java
index 7656b9b..e9e7e92 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperTest.java
@@ -97,7 +97,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
      * Test that bookkeeper is not able to open ledgers if
      * it provides the wrong password or wrong digest
      */
-    @Test(timeout=60000)
+    @Test
     public void testBookkeeperPassword() throws Exception {
         ClientConfiguration conf = new ClientConfiguration()
             .setZkServers(zkUtil.getZooKeeperConnectString());
@@ -157,7 +157,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
      * a callback error and not an InterruptedException.
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testAsyncReadWithError() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, DigestType.CRC32, "testPasswd".getBytes());
         bkc.close();
@@ -182,7 +182,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
      * Test that bookkeeper will close cleanly if close is issued
      * while another operation is in progress.
      */
-    @Test(timeout=60000)
+    @Test
     public void testCloseDuringOp() throws Exception {
         ClientConfiguration conf = new ClientConfiguration()
             .setZkServers(zkUtil.getZooKeeperConnectString());
@@ -218,7 +218,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testIsClosed() throws Exception {
         ClientConfiguration conf = new ClientConfiguration()
         .setZkServers(zkUtil.getZooKeeperConnectString());
@@ -238,7 +238,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
         bkc.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadFailureCallback() throws Exception {
         ClientConfiguration conf = new ClientConfiguration().setZkServers(zkUtil.getZooKeeperConnectString());
 
@@ -284,7 +284,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
         startBKCluster();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testAutoCloseableBookKeeper() throws Exception {
         ClientConfiguration conf = new ClientConfiguration()
                 .setZkServers(zkUtil.getZooKeeperConnectString());
@@ -303,7 +303,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
         Assert.assertTrue("BookKeeper should be closed!", _bkc.closed);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadHandleWithNoExplicitLAC() throws Exception {
         ClientConfiguration confWithNoExplicitLAC = new ClientConfiguration()
                 .setZkServers(zkUtil.getZooKeeperConnectString());
@@ -363,7 +363,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
         bkcWithNoExplicitLAC.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadHandleWithExplicitLAC() throws Exception {
         ClientConfiguration confWithExplicitLAC = new ClientConfiguration()
                 .setZkServers(zkUtil.getZooKeeperConnectString());
@@ -427,7 +427,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
         bkcWithExplicitLAC.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadAfterLastAddConfirmed() throws Exception {
 
         ClientConfiguration clientConfiguration = new ClientConfiguration()
@@ -644,7 +644,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadWriteWithV2WireProtocol() throws Exception {
         ClientConfiguration conf = new ClientConfiguration()
                 .setZkServers(zkUtil.getZooKeeperConnectString())
@@ -690,7 +690,7 @@ public class BookKeeperTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadEntryReleaseByteBufs() throws Exception {
         ClientConfiguration confWriter = new ClientConfiguration()
             .setZkServers(zkUtil.getZooKeeperConnectString());
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java
index 6718860..cf4fb56 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java
@@ -241,12 +241,12 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
      *
      * {@link https://issues.apache.org/jira/browse/BOOKKEEPER-667}
      */
-    @Test(timeout = 60000)
+    @Test
     public void testMetadataConflictWithRecovery() throws Exception {
         metadataConflictWithRecovery(bkc);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testMetadataConflictWhenDelayingEnsembleChange() throws Exception {
         ClientConfiguration newConf = new ClientConfiguration(baseClientConf);
         newConf.setZkServers(zkUtil.getZooKeeperConnectString());
@@ -298,7 +298,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testAsyncBookieRecoveryToSpecificBookie() throws Exception {
         // Create the ledgers
         int numLedgers = 3;
@@ -354,7 +354,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testAsyncBookieRecoveryToRandomBookies() throws Exception {
         // Create the ledgers
         int numLedgers = 3;
@@ -410,7 +410,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testSyncBookieRecoveryToSpecificBookie() throws Exception {
         // Create the ledgers
         int numLedgers = 3;
@@ -456,7 +456,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testSyncBookieRecoveryToRandomBookies() throws Exception {
         // Create the ledgers
         int numLedgers = 3;
@@ -625,7 +625,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
     /**
      * Test recoverying the closed ledgers when the failed bookie server is in the last ensemble
      */
-    @Test(timeout=60000)
+    @Test
     public void testBookieRecoveryOnClosedLedgers() throws Exception {
         // Create the ledgers
         int numLedgers = 3;
@@ -657,7 +657,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testBookieRecoveryOnOpenedLedgers() throws Exception {
         // Create the ledgers
         int numLedgers = 3;
@@ -694,7 +694,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testBookieRecoveryOnInRecoveryLedger() throws Exception {
         int numMsgs = 10;
         // Create the ledgers
@@ -756,7 +756,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
 
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testAsyncBookieRecoveryToRandomBookiesNotEnoughBookies() throws Exception {
         // Create the ledgers
         int numLedgers = 3;
@@ -787,7 +787,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testSyncBookieRecoveryToRandomBookiesCheckForDupes() throws Exception {
         Random r = new Random();
 
@@ -831,7 +831,7 @@ public class BookieRecoveryTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void recoverWithoutPasswordInConf() throws Exception {
         byte[] passwdCorrect = "AAAAAA".getBytes();
         byte[] passwdBad = "BBBBBB".getBytes();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieWriteLedgerTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieWriteLedgerTest.java
index f7bcffd..b44d9d2 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieWriteLedgerTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieWriteLedgerTest.java
@@ -87,7 +87,7 @@ public class BookieWriteLedgerTest extends
     }
 
     public BookieWriteLedgerTest() {
-        super(5);
+        super(5, 180);
         this.digestType = DigestType.CRC32;
         String ledgerManagerFactory = "org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory";
         // set ledger manager
@@ -99,7 +99,7 @@ public class BookieWriteLedgerTest extends
      * Verify write when few bookie failures in last ensemble and forcing
      * ensemble reformation
      */
-    @Test(timeout=60000)
+    @Test
     public void testWithMultipleBookieFailuresInLastEnsemble() throws Exception {
         // Create a ledger
         lh = bkc.createLedger(5, 4, digestType, ledgerPassword);
@@ -146,7 +146,7 @@ public class BookieWriteLedgerTest extends
      *
      * @throws Exception
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreateAdv() throws Exception {
         // Create a ledger
         lh = bkc.createLedgerAdv(5, 3, 2, digestType, ledgerPassword);
@@ -186,7 +186,7 @@ public class BookieWriteLedgerTest extends
      *
      * @throws Exception
      */
-    @Test(timeout = 60000)
+    @Test
     public void testNoAddEntryLedgerCreateAdv() throws Exception {
 
         ByteBuffer entry = ByteBuffer.allocate(4);
@@ -258,7 +258,7 @@ public class BookieWriteLedgerTest extends
      *
      * @throws Exception
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreateAdvWithLedgerId() throws Exception {
         // Create a ledger
         long ledgerId = 0xABCDEF;
@@ -301,7 +301,7 @@ public class BookieWriteLedgerTest extends
      *
      * @throws Exception
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreateWithCustomMetadata() throws Exception {
         // Create a ledger
         long ledgerId;
@@ -347,7 +347,7 @@ public class BookieWriteLedgerTest extends
      *
      * @throws Exception
      */
-    @Test(timeout = 180000)
+    @Test
     public void testLedgerCreateAdvWithLedgerIdInLoop() throws Exception {
         long ledgerId;
         int ledgerCount = 40;
@@ -393,7 +393,7 @@ public class BookieWriteLedgerTest extends
     /**
      * Verify asynchronous writing when few bookie failures in last ensemble.
      */
-    @Test(timeout=60000)
+    @Test
     public void testAsyncWritesWithMultipleFailuresInLastEnsemble()
             throws Exception {
         // Create ledgers
@@ -466,7 +466,7 @@ public class BookieWriteLedgerTest extends
     /**
      * Verify Advanced asynchronous writing with entryIds in reverse order
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreateAdvWithAsyncWritesWithBookieFailures() throws Exception {
         // Create ledgers
         lh = bkc.createLedgerAdv(5, 3, 2, digestType, ledgerPassword);
@@ -520,7 +520,7 @@ public class BookieWriteLedgerTest extends
     /**
      * Verify Advanced asynchronous writing with entryIds in pseudo random order with bookie failures between writes
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreateAdvWithRandomAsyncWritesWithBookieFailuresBetweenWrites() throws Exception {
         // Create ledgers
         lh = bkc.createLedgerAdv(5, 3, 2, digestType, ledgerPassword);
@@ -588,7 +588,7 @@ public class BookieWriteLedgerTest extends
     /**
      * Verify Advanced asynchronous writing with entryIds in pseudo random order
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreateAdvWithRandomAsyncWritesWithBookieFailures() throws Exception {
         // Create ledgers
         lh = bkc.createLedgerAdv(5, 3, 2, digestType, ledgerPassword);
@@ -657,7 +657,7 @@ public class BookieWriteLedgerTest extends
      *
      * @throws Exception
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreateAdvWithSkipEntries() throws Exception {
         long ledgerId;
         SyncObj syncObj1 = new SyncObj();
@@ -703,7 +703,7 @@ public class BookieWriteLedgerTest extends
      *
      * @throws Exception
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreateAdvSyncAddDuplicateEntryIds() throws Exception {
         // Create a ledger
         lh = bkc.createLedgerAdv(5, 3, 2, digestType, ledgerPassword);
@@ -740,7 +740,7 @@ public class BookieWriteLedgerTest extends
      *
      * @throws Exception
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreateAdvSyncAsyncAddDuplicateEntryIds() throws Exception {
         long ledgerId;
         SyncObj syncObj1 = new SyncObj();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieWriteLedgersWithDifferentDigestsTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieWriteLedgersWithDifferentDigestsTest.java
index c987cf8..753b3c7 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieWriteLedgersWithDifferentDigestsTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieWriteLedgersWithDifferentDigestsTest.java
@@ -96,7 +96,7 @@ public class BookieWriteLedgersWithDifferentDigestsTest extends
         baseClientConf.setLedgerManagerFactoryClassName(ledgerManagerFactory);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgersWithDifferentDigestTypesNoAutodetection() throws Exception {
     	bkc.conf.setEnableDigestTypeAutodetection(false);
         // Create ledgers
@@ -129,7 +129,7 @@ public class BookieWriteLedgersWithDifferentDigestsTest extends
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgersWithDifferentDigestTypesWithAutodetection() throws Exception {
     	bkc.conf.setEnableDigestTypeAutodetection(true);
         // Create ledgers
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/GenericEnsemblePlacementPolicyTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/GenericEnsemblePlacementPolicyTest.java
index cc591aa..683b16c 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/GenericEnsemblePlacementPolicyTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/GenericEnsemblePlacementPolicyTest.java
@@ -78,7 +78,7 @@ public class GenericEnsemblePlacementPolicyTest extends BookKeeperClusterTestCas
         customMetadataOnReplaceBookieStack.clear();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsemble() throws Exception {
         numBookies = 1;
         startBKCluster();
@@ -95,7 +95,7 @@ public class GenericEnsemblePlacementPolicyTest extends BookKeeperClusterTestCas
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithNotEnoughtBookies() throws Exception {
         numBookies = 0;
         try {
@@ -115,7 +115,7 @@ public class GenericEnsemblePlacementPolicyTest extends BookKeeperClusterTestCas
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookie() throws Exception {
         numBookies = 3;
         startBKCluster();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java
index 161826d..e61100b 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java
@@ -67,7 +67,7 @@ public class LedgerCloseTest extends BookKeeperClusterTestCase {
         baseConf.setGcWaitTime(999999);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCloseWithConsistentLength() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         conf.setZkServers(zkUtil.getZooKeeperConnectString()).setReadTimeout(1);
@@ -95,14 +95,14 @@ public class LedgerCloseTest extends BookKeeperClusterTestCase {
         assertEquals(LedgerHandle.INVALID_ENTRY_ID, newLh.getLastAddConfirmed());
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCloseDuringUnrecoverableErrors() throws Exception {
         int numEntries = 3;
         LedgerHandle lh = bkc.createLedger(3, 3, 3, digestType, "".getBytes());
         verifyMetadataConsistency(numEntries, lh);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCheckerShouldnotSelectInvalidLastFragments() throws Exception {
         int numEntries = 10;
         LedgerHandle lh = bkc.createLedger(3, 3, 3, digestType, "".getBytes());
@@ -233,7 +233,7 @@ public class LedgerCloseTest extends BookKeeperClusterTestCase {
         bs.add(startBookie(conf, dBookie));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testAllWritesAreCompletedOnClosedLedger() throws Exception {
         for (int i = 0; i < 100; i++) {
             LOG.info("Iteration {}", i);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerRecoveryTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerRecoveryTest.java
index 5674b5d..73c38b9 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerRecoveryTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerRecoveryTest.java
@@ -86,23 +86,23 @@ public class LedgerRecoveryTest extends BookKeeperClusterTestCase {
                    afterlh.getLength() == length);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testLedgerRecovery() throws Exception {
         testInternal(100);
 
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testEmptyLedgerRecoveryOne() throws Exception {
         testInternal(1);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testEmptyLedgerRecovery() throws Exception {
         testInternal(0);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testLedgerRecoveryWithWrongPassword() throws Exception {
         // Create a ledger
         byte[] ledgerPassword = "aaaa".getBytes();
@@ -126,7 +126,7 @@ public class LedgerRecoveryTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testLedgerRecoveryWithNotEnoughBookies() throws Exception {
         int numEntries = 3;
 
@@ -164,7 +164,7 @@ public class LedgerRecoveryTest extends BookKeeperClusterTestCase {
         assertEquals(numEntries - 1, afterlh.getLastAddConfirmed());
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testLedgerRecoveryWithSlowBookie() throws Exception {
         for (int i = 0; i < 3; i++) {
             LOG.info("TestLedgerRecoveryWithAckQuorum @ slow bookie {}", i);
@@ -236,7 +236,7 @@ public class LedgerRecoveryTest extends BookKeeperClusterTestCase {
      * 7. B2 goes down for maintenance.
      * 8. Ledger recovery starts (ledger is now unavailable)
      */
-    @Test(timeout=60000)
+    @Test
     public void testLedgerRecoveryWithRollingRestart() throws Exception {
         LedgerHandle lhbefore = bkc.createLedger(numBookies, 2, digestType, "".getBytes());
         for (int i = 0; i < (numBookies*3)+1; i++) {
@@ -317,7 +317,7 @@ public class LedgerRecoveryTest extends BookKeeperClusterTestCase {
      * 7. A new non-faulty bookie comes up
      * 8. Another client trying to recover the same ledger.
      */
-    @Test(timeout=60000)
+    @Test
     public void testBookieFailureDuringRecovery() throws Exception {
         LedgerHandle lhbefore = bkc.createLedger(numBookies, 2, digestType, "".getBytes());
         for (int i = 0; i < (numBookies*3)+1; i++) {
@@ -363,7 +363,7 @@ public class LedgerRecoveryTest extends BookKeeperClusterTestCase {
      * Verify that it doesn't break the recovery when changing ensemble in
      * recovery add.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testEnsembleChangeDuringRecovery() throws Exception {
         LedgerHandle lh = bkc.createLedger(numBookies, 2, 2, digestType, "".getBytes());
         int numEntries = (numBookies * 3) + 1;
@@ -422,12 +422,12 @@ public class LedgerRecoveryTest extends BookKeeperClusterTestCase {
         bs.add(startBookie(conf, rBookie));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBatchRecoverySize3() throws Exception {
         batchRecovery(3);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBatchRecoverySize13() throws Exception {
         batchRecovery(13);
     }
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ListLedgersTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ListLedgersTest.java
index 38f02ce..12d108a 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ListLedgersTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ListLedgersTest.java
@@ -32,7 +32,7 @@ public class ListLedgersTest extends BookKeeperClusterTestCase {
         this.digestType = DigestType.CRC32;
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testListLedgers()
     throws Exception {
         int numOfLedgers = 10;
@@ -59,7 +59,7 @@ public class ListLedgersTest extends BookKeeperClusterTestCase {
                 counter == numOfLedgers);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testEmptyList()
     throws Exception {
         ClientConfiguration conf = new ClientConfiguration()
@@ -72,7 +72,7 @@ public class ListLedgersTest extends BookKeeperClusterTestCase {
         Assert.assertFalse("There should be no ledger", iterable.iterator().hasNext());
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testRemoveNotSupported()
     throws Exception {
         int numOfLedgers = 1;
@@ -101,7 +101,7 @@ public class ListLedgersTest extends BookKeeperClusterTestCase {
 
     }
     
-    @Test(timeout = 60000)
+    @Test
     public void testCtimeRecorded()
             throws Exception {
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ParallelLedgerRecoveryTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ParallelLedgerRecoveryTest.java
index ba7e34f..1b6f2e7 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ParallelLedgerRecoveryTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ParallelLedgerRecoveryTest.java
@@ -160,62 +160,62 @@ public class ParallelLedgerRecoveryTest extends BookKeeperClusterTestCase {
         this.digestType = DigestType.CRC32;
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRecoverBeforeWriteMetadata1() throws Exception {
         rereadDuringRecovery(true, 1, false, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRecoverBeforeWriteMetadata2() throws Exception {
         rereadDuringRecovery(true, 3, false, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRecoverBeforeWriteMetadata3() throws Exception {
         rereadDuringRecovery(false, 1, false, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRecoverBeforeWriteMetadata4() throws Exception {
         rereadDuringRecovery(false, 3, false, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRereadDuringRecovery1() throws Exception {
         rereadDuringRecovery(true, 1, true, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRereadDuringRecovery2() throws Exception {
         rereadDuringRecovery(true, 3, true, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRereadDuringRecovery3() throws Exception {
         rereadDuringRecovery(false, 1, true, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRereadDuringRecovery4() throws Exception {
         rereadDuringRecovery(false, 3, true, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testConcurrentRecovery1() throws Exception {
         rereadDuringRecovery(true, 1, true, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testConcurrentRecovery2() throws Exception {
         rereadDuringRecovery(true, 3, true, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testConcurrentRecovery3() throws Exception {
         rereadDuringRecovery(false, 1, true, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testConcurrentRecovery4() throws Exception {
         rereadDuringRecovery(false, 3, true, false);
     }
@@ -342,7 +342,7 @@ public class ParallelLedgerRecoveryTest extends BookKeeperClusterTestCase {
         newBk.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRecoveryOnEntryGap() throws Exception {
         byte[] passwd = "recovery-on-entry-gap".getBytes(UTF_8);
         LedgerHandle lh = bkc.createLedger(1, 1, 1, DigestType.CRC32, passwd);
@@ -493,7 +493,7 @@ public class ParallelLedgerRecoveryTest extends BookKeeperClusterTestCase {
 
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRecoveryWhenClosingLedgerHandle() throws Exception {
         byte[] passwd = "recovery-when-closing-ledger-handle".getBytes(UTF_8);
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java
index 327b642..c4cb49a 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java
@@ -35,7 +35,7 @@ import org.slf4j.LoggerFactory;
 public class RoundRobinDistributionScheduleTest {
     private final static Logger LOG = LoggerFactory.getLogger(RoundRobinDistributionScheduleTest.class);
 
-    @Test(timeout=60000)
+    @Test
     public void testDistributionSchedule() throws Exception {
         RoundRobinDistributionSchedule schedule = new RoundRobinDistributionSchedule(3, 2, 5);
 
@@ -53,7 +53,7 @@ public class RoundRobinDistributionScheduleTest {
      * Test that coverage sets only respond as covered when it has
      * heard from enough bookies that no ack quorum can exist without these bookies.
      */
-    @Test(timeout=60000)
+    @Test
     public void testCoverageSets() {
         int errors = 0;
         for (int e = 6; e > 0; e--) {
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java
index d77d184..eed6fa2 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java
@@ -48,7 +48,7 @@ public class SlowBookieTest extends BookKeeperClusterTestCase {
         baseConf.setNumReadWorkerThreads(0);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testSlowBookie() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         conf.setZkServers(zkUtil.getZooKeeperConnectString()).setReadTimeout(360);
@@ -94,7 +94,7 @@ public class SlowBookieTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testBookieFailureWithSlowBookie() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         conf.setZkServers(zkUtil.getZooKeeperConnectString()).setReadTimeout(5);
@@ -148,7 +148,7 @@ public class SlowBookieTest extends BookKeeperClusterTestCase {
         assertEquals("There should be no missing fragments", 0, numFragments.get());
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testManyBookieFailureWithSlowBookies() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         conf.setZkServers(zkUtil.getZooKeeperConnectString()).setReadTimeout(5);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestAddEntryQuorumTimeout.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestAddEntryQuorumTimeout.java
index bfe7ce3..d43181f 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestAddEntryQuorumTimeout.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestAddEntryQuorumTimeout.java
@@ -72,7 +72,7 @@ public class TestAddEntryQuorumTimeout extends BookKeeperClusterTestCase impleme
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBasicTimeout() throws Exception {
         BookKeeperTestClient bkc = new BookKeeperTestClient(baseClientConf);
         LedgerHandle lh = bkc.createLedger(3, 3, 3, digestType, testPasswd);
@@ -96,7 +96,7 @@ public class TestAddEntryQuorumTimeout extends BookKeeperClusterTestCase impleme
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testTimeoutWithPendingOps() throws Exception {
         BookKeeperTestClient bkc = new BookKeeperTestClient(baseClientConf);
         LedgerHandle lh = bkc.createLedger(3, 3, 3, digestType, testPasswd);
@@ -121,7 +121,7 @@ public class TestAddEntryQuorumTimeout extends BookKeeperClusterTestCase impleme
         Assert.assertEquals(BKException.Code.AddEntryQuorumTimeoutException, syncObj3.rc);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerClosedAfterTimeout() throws Exception {
         BookKeeperTestClient bkc = new BookKeeperTestClient(baseClientConf);
         LedgerHandle lh = bkc.createLedger(3, 3, 3, digestType, testPasswd);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestBookieHealthCheck.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestBookieHealthCheck.java
index 33be97c..6761e56 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestBookieHealthCheck.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestBookieHealthCheck.java
@@ -42,7 +42,7 @@ public class TestBookieHealthCheck extends BookKeeperClusterTestCase {
         baseClientConf.setBookieQuarantineTime(5, TimeUnit.SECONDS);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBkQuarantine() throws Exception {
         LedgerHandle lh = bkc.createLedger(2, 2, 2, BookKeeper.DigestType.CRC32, new byte[] {});
 
@@ -90,7 +90,7 @@ public class TestBookieHealthCheck extends BookKeeperClusterTestCase {
         Assert.assertFalse(bkc.bookieWatcher.quarantinedBookies.asMap().containsKey(bookieToQuarantine));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNoQuarantineOnBkRestart() throws Exception {
         final LedgerHandle lh = bkc.createLedger(2, 2, 2, BookKeeper.DigestType.CRC32, new byte[] {});
         final int numEntries = 20;
@@ -121,7 +121,7 @@ public class TestBookieHealthCheck extends BookKeeperClusterTestCase {
         Assert.assertFalse(bkc.bookieWatcher.quarantinedBookies.asMap().containsKey(bookieToRestart));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNoQuarantineOnExpectedBkErrors() throws Exception {
         final LedgerHandle lh = bkc.createLedger(2, 2, 2, BookKeeper.DigestType.CRC32, new byte[] {});
         final int numEntries = 10;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestBookieWatcher.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestBookieWatcher.java
index f460a31..f153460 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestBookieWatcher.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestBookieWatcher.java
@@ -63,7 +63,7 @@ public class TestBookieWatcher extends BookKeeperClusterTestCase {
         newZk.close();
     }
 
-    @Test(timeout=10000)
+    @Test
     public void testBookieWatcherSurviveWhenSessionExpired() throws Exception {
         final int timeout = 2000;
         ZooKeeper zk = ZooKeeperClient.newBuilder()
@@ -77,7 +77,7 @@ public class TestBookieWatcher extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=10000)
+    @Test
     public void testBookieWatcherDieWhenSessionExpired() throws Exception {
         final int timeout = 2000;
         final CountDownLatch connectLatch = new CountDownLatch(1);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestDelayEnsembleChange.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestDelayEnsembleChange.java
index 8c8e60b..0e4d72d 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestDelayEnsembleChange.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestDelayEnsembleChange.java
@@ -122,7 +122,7 @@ public class TestDelayEnsembleChange extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNotChangeEnsembleIfNotBrokenAckQuorum() throws Exception {
         LedgerHandle lh = bkc.createLedger(5, 5, 3, digestType, testPasswd);
 
@@ -164,7 +164,7 @@ public class TestDelayEnsembleChange extends BookKeeperClusterTestCase {
         verifyEntries(lh, 2 * numEntries, 3 * numEntries, 5, 0);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testChangeEnsembleIfBrokenAckQuorum() throws Exception {
         startNewBookie();
         startNewBookie();
@@ -247,7 +247,7 @@ public class TestDelayEnsembleChange extends BookKeeperClusterTestCase {
         verifyEntries(lh, 4 * numEntries, 5 * numEntries, 5, 0);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEnsembleChangeWithNotEnoughBookies() throws Exception {
         startNewBookie();
 
@@ -298,7 +298,7 @@ public class TestDelayEnsembleChange extends BookKeeperClusterTestCase {
         verifyEntries(lh, 2 * numEntries, 3 * numEntries, 5, 0);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEnsembleChangeWithMoreBookieFailures() throws Exception {
         for (int i = 0; i < 5; i++) {
             startNewBookie();
@@ -353,7 +353,7 @@ public class TestDelayEnsembleChange extends BookKeeperClusterTestCase {
         verifyEntries(lh, 2 * numEntries, 3 * numEntries, 5, 0);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testChangeEnsembleIfBookieReadOnly() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, 2, digestType, testPasswd);
 
@@ -377,7 +377,7 @@ public class TestDelayEnsembleChange extends BookKeeperClusterTestCase {
 
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testChangeEnsembleSecondBookieReadOnly() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, 2, digestType, testPasswd);
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestDisableEnsembleChange.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestDisableEnsembleChange.java
index b45d434..2627016 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestDisableEnsembleChange.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestDisableEnsembleChange.java
@@ -53,12 +53,12 @@ public class TestDisableEnsembleChange extends BookKeeperClusterTestCase {
         super(4);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testDisableEnsembleChange() throws Exception {
         disableEnsembleChangeTest(true);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testDisableEnsembleChangeNotEnoughBookies() throws Exception {
         disableEnsembleChangeTest(false);
     }
@@ -165,7 +165,7 @@ public class TestDisableEnsembleChange extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=20000)
+    @Test
     public void testRetryFailureBookie() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         conf.setZkServers(zkUtil.getZooKeeperConnectString())
@@ -210,7 +210,7 @@ public class TestDisableEnsembleChange extends BookKeeperClusterTestCase {
         assertEquals(res.get(), BKException.Code.OK);
     }
 
-    @Test(timeout=20000)
+    @Test
     public void testRetrySlowBookie() throws Exception {
         final int readTimeout = 2;
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java
index 13f2f1d..ea6205f 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java
@@ -52,7 +52,7 @@ public class TestFencing extends BookKeeperClusterTestCase {
      * Basic fencing test. Create ledger, write to it,
      * open ledger, write again (should fail).
      */
-    @Test(timeout=60000)
+    @Test
     public void testBasicFencing() throws Exception {
         /*
          * Create ledger.
@@ -154,7 +154,7 @@ public class TestFencing extends BookKeeperClusterTestCase {
      * All opens should result in a ledger with an equals number of
      * entries.
      */
-    @Test(timeout=60000)
+    @Test
     public void testManyOpenParallel() throws Exception {
         /*
          * Create ledger.
@@ -203,7 +203,7 @@ public class TestFencing extends BookKeeperClusterTestCase {
      * Test that opening a ledger in norecovery mode
      * doesn't fence off a ledger
      */
-    @Test(timeout=60000)
+    @Test
     public void testNoRecoveryOpen() throws Exception {
         /*
          * Create ledger.
@@ -249,7 +249,7 @@ public class TestFencing extends BookKeeperClusterTestCase {
      * kill a bookie in the ensemble. Recover.
      * Fence the ledger. Kill another bookie. Recover.
      */
-    @Test(timeout=60000)
+    @Test
     public void testFencingInteractionWithBookieRecovery() throws Exception {
         System.setProperty("digestType", digestType.toString());
         System.setProperty("passwd", "testPasswd");
@@ -299,7 +299,7 @@ public class TestFencing extends BookKeeperClusterTestCase {
      * Fence the ledger. Kill a bookie. Recover.
      * Ensure that recover doesn't reallow adding
      */
-    @Test(timeout=60000)
+    @Test
     public void testFencingInteractionWithBookieRecovery2() throws Exception {
         System.setProperty("digestType", digestType.toString());
         System.setProperty("passwd", "testPasswd");
@@ -338,7 +338,7 @@ public class TestFencing extends BookKeeperClusterTestCase {
     /**
      * Test that fencing doesn't work with a bad password
      */
-    @Test(timeout=60000)
+    @Test
     public void testFencingBadPassword() throws Exception {
         /*
          * Create ledger.
@@ -365,7 +365,7 @@ public class TestFencing extends BookKeeperClusterTestCase {
         writelh.addEntry(tmp.getBytes());
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testFencingAndRestartBookies() throws Exception {
         LedgerHandle writelh = null;
         writelh = bkc.createLedger(digestType, "password".getBytes());
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestGetBookieInfoTimeout.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestGetBookieInfoTimeout.java
index fbe50a1..37e2840 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestGetBookieInfoTimeout.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestGetBookieInfoTimeout.java
@@ -76,7 +76,7 @@ public class TestGetBookieInfoTimeout extends BookKeeperClusterTestCase {
         executor.shutdown();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testGetBookieInfoTimeout() throws Exception {
 
         // connect to the bookies and create a ledger
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerChecker.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerChecker.java
index 0316b37..83ec593 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerChecker.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerChecker.java
@@ -66,7 +66,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * Tests that the LedgerChecker should detect the underReplicated fragments
      * on multiple Bookie crashes
      */
-    @Test(timeout=60000)
+    @Test
     public void testChecker() throws Exception {
 
         LedgerHandle lh = bkc.createLedger(BookKeeper.DigestType.CRC32,
@@ -120,7 +120,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
     // /we don't have any missed entries. Quorum satisfied//
     // /So, there should not be any missing replicas.///////
     // /////////////////////////////////////////////////////
-    @Test(timeout = 60000)
+    @Test
     public void testShouldNotGetTheFragmentIfThereIsNoMissedEntry()
             throws Exception {
 
@@ -164,7 +164,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * Tests that LedgerChecker should give two fragments when 2 bookies failed
      * in same ensemble when ensemble = 3, quorum = 2
      */
-    @Test(timeout = 60000)
+    @Test
     public void testShouldGetTwoFrgamentsIfTwoBookiesFailedInSameEnsemble()
             throws Exception {
 
@@ -198,7 +198,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * Tests that LedgerChecker should not get any underReplicated fragments, if
      * corresponding ledger does not exists.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testShouldNotGetAnyFragmentIfNoLedgerPresent()
             throws Exception {
 
@@ -237,7 +237,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * Tests that LedgerChecker should get failed ensemble number of fragments
      * if ensemble bookie failures on next entry
      */
-    @Test(timeout = 60000)
+    @Test
     public void testShouldGetFailedEnsembleNumberOfFgmntsIfEnsembleBookiesFailedOnNextWrite()
             throws Exception {
 
@@ -271,7 +271,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * Tests that LedgerChecker should not get any fragments as underReplicated
      * if Ledger itself is empty
      */
-    @Test(timeout = 60000)
+    @Test
     public void testShouldNotGetAnyFragmentWithEmptyLedger() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 2, BookKeeper.DigestType.CRC32,
                 TEST_LEDGER_PASSWORD);
@@ -288,7 +288,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * In this case, there'll only be two fragments, as quorum is 2 and we only
      * suspect that the first entry of the ledger could exist.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testShouldGet2FragmentsWithEmptyLedgerButBookiesDead() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 2, BookKeeper.DigestType.CRC32,
                 TEST_LEDGER_PASSWORD);
@@ -304,7 +304,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * Tests that LedgerChecker should one fragment as underReplicated
      * if there is an open ledger with single entry written.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testShouldGetOneFragmentWithSingleEntryOpenedLedger() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, BookKeeper.DigestType.CRC32,
                 TEST_LEDGER_PASSWORD);
@@ -334,7 +334,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * This is important, as the last add confirmed may be less than the
      * first entry id of the final segment.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testSingleEntryAfterEnsembleChange() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, BookKeeper.DigestType.CRC32,
                 TEST_LEDGER_PASSWORD);
@@ -372,7 +372,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * Tests that LedgerChecker does not return any fragments
      * from a closed ledger with 0 entries.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testClosedEmptyLedger() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, BookKeeper.DigestType.CRC32,
                 TEST_LEDGER_PASSWORD);
@@ -399,7 +399,7 @@ public class TestLedgerChecker extends BookKeeperClusterTestCase {
      * Tests that LedgerChecker does not return any fragments
      * from a closed ledger with 0 entries.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testClosedSingleEntryLedger() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 2, BookKeeper.DigestType.CRC32,
                 TEST_LEDGER_PASSWORD);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerFragmentReplication.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerFragmentReplication.java
index e4f744f..c0ff8d7 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerFragmentReplication.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerFragmentReplication.java
@@ -73,7 +73,7 @@ public class TestLedgerFragmentReplication extends BookKeeperClusterTestCase {
      * Tests that replicate method should replicate the failed bookie fragments
      * to target bookie passed.
      */
-    @Test(timeout=60000)
+    @Test
     public void testReplicateLFShouldCopyFailedBookieFragmentsToTargetBookie()
             throws Exception {
         byte[] data = "TestLedgerFragmentReplication".getBytes();
@@ -130,7 +130,7 @@ public class TestLedgerFragmentReplication extends BookKeeperClusterTestCase {
      * Tests that fragment re-replication fails on last unclosed ledger
      * fragments.
      */
-    @Test(timeout=60000)
+    @Test
     public void testReplicateLFFailsOnlyOnLastUnClosedFragments()
             throws Exception {
         byte[] data = "TestLedgerFragmentReplication".getBytes();
@@ -188,7 +188,7 @@ public class TestLedgerFragmentReplication extends BookKeeperClusterTestCase {
      * Tests that ReplicateLedgerFragment should return false if replication
      * fails
      */
-    @Test(timeout=60000)
+    @Test
     public void testReplicateLFShouldReturnFalseIfTheReplicationFails()
             throws Exception {
         byte[] data = "TestLedgerFragmentReplication".getBytes();
@@ -232,7 +232,7 @@ public class TestLedgerFragmentReplication extends BookKeeperClusterTestCase {
      * Tests that splitIntoSubFragment should be able to split the original
      * passed fragment into sub fragments at correct boundaries
      */
-    @Test(timeout = 30000)
+    @Test
     public void testSplitIntoSubFragmentsWithDifferentFragmentBoundaries()
             throws Exception {
         LedgerMetadata metadata = new LedgerMetadata(3, 3, 3, TEST_DIGEST_TYPE,
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestParallelRead.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestParallelRead.java
index 3b1ca19..17ba6f1 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestParallelRead.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestParallelRead.java
@@ -96,7 +96,7 @@ public class TestParallelRead extends BookKeeperClusterTestCase {
 
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNormalParallelRead() throws Exception {
         int numEntries = 10;
 
@@ -140,7 +140,7 @@ public class TestParallelRead extends BookKeeperClusterTestCase {
         lh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testParallelReadMissingEntries() throws Exception {
         int numEntries = 10;
 
@@ -165,7 +165,7 @@ public class TestParallelRead extends BookKeeperClusterTestCase {
         lh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testFailParallelReadMissingEntryImmediately() throws Exception {
         int numEntries = 1;
 
@@ -200,7 +200,7 @@ public class TestParallelRead extends BookKeeperClusterTestCase {
         newBk.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testParallelReadWithFailedBookies() throws Exception {
         int numEntries = 10;
 
@@ -241,7 +241,7 @@ public class TestParallelRead extends BookKeeperClusterTestCase {
         newBk.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testParallelReadFailureWithFailedBookies() throws Exception {
         int numEntries = 10;
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestPiggybackLAC.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestPiggybackLAC.java
index 9da6f05..e05fa6a 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestPiggybackLAC.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestPiggybackLAC.java
@@ -41,7 +41,7 @@ public class TestPiggybackLAC extends BookKeeperClusterTestCase {
         this.digestType = DigestType.CRC32;
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testPiggybackLAC() throws Exception {
         int numEntries = 10;
         LedgerHandle lh = bkc.createLedger(3, 3, 3, digestType, "".getBytes());
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRackawareEnsemblePlacementPolicy.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRackawareEnsemblePlacementPolicy.java
index ad3fa55..bbf95e9 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRackawareEnsemblePlacementPolicy.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRackawareEnsemblePlacementPolicy.java
@@ -107,7 +107,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         StaticDNSResolver.addNodeToRack("localhost", rack);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNodeDown() throws Exception {
         repp.uninitalize();
         updateMyRack(NetworkTopology.DEFAULT_REGION_AND_RACK);
@@ -136,7 +136,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         assertEquals(expectedSet, reoderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNodeReadOnly() throws Exception {
         repp.uninitalize();
         updateMyRack("/r1/rack1");
@@ -168,7 +168,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         assertEquals(expectedSet, reoderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testTwoNodesDown() throws Exception {
         repp.uninitalize();
         updateMyRack("/r1/rack1");
@@ -199,7 +199,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         assertEquals(expectedSet, reoderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNodeDownAndReadOnly() throws Exception {
         repp.uninitalize();
         updateMyRack("/r1/rack1");
@@ -230,7 +230,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         assertEquals(expectedSet, reoderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithEnoughBookiesInSameRack() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -253,7 +253,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         assertEquals(addr3, replacedBookie);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithEnoughBookiesInDifferentRack() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -280,7 +280,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         assertTrue(addr3.equals(replacedBookie) || addr4.equals(replacedBookie));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithNotEnoughBookies() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -311,7 +311,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithSingleRack() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.6", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.7", 3181);
@@ -334,7 +334,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithMultipleRacks() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.2", 3181);
@@ -364,7 +364,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithEnoughRacks() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -407,7 +407,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
     /**
      * Test for BOOKKEEPER-633
      */
-    @Test(timeout = 60000)
+    @Test
     public void testRemoveBookieFromCluster() {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -429,7 +429,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         repp.onClusterChanged(addrs, new HashSet<BookieSocketAddress>());
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testWeightedPlacementAndReplaceBookieWithEnoughBookiesInSameRack() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.2", 3181);
@@ -477,7 +477,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         assertTrue("Weights not being honored " + observedMultiple, Math.abs(observedMultiple-multiple) < 1);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testWeightedPlacementAndReplaceBookieWithoutEnoughBookiesInSameRack() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.2", 3181);
@@ -538,7 +538,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
                 Math.abs(observedMultiple2-expected) < 1);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testWeightedPlacementAndNewEnsembleWithEnoughBookiesInSameRack() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.2", 3181);
@@ -622,7 +622,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
                 Math.abs(observedMultiple2-maxMultiple) < 0.5);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testWeightedPlacementAndNewEnsembleWithoutEnoughBookies() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.2", 3181);
@@ -695,7 +695,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         return numCoveredWriteQuorums;
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNodeWithFailures() throws Exception {
         repp.uninitalize();
         updateMyRack(NetworkTopology.DEFAULT_REGION_AND_RACK);
@@ -724,7 +724,7 @@ public class TestRackawareEnsemblePlacementPolicy extends TestCase {
         assertEquals(ensemble.get(reoderSet.get(1)), addr4);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testPlacementOnStabilizeNetworkTopology() throws Exception {
         repp.uninitalize();
         updateMyRack(NetworkTopology.DEFAULT_REGION_AND_RACK);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRackawareEnsemblePlacementPolicyUsingScript.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRackawareEnsemblePlacementPolicyUsingScript.java
index 82f9291..4d5a4e7 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRackawareEnsemblePlacementPolicyUsingScript.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRackawareEnsemblePlacementPolicyUsingScript.java
@@ -96,7 +96,7 @@ public class TestRackawareEnsemblePlacementPolicyUsingScript {
         Assume.assumeTrue(!Shell.WINDOWS);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithEnoughBookiesInSameRack() throws Exception {
         ignoreTestIfItIsWindowsOS();
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181); // /1 rack
@@ -116,7 +116,7 @@ public class TestRackawareEnsemblePlacementPolicyUsingScript {
         assertEquals(addr3, replacedBookie);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithEnoughBookiesInDifferentRack() throws Exception {
         ignoreTestIfItIsWindowsOS();
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181); // /1 rack
@@ -140,7 +140,7 @@ public class TestRackawareEnsemblePlacementPolicyUsingScript {
         assertTrue(addr3.equals(replacedBookie) || addr4.equals(replacedBookie));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithNotEnoughBookies() throws Exception {
         ignoreTestIfItIsWindowsOS();
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181); // /1 rack
@@ -176,7 +176,7 @@ public class TestRackawareEnsemblePlacementPolicyUsingScript {
      * 
      * This case adds node with non-default rack, then adds nodes with one on default rack.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithScriptMappingError() throws Exception {
         ignoreTestIfItIsWindowsOS();
         BookieSocketAddress addr0 = new BookieSocketAddress("127.0.0.0", 3181); // error mapping to rack here
@@ -214,7 +214,7 @@ public class TestRackawareEnsemblePlacementPolicyUsingScript {
      * This case adds node with default rack, then adds nodes with non-default rack.
      * Almost the same as testReplaceBookieWithScriptMappingError but different order of addition.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithScriptMappingError2() throws Exception {
         ignoreTestIfItIsWindowsOS();
         BookieSocketAddress addr0 = new BookieSocketAddress("127.0.0.0", 3181); // error mapping to rack here
@@ -243,7 +243,7 @@ public class TestRackawareEnsemblePlacementPolicyUsingScript {
         assertTrue(addr0.equals(replacedBookie));
     }
     
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithSingleRack() throws Exception {
         ignoreTestIfItIsWindowsOS();
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181); // /1 rack
@@ -267,7 +267,7 @@ public class TestRackawareEnsemblePlacementPolicyUsingScript {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithMultipleRacks() throws Exception {
         ignoreTestIfItIsWindowsOS();
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181); // /1 rack
@@ -293,7 +293,7 @@ public class TestRackawareEnsemblePlacementPolicyUsingScript {
         }
     }
 
-    @Test(timeout = 90000)
+    @Test
     public void testNewEnsembleWithEnoughRacks() throws Exception {
         ignoreTestIfItIsWindowsOS();
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181); // /1 rack
@@ -329,7 +329,7 @@ public class TestRackawareEnsemblePlacementPolicyUsingScript {
      * Test for BOOKKEEPER-633
      */
 
-    @Test(timeout = 60000)
+    @Test
     public void testRemoveBookieFromCluster() {
         ignoreTestIfItIsWindowsOS();
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181); // /1 rack
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadEntryListener.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadEntryListener.java
index d3ef194..11e46e9 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadEntryListener.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadEntryListener.java
@@ -143,12 +143,12 @@ public class TestReadEntryListener extends BookKeeperClusterTestCase {
         lh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBasicEnableParallelRead() throws Exception {
         basicReadTest(true);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBasicDisableParallelRead() throws Exception {
         basicReadTest(false);
     }
@@ -207,12 +207,12 @@ public class TestReadEntryListener extends BookKeeperClusterTestCase {
         lh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadMissingEntriesEnableParallelRead() throws Exception {
         readMissingEntriesTest(true);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadMissingEntriesDisableParallelRead() throws Exception {
         readMissingEntriesTest(false);
     }
@@ -247,12 +247,12 @@ public class TestReadEntryListener extends BookKeeperClusterTestCase {
         lh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadWithFailedBookiesEnableParallelRead() throws Exception {
         readWithFailedBookiesTest(true);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadWithFailedBookiesDisableParallelRead() throws Exception {
         readWithFailedBookiesTest(false);
     }
@@ -292,12 +292,12 @@ public class TestReadEntryListener extends BookKeeperClusterTestCase {
         lh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadFailureWithFailedBookiesEnableParallelRead() throws Exception {
         readWithFailedBookiesTest(true);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadFailureWithFailedBookiesDisableParallelRead() throws Exception {
         readWithFailedBookiesTest(false);
     }
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadLastConfirmedAndEntry.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadLastConfirmedAndEntry.java
index 18c800c..487a11a 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadLastConfirmedAndEntry.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadLastConfirmedAndEntry.java
@@ -84,7 +84,7 @@ public class TestReadLastConfirmedAndEntry extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testAdvancedLacWithEmptyResponse() throws Exception {
         byte[] passwd = "advanced-lac-with-empty-response".getBytes(UTF_8);
 
@@ -200,7 +200,7 @@ public class TestReadLastConfirmedAndEntry extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testRaceOnLastAddConfirmed() throws Exception {
         byte[] passwd = "race-on-last-add-confirmed".getBytes(UTF_8);
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadLastConfirmedLongPoll.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadLastConfirmedLongPoll.java
index 094fe88..18ab96f 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadLastConfirmedLongPoll.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadLastConfirmedLongPoll.java
@@ -37,7 +37,7 @@ public class TestReadLastConfirmedLongPoll extends BookKeeperClusterTestCase {
         this.digestType = DigestType.CRC32;
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadLACLongPollWhenAllBookiesUp() throws Exception {
         final int numEntries = 3;
 
@@ -114,7 +114,7 @@ public class TestReadLastConfirmedLongPoll extends BookKeeperClusterTestCase {
         readLh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReadLACLongPollWhenSomeBookiesDown() throws Exception {
         final int numEntries = 3;
         final LedgerHandle lh = bkc.createLedger(3, 1, 1, digestType, "".getBytes());
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadTimeout.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadTimeout.java
index 4ee892c..9fe7bed 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadTimeout.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadTimeout.java
@@ -50,7 +50,7 @@ public class TestReadTimeout extends BookKeeperClusterTestCase {
     }
 
     @SuppressWarnings("deprecation")
-    @Test(timeout=60000)
+    @Test
     public void testReadTimeout() throws Exception {
         final AtomicBoolean completed = new AtomicBoolean(false);
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRegionAwareEnsemblePlacementPolicy.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRegionAwareEnsemblePlacementPolicy.java
index fb45537..5387824 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRegionAwareEnsemblePlacementPolicy.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestRegionAwareEnsemblePlacementPolicy.java
@@ -108,7 +108,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         super.tearDown();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNotReorderReadIfInDefaultRack() throws Exception {
         repp.uninitalize();
         updateMyRack(NetworkTopology.DEFAULT_REGION_AND_RACK);
@@ -121,7 +121,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         assertEquals(writeSet, reorderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNodeInSameRegion() throws Exception {
         repp.uninitalize();
         updateMyRack("/r1/rack3");
@@ -147,7 +147,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         assertEquals(expectedSet, reoderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNodeNotInSameRegions() throws Exception {
         repp.uninitalize();
         updateMyRack("/r2/rack1");
@@ -161,7 +161,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         assertEquals(writeSet, reoderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNodeDown() throws Exception {
         repp.uninitalize();
         updateMyRack("/r1/rack1");
@@ -190,7 +190,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         assertEquals(expectedSet, reoderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNodeReadOnly() throws Exception {
         repp.uninitalize();
         updateMyRack("/r1/rack1");
@@ -221,7 +221,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         assertEquals(expectedSet, reoderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testTwoNodesDown() throws Exception {
         repp.uninitalize();
         updateMyRack("/r1/rack1");
@@ -251,7 +251,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         assertEquals(expectedSet, reoderSet);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithEnoughBookiesInSameRegion() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -274,7 +274,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         assertEquals(addr3, replacedBookie);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithEnoughBookiesInDifferentRegion() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -301,7 +301,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         assertTrue(addr3.equals(replacedBookie) || addr4.equals(replacedBookie));
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleBookieWithNotEnoughBookies() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -328,7 +328,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReplaceBookieWithNotEnoughBookies() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -359,7 +359,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithSingleRegion() throws Exception {
         repp.uninitalize();
         repp = new RegionAwareEnsemblePlacementPolicy();
@@ -390,7 +390,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithMultipleRegions() throws Exception {
         repp.uninitalize();
         repp = new RegionAwareEnsemblePlacementPolicy();
@@ -428,7 +428,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithEnoughRegions() throws Exception {
         BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.2", 3181);
         BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.3", 3181);
@@ -468,7 +468,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithThreeRegions() throws Exception {
         repp.uninitalize();
         repp = new RegionAwareEnsemblePlacementPolicy();
@@ -533,7 +533,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithThreeRegionsWithDisable() throws Exception {
         FeatureProvider featureProvider = new SettableFeatureProvider("", 0);
         repp.uninitalize();
@@ -612,7 +612,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
     }
 
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleWithFiveRegions() throws Exception {
         repp.uninitalize();
         repp = new RegionAwareEnsemblePlacementPolicy();
@@ -690,22 +690,22 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEnsembleWithThreeRegionsReplace() throws Exception {
         testEnsembleWithThreeRegionsReplaceInternal(3, false, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEnsembleWithThreeRegionsReplaceDisableOneRegion() throws Exception {
         testEnsembleWithThreeRegionsReplaceInternal(2, false, true);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEnsembleWithThreeRegionsReplaceMinDurabilityOne() throws Exception {
         testEnsembleWithThreeRegionsReplaceInternal(1, false, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEnsembleWithThreeRegionsReplaceDisableDurability() throws Exception {
         testEnsembleWithThreeRegionsReplaceInternal(1, true, false);
     }
@@ -838,12 +838,12 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEnsembleMinDurabilityOne() throws Exception {
         testEnsembleDurabilityDisabledInternal(1, false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testEnsembleDisableDurability() throws Exception {
         testEnsembleDurabilityDisabledInternal(2, true);
     }
@@ -918,7 +918,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNewEnsembleFailWithFiveRegions() throws Exception {
         repp.uninitalize();
         repp = new RegionAwareEnsemblePlacementPolicy();
@@ -1013,12 +1013,12 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         repp.onClusterChanged(addrs, new HashSet<BookieSocketAddress>());
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBasicReorderReadSequenceWithLocalRegion() throws Exception {
         basicReorderReadSequenceWithLocalRegionTest("region2", false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBasicReorderReadLACSequenceWithLocalRegion() throws Exception {
         basicReorderReadSequenceWithLocalRegionTest("region2", true);
     }
@@ -1064,12 +1064,12 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBasicReorderReadSequenceWithRemoteRegion() throws Exception {
         basicReorderReadSequenceWithRemoteRegionTest("region4", false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBasicReorderReadLACSequenceWithRemoteRegion() throws Exception {
         basicReorderReadSequenceWithRemoteRegionTest("region4", true);
     }
@@ -1099,12 +1099,12 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReorderReadSequenceWithUnavailableOrReadOnlyBookies() throws Exception {
         reorderReadSequenceWithUnavailableOrReadOnlyBookiesTest(false);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testReorderReadLACSequenceWithUnavailableOrReadOnlyBookies() throws Exception {
         reorderReadSequenceWithUnavailableOrReadOnlyBookiesTest(true);
     }
@@ -1202,7 +1202,7 @@ public class TestRegionAwareEnsemblePlacementPolicy extends TestCase {
         return numCoveredWriteQuorums;
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testNodeWithFailures() throws Exception {
         repp.uninitalize();
         updateMyRack("/r2/rack1");
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestSequenceRead.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestSequenceRead.java
index 5b035b7..8e38487 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestSequenceRead.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestSequenceRead.java
@@ -82,7 +82,7 @@ public class TestSequenceRead extends BookKeeperClusterTestCase {
         return lh;
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testSequenceReadOnDuplicatedBookies() throws Exception {
         final LedgerHandle lh = createLedgerWithDuplicatedBookies();
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestSpeculativeRead.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestSpeculativeRead.java
index 89a1baa..5ca752a 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestSpeculativeRead.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestSpeculativeRead.java
@@ -116,7 +116,7 @@ public class TestSpeculativeRead extends BookKeeperClusterTestCase {
      * - read second bookie, spec client should find on bookie three,
      *   non spec client should hang.
      */
-    @Test(timeout=60000)
+    @Test
     public void testSpeculativeRead() throws Exception {
         long id = getLedgerToRead(3,2);
         BookKeeper bknospec = createClient(0); // disabled
@@ -160,7 +160,7 @@ public class TestSpeculativeRead extends BookKeeperClusterTestCase {
      * Test that if more than one replica is down, we can still read, as long as the quorum
      * size is larger than the number of down replicas.
      */
-    @Test(timeout=60000)
+    @Test
     public void testSpeculativeReadMultipleReplicasDown() throws Exception {
         long id = getLedgerToRead(5,5);
         int timeout = 5000;
@@ -231,7 +231,7 @@ public class TestSpeculativeRead extends BookKeeperClusterTestCase {
      * Test that if after a speculative read is kicked off, the original read completes
      * nothing bad happens.
      */
-    @Test(timeout=60000)
+    @Test
     public void testSpeculativeReadFirstReadCompleteIsOk() throws Exception {
         long id = getLedgerToRead(2,2);
         int timeout = 1000;
@@ -274,7 +274,7 @@ public class TestSpeculativeRead extends BookKeeperClusterTestCase {
     /**
      * Unit test for the speculative read scheduling method
      */
-    @Test(timeout=60000)
+    @Test
     public void testSpeculativeReadScheduling() throws Exception {
         long id = getLedgerToRead(3,2);
         int timeout = 1000;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestTryReadLastConfirmed.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestTryReadLastConfirmed.java
index ac0afb6..6413f86 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestTryReadLastConfirmed.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestTryReadLastConfirmed.java
@@ -42,7 +42,7 @@ public class TestTryReadLastConfirmed extends BookKeeperClusterTestCase {
         this.digestType = DigestType.CRC32;
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testTryReadLACWhenAllBookiesUp() throws Exception {
         final int numEntries = 3;
 
@@ -99,7 +99,7 @@ public class TestTryReadLastConfirmed extends BookKeeperClusterTestCase {
         readLh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testTryReadLaCWhenSomeBookiesDown() throws Exception {
         final int numEntries = 3;
         final int ensembleSize = 3;
@@ -147,7 +147,7 @@ public class TestTryReadLastConfirmed extends BookKeeperClusterTestCase {
         readLh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testTryReadLACWhenAllBookiesDown() throws Exception {
         final int numEntries = 2;
         final int ensembleSize = 3;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestWatchEnsembleChange.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestWatchEnsembleChange.java
index 97e3c9f..a0801db 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestWatchEnsembleChange.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestWatchEnsembleChange.java
@@ -78,7 +78,7 @@ public class TestWatchEnsembleChange extends BookKeeperClusterTestCase {
         });
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testWatchEnsembleChange() throws Exception {
         int numEntries = 10;
         LedgerHandle lh = bkc.createLedger(3, 3, 3, digestType, "".getBytes());
@@ -106,7 +106,7 @@ public class TestWatchEnsembleChange extends BookKeeperClusterTestCase {
         lh.close();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testWatchMetadataRemoval() throws Exception {
         LedgerManagerFactory factory = ReflectionUtils.newInstance(lmFactoryCls);
         factory.initialize(baseConf, super.zkc, factory.getCurrentVersion());
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestWeightedRandomSelection.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestWeightedRandomSelection.java
index 037ac80..c6ff15f 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestWeightedRandomSelection.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestWeightedRandomSelection.java
@@ -63,7 +63,7 @@ public class TestWeightedRandomSelection {
     public void tearDown() throws Exception {
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testSelectionWithEqualWeights() throws Exception {
         Map<String, WeightedObject> map = new HashMap<String, WeightedObject>();
 
@@ -92,7 +92,7 @@ public class TestWeightedRandomSelection {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testSelectionWithAllZeroWeights() throws Exception {
         Map<String, WeightedObject> map = new HashMap<String, WeightedObject>();
 
@@ -162,7 +162,7 @@ public class TestWeightedRandomSelection {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testSelectionWithSomeZeroWeights() throws Exception {
         Map<String, WeightedObject> map = new HashMap<String, WeightedObject>();
         Map<String, Integer> randomSelection = new HashMap<String, Integer>();
@@ -192,7 +192,7 @@ public class TestWeightedRandomSelection {
         verifyResult(map, randomSelection, multiplier, minWeight, medianWeight, total, totalTries);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testSelectionWithUnequalWeights() throws Exception {
         Map<String, WeightedObject> map = new HashMap<String, WeightedObject>();
         Map<String, Integer> randomSelection = new HashMap<String, Integer>();
@@ -222,7 +222,7 @@ public class TestWeightedRandomSelection {
         verifyResult(map, randomSelection, multiplier, minWeight, medianWeight, total, totalTries);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testSelectionWithHotNode() throws Exception {
         Map<String, WeightedObject> map = new HashMap<String, WeightedObject>();
         Map<String, Integer> randomSelection = new HashMap<String, Integer>();
@@ -250,7 +250,7 @@ public class TestWeightedRandomSelection {
         verifyResult(map, randomSelection, multiplier, minWeight, medianWeight, total, totalTries);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testSelectionWithHotNodeWithLimit() throws Exception {
         Map<String, WeightedObject> map = new HashMap<String, WeightedObject>();
         Map<String, Integer> randomSelection = new HashMap<String, Integer>();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/UpdateLedgerCmdTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/UpdateLedgerCmdTest.java
index b04ff64..2836d86 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/UpdateLedgerCmdTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/UpdateLedgerCmdTest.java
@@ -57,7 +57,7 @@ public class UpdateLedgerCmdTest extends BookKeeperClusterTestCase {
     /**
      * updateledgers to hostname
      */
-    @Test(timeout = 120000)
+    @Test
     public void testUpdateLedgersToHostname() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         LOG.info("Create ledger and add entries to it");
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/UpdateLedgerOpTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/UpdateLedgerOpTest.java
index 48d9984..72b66a6 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/UpdateLedgerOpTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/UpdateLedgerOpTest.java
@@ -67,7 +67,7 @@ public class UpdateLedgerOpTest extends BookKeeperClusterTestCase {
     /**
      * Tests verifies update bookie id when there are many ledgers.
      */
-    @Test(timeout = 120000)
+    @Test
     public void testManyLedgers() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         BookKeeperAdmin bkadmin = new BookKeeperAdmin(bk);
@@ -107,7 +107,7 @@ public class UpdateLedgerOpTest extends BookKeeperClusterTestCase {
     /**
      * Tests verifies with limit value lesser than the total number of ledgers.
      */
-    @Test(timeout = 120000)
+    @Test
     public void testLimitLessThanTotalLedgers() throws Exception {
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         BookKeeperAdmin bkadmin = new BookKeeperAdmin(bk);
@@ -152,7 +152,7 @@ public class UpdateLedgerOpTest extends BookKeeperClusterTestCase {
      * Tests verifies the ensemble reformation after updating the bookie id in
      * the existing ensemble
      */
-    @Test(timeout = 120000)
+    @Test
     public void testChangeEnsembleAfterRenaming() throws Exception {
 
         BookKeeper bk = new BookKeeper(baseClientConf, zkc);
@@ -214,7 +214,7 @@ public class UpdateLedgerOpTest extends BookKeeperClusterTestCase {
      * Tests verifies simultaneous flow between adding entries and rename of
      * bookie id
      */
-    @Test(timeout = 120000)
+    @Test
     public void testRenameWhenAddEntryInProgress() throws Exception {
         final BookKeeper bk = new BookKeeper(baseClientConf, zkc);
         BookKeeperAdmin bkadmin = new BookKeeperAdmin(bk);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/conf/NoSystemPropertiesConfigurationTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/conf/NoSystemPropertiesConfigurationTest.java
index 5b6653c..699ef16 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/conf/NoSystemPropertiesConfigurationTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/conf/NoSystemPropertiesConfigurationTest.java
@@ -39,4 +39,4 @@ public class NoSystemPropertiesConfigurationTest {
         ClientConfiguration clientConfiguration = new ClientConfiguration();
         assertEquals(5000, clientConfiguration.getThrottleValue());
     }
-}
\ No newline at end of file
+}
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/conf/SystemPropertiesConfigurationTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/conf/SystemPropertiesConfigurationTest.java
index 217b2b3..29b0d50 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/conf/SystemPropertiesConfigurationTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/conf/SystemPropertiesConfigurationTest.java
@@ -40,4 +40,4 @@ public class SystemPropertiesConfigurationTest {
         ClientConfiguration clientConfiguration = new ClientConfiguration();
         assertEquals(10, clientConfiguration.getThrottleValue());
     }
-}
\ No newline at end of file
+}
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/http/TestHttpService.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/http/TestHttpService.java
index 12dda4a..2001f93 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/http/TestHttpService.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/http/TestHttpService.java
@@ -41,7 +41,7 @@ public class TestHttpService extends BookKeeperClusterTestCase {
             .build();
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testHeartbeatService() throws Exception {
         // test heartbeat service
         Service heartbeatService = serviceProvider.provideHeartbeatService();
@@ -50,7 +50,7 @@ public class TestHttpService extends BookKeeperClusterTestCase {
         assertEquals("OK\n", response.getBody());
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testConfigService() throws Exception {
         // test config service
         String testProperty = "TEST_PROPERTY";
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java
index 95a0506..ecdfa77 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java
@@ -144,7 +144,7 @@ public class GcLedgersTest extends LedgerManagerTestCase {
         assertEquals("Remove should have succeeded", 0, rc.get());
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testGarbageCollectLedgers() throws Exception {
         int numLedgers = 100;
         int numRemovedLedgers = 10;
@@ -244,7 +244,7 @@ public class GcLedgersTest extends LedgerManagerTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testGcLedgersOutsideRange() throws Exception {
         final SortedSet<Long> createdLedgers = Collections.synchronizedSortedSet(new TreeSet<Long>());
         final Queue<Long> cleaned = new LinkedList<Long>();
@@ -278,7 +278,7 @@ public class GcLedgersTest extends LedgerManagerTestCase {
         assertEquals("Should have cleaned first ledger" + first, (long)first, (long)cleaned.poll());
     }
 
-    @Test(timeout=120000)
+    @Test
     public void testGcLedgersNotLast() throws Exception {
         final SortedSet<Long> createdLedgers = Collections.synchronizedSortedSet(new TreeSet<Long>());
         final List<Long> cleaned = new ArrayList<Long>();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java
index 4552e65..3be3fbc 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java
@@ -40,7 +40,7 @@ public class LedgerLayoutTest extends BookKeeperClusterTestCase {
         super(0);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testLedgerLayout() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         conf.setLedgerManagerFactoryClass(HierarchicalLedgerManagerFactory.class);
@@ -77,7 +77,7 @@ public class LedgerLayoutTest extends BookKeeperClusterTestCase {
         layout.store(zkc, ledgersRootPath, ZooDefs.Ids.OPEN_ACL_UNSAFE);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testBadVersionLedgerLayout() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         // write bad version ledger layout
@@ -94,7 +94,7 @@ public class LedgerLayoutTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testAbsentLedgerManagerLayout() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         String ledgersLayout = conf.getZkLedgersRootPath() + "/"
@@ -113,7 +113,7 @@ public class LedgerLayoutTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testBaseLedgerManagerLayout() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         String rootPath = conf.getZkLedgersRootPath();
@@ -134,7 +134,7 @@ public class LedgerLayoutTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testReadV1LedgerManagerLayout() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
         // write v1 ledger layout
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerIteratorTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerIteratorTest.java
index 1a58186..22c9e0a 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerIteratorTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerIteratorTest.java
@@ -31,7 +31,7 @@ public class LedgerManagerIteratorTest extends LedgerManagerTestCase {
         super(lmFactoryCls);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testIterateNoLedgers() throws Exception {
         LedgerManager lm = getLedgerManager();
         LedgerRangeIterator lri = lm.getLedgerRanges();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerMetadataCreationTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerMetadataCreationTest.java
index d90b3f9..a4e1b76 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerMetadataCreationTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerMetadataCreationTest.java
@@ -48,12 +48,12 @@ public class LedgerMetadataCreationTest extends LedgerManagerTestCase {
         baseConf.setGcWaitTime(100000);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreationAndDeletionWithRandomLedgerIds() throws Exception {
         testExecution(true);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreationAndDeletion() throws Exception{
         testExecution(false);
     }
@@ -121,7 +121,7 @@ public class LedgerMetadataCreationTest extends LedgerManagerTestCase {
         }
         executor.shutdown();
         assertTrue("All the ledger create/delete operations should have'been completed",
-                executor.awaitTermination(30, TimeUnit.SECONDS));
+                executor.awaitTermination(120, TimeUnit.SECONDS));
         assertTrue("There should be no failed creates. But there are " + failedCreates.size() + " failedCreates",
                 failedCreates.isEmpty());
         assertTrue("There should be no failed deletes. But there are " + failedDeletes.size() + " failedDeletes",
@@ -129,7 +129,7 @@ public class LedgerMetadataCreationTest extends LedgerManagerTestCase {
         bookKeeper.close();
     }
     
-    @Test(timeout = 60000)
+    @Test
     public void testParentNodeDeletion() throws Exception {
         /*
          * run this testcase only for HierarchicalLedgerManager and
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java
index 62ccb01..79b136f 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java
@@ -61,7 +61,7 @@ public class TestLedgerManager extends BookKeeperClusterTestCase {
     /**
      * Test bad client configuration
      */
-    @Test(timeout=60000)
+    @Test
     public void testBadConf() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
 
@@ -108,7 +108,7 @@ public class TestLedgerManager extends BookKeeperClusterTestCase {
      * Test bad client configuration
      */
     @SuppressWarnings("deprecation")
-    @Test(timeout=60000)
+    @Test
     public void testBadConfV1() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
 
@@ -149,7 +149,7 @@ public class TestLedgerManager extends BookKeeperClusterTestCase {
     /**
      * Test bad zk configuration
      */
-    @Test(timeout=60000)
+    @Test
     public void testBadZkContents() throws Exception {
         ClientConfiguration conf = new ClientConfiguration();
 
@@ -233,7 +233,7 @@ public class TestLedgerManager extends BookKeeperClusterTestCase {
     }
 
     // test concurrent
-    @Test(timeout=60000)
+    @Test
     public void testConcurrent1() throws Exception {
         /// everyone creates the same
         int numThreads = 50;
@@ -263,7 +263,7 @@ public class TestLedgerManager extends BookKeeperClusterTestCase {
         assertTrue("Not all ledger managers created", success);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testConcurrent2() throws Exception {
         /// odd create different
         int numThreadsEach = 25;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLongZkLedgerIdGenerator.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLongZkLedgerIdGenerator.java
index 75422a4..b44b8e5 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLongZkLedgerIdGenerator.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLongZkLedgerIdGenerator.java
@@ -75,7 +75,7 @@ public class TestLongZkLedgerIdGenerator extends TestCase {
         super.tearDown();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testGenerateLedgerId() throws Exception {
         // Create *nThread* threads each generate *nLedgers* ledger id,
         // and then check there is no identical ledger id.
@@ -128,7 +128,7 @@ public class TestLongZkLedgerIdGenerator extends TestCase {
         }
 
         assertTrue("Wait ledger id generation threads to stop timeout : ",
-                countDownLatch.await(30, TimeUnit.SECONDS));
+                countDownLatch.await(120, TimeUnit.SECONDS));
         LOG.info("Number of generated ledger id: {}, time used: {}", ledgerIds.size(),
                 System.currentTimeMillis() - start);
         assertEquals("Error occur during ledger id generation : ", 0, errCount.get());
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkLedgerIdGenerator.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkLedgerIdGenerator.java
index f9cad2e..5581f47 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkLedgerIdGenerator.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkLedgerIdGenerator.java
@@ -70,7 +70,7 @@ public class TestZkLedgerIdGenerator extends TestCase {
         super.tearDown();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testGenerateLedgerId() throws Exception {
         // Create *nThread* threads each generate *nLedgers* ledger id,
         // and then check there is no identical ledger id.
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkVersion.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkVersion.java
index 3667356..5409246 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkVersion.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkVersion.java
@@ -28,7 +28,7 @@ import org.apache.bookkeeper.versioning.Version.Occurred;
 
 public class TestZkVersion {
 
-    @Test(timeout=60000)
+    @Test
     public void testNullZkVersion() {
         ZkVersion zkVersion = new ZkVersion(99);
         try {
@@ -38,7 +38,7 @@ public class TestZkVersion {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testInvalidVersion() {
         ZkVersion zkVersion = new ZkVersion(99);
         try {
@@ -53,7 +53,7 @@ public class TestZkVersion {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testCompare() {
         ZkVersion zv = new ZkVersion(99);
         Assert.assertEquals(Occurred.AFTER, zv.compare(new ZkVersion(98)));
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/metastore/TestMetaStore.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/metastore/TestMetaStore.java
index 8b52bf5..d1d013d 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/metastore/TestMetaStore.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/metastore/TestMetaStore.java
@@ -293,7 +293,7 @@ public class TestMetaStore {
     /**
      * Test (get, get partial field, remove) on non-existent element.
      */
-    @Test(timeout=60000)
+    @Test
     public void testNonExistent() throws Exception {
         // get
         try {
@@ -322,7 +322,7 @@ public class TestMetaStore {
     /**
      * Test usage of get operation on (full and partial) fields.
      */
-    @Test(timeout=60000)
+    @Test
     public void testGet() throws Exception {
         Versioned<Value> vv;
 
@@ -369,7 +369,7 @@ public class TestMetaStore {
     /**
      * Test usage of put operation with (full and partial) fields.
      */
-    @Test(timeout=60000)
+    @Test
     public void testPut() throws Exception {
         final Integer counter = getRandom();
         final String name = "put";
@@ -460,7 +460,7 @@ public class TestMetaStore {
      * Test usage of (unconditional remove, BadVersion remove, CorrectVersion
      * remove) operation.
      */
-    @Test(timeout=60000)
+    @Test
     public void testRemove() throws Exception {
         final Integer counter = getRandom();
         final String name = "remove";
@@ -539,7 +539,7 @@ public class TestMetaStore {
     /**
      * Test usage of (scan) operation on (full and partial) fields.
      */
-    @Test(timeout=60000)
+    @Test
     public void testOpenCursor() throws Exception {
 
         TreeMap<String, Value> allValues = Maps.newTreeMap();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestBKStats.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestBKStats.java
index 3aed8cb..d75540f 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestBKStats.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestBKStats.java
@@ -32,7 +32,7 @@ public class TestBKStats {
      * Tests that updatLatency should not fail with
      * ArrayIndexOutOfBoundException when latency time coming as negative.
      */
-    @Test(timeout=60000)
+    @Test
     public void testUpdateLatencyShouldNotFailWithAIOBEWithNegativeLatency()
             throws Exception {
         OpStats opStat = new OpStats();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestBackwardCompatCMS42.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestBackwardCompatCMS42.java
index ed2a4b5..4619a92 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestBackwardCompatCMS42.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestBackwardCompatCMS42.java
@@ -70,7 +70,7 @@ public class TestBackwardCompatCMS42 extends BookKeeperClusterTestCase {
                 new ClientConfiguration());
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testAuthSingleMessage() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -92,7 +92,7 @@ public class TestBackwardCompatCMS42 extends BookKeeperClusterTestCase {
         assertEquals("Should have succeeded", response.getErrorCode(), BookieProtocol.EOK);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testAuthMultiMessage() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
@@ -125,7 +125,7 @@ public class TestBackwardCompatCMS42 extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testAuthFail() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestDeathwatcher.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestDeathwatcher.java
index 9b90887..2899b7c 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestDeathwatcher.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestDeathwatcher.java
@@ -46,7 +46,7 @@ public class TestDeathwatcher extends BookKeeperClusterTestCase {
      * then a failure/crash in the autorecovery daemon will not take down the
      * bookie also.
      */
-    @Test(timeout=30000)
+    @Test
     public void testAutorecoveryFailureDoesntKillBookie() throws Exception {
         ServerConfiguration conf = newServerConfiguration().setAutoRecoveryDaemonEnabled(true);
         BookieServer bs = startBookie(conf);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestPerChannelBookieClient.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestPerChannelBookieClient.java
index d08d006..78c86b2 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestPerChannelBookieClient.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestPerChannelBookieClient.java
@@ -75,7 +75,7 @@ public class TestPerChannelBookieClient extends BookKeeperClusterTestCase {
      * This specific race was found in
      * {@link https://issues.apache.org/jira/browse/BOOKKEEPER-485}.
      */
-    @Test(timeout=60000)
+    @Test
     public void testConnectCloseRace() throws Exception {
         EventLoopGroup eventLoopGroup = new NioEventLoopGroup();
         OrderedSafeExecutor executor = getOrderedSafeExecutor();
@@ -111,7 +111,7 @@ public class TestPerChannelBookieClient extends BookKeeperClusterTestCase {
      * where multiple clients try to connect a channel simultaneously. If not synchronised
      * correctly, this causes the netty channel to get orphaned.
      */
-    @Test(timeout=60000)
+    @Test
     public void testConnectRace() throws Exception {
         GenericCallback<PerChannelBookieClient> nullop = new GenericCallback<PerChannelBookieClient>() {
             @Override
@@ -142,7 +142,7 @@ public class TestPerChannelBookieClient extends BookKeeperClusterTestCase {
      *
      * {@link https://issues.apache.org/jira/browse/BOOKKEEPER-620}
      */
-    @Test(timeout=60000)
+    @Test
     public void testDisconnectRace() throws Exception {
         final GenericCallback<PerChannelBookieClient> nullop = new GenericCallback<PerChannelBookieClient>() {
             @Override
@@ -228,7 +228,7 @@ public class TestPerChannelBookieClient extends BookKeeperClusterTestCase {
      * Test that requests are completed even if the channel is disconnected
      * {@link https://issues.apache.org/jira/browse/BOOKKEEPER-668}
      */
-    @Test(timeout=60000)
+    @Test
     public void testRequestCompletesAfterDisconnectRace() throws Exception {
         ServerConfiguration conf = killBookie(0);
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorBookieTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorBookieTest.java
index a90b557..9303352 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorBookieTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorBookieTest.java
@@ -78,7 +78,7 @@ public class AuditorBookieTest extends BookKeeperClusterTestCase {
      * other than auditor bookie shouldn't initiate re-election and multiple
      * auditors.
      */
-    @Test(timeout=60000)
+    @Test
     public void testEnsureOnlySingleAuditor() throws Exception {
         BookieServer auditor = verifyAuditor();
 
@@ -105,7 +105,7 @@ public class AuditorBookieTest extends BookKeeperClusterTestCase {
      * Test Auditor crashes should trigger re-election and another bookie should
      * take over the auditor ship
      */
-    @Test(timeout=60000)
+    @Test
     public void testSuccessiveAuditorCrashes() throws Exception {
         BookieServer auditor = verifyAuditor();
         shutdownBookie(auditor);
@@ -125,7 +125,7 @@ public class AuditorBookieTest extends BookKeeperClusterTestCase {
      * Test restarting the entire bookie cluster. It shouldn't create multiple
      * bookie auditors
      */
-    @Test(timeout=60000)
+    @Test
     public void testBookieClusterRestart() throws Exception {
         BookieServer auditor = verifyAuditor();
         for (AuditorElector auditorElector : auditorElectors.values()) {
@@ -146,7 +146,7 @@ public class AuditorBookieTest extends BookKeeperClusterTestCase {
     /**
      * Test the vote is deleting from the ZooKeeper during shutdown.
      */
-    @Test(timeout=60000)
+    @Test
     public void testShutdown() throws Exception {
         BookieServer auditor = verifyAuditor();
         shutdownBookie(auditor);
@@ -173,7 +173,7 @@ public class AuditorBookieTest extends BookKeeperClusterTestCase {
      * Test restart of the previous Auditor bookie shouldn't initiate
      * re-election and should create new vote after restarting.
      */
-    @Test(timeout=60000)
+    @Test
     public void testRestartAuditorBookieAfterCrashing() throws Exception {
         BookieServer auditor = verifyAuditor();
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorLedgerCheckerTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorLedgerCheckerTest.java
index d62046b..0692d33 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorLedgerCheckerTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorLedgerCheckerTest.java
@@ -152,7 +152,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
     /**
      * Test publishing of under replicated ledgers by the auditor bookie
      */
-    @Test(timeout=60000)
+    @Test
     public void testSimpleLedger() throws Exception {
         LedgerHandle lh1 = createAndAddEntriesToLedger();
         Long ledgerId = lh1.getId();
@@ -190,7 +190,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
      * Test once published under replicated ledger should exists even after
      * restarting respective bookie
      */
-    @Test(timeout=60000)
+    @Test
     public void testRestartBookie() throws Exception {
         LedgerHandle lh1 = createAndAddEntriesToLedger();
         LedgerHandle lh2 = createAndAddEntriesToLedger();
@@ -212,7 +212,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
      * Test publishing of under replicated ledgers when multiple bookie failures
      * one after another.
      */
-    @Test(timeout=60000)
+    @Test
     public void testMultipleBookieFailures() throws Exception {
         LedgerHandle lh1 = createAndAddEntriesToLedger();
 
@@ -231,7 +231,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
                    waitForLedgerMissingReplicas(lh1.getId(), 10, shutdownBookie));
     }
 
-    @Test(timeout = 30000)
+    @Test
     public void testToggleLedgerReplication() throws Exception {
         LedgerHandle lh1 = createAndAddEntriesToLedger();
         ledgerList.add(lh1.getId());
@@ -256,7 +256,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
                 5, TimeUnit.SECONDS));
     }
 
-    @Test(timeout = 20000)
+    @Test
     public void testDuplicateEnDisableAutoRecovery() throws Exception {
         urLedgerMgr.disableLedgerReplication();
         try {
@@ -280,7 +280,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
      * Test Auditor should consider Readonly bookie as available bookie. Should not publish ur ledgers for
      * readonly bookies.
      */
-    @Test(timeout = 20000)
+    @Test
     public void testReadOnlyBookieExclusionFromURLedgersCheck() throws Exception {
         LedgerHandle lh = createAndAddEntriesToLedger();
         ledgerList.add(lh.getId());
@@ -302,7 +302,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
     /**
      * Test Auditor should consider Readonly bookie fail and publish ur ledgers for readonly bookies.
      */
-    @Test(timeout = 20000)
+    @Test
     public void testReadOnlyBookieShutdown() throws Exception {
         LedgerHandle lh = createAndAddEntriesToLedger();
         long ledgerId = lh.getId();
@@ -378,7 +378,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
      * Test publishing of under replicated ledgers by the auditor
      * bookie is delayed if LostBookieRecoveryDelay option is set
      */
-    @Test(timeout=60000)
+    @Test
     public void testDelayedAuditOfLostBookies() throws Exception {
         // wait for a second so that the initial periodic check finishes
         Thread.sleep(1000);
@@ -393,7 +393,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
      *  is set to run every 2 secs. I.e. periodic bookie check doesn't
      *  override the delay
      */
-    @Test(timeout=60000)
+    @Test
     public void testDelayedAuditWithPeriodicBookieCheck() throws Exception {
         // enable periodic bookie check on a cadence of every 2 seconds.
         // this requires us to stop the auditor/auditorElectors, set the
@@ -410,7 +410,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
         _testDelayedAuditOfLostBookies();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testRescheduleOfDelayedAuditOfLostBookiesToStartImmediately() throws Exception {
      // wait for a second so that the initial periodic check finishes
         Thread.sleep(1000);
@@ -450,7 +450,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
                 data.contains(shutdownBookie));
     }
     
-    @Test(timeout=60000)
+    @Test
     public void testRescheduleOfDelayedAuditOfLostBookiesToStartLater() throws Exception {
      // wait for a second so that the initial periodic check finishes
         Thread.sleep(1000);
@@ -495,7 +495,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
                 data.contains(shutdownBookie));
     }
     
-    @Test(timeout=60000)
+    @Test
     public void testTriggerAuditorWithNoPendingAuditTask() throws Exception {
         // wait for a second so that the initial periodic check finishes
         Thread.sleep(1000);
@@ -557,7 +557,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
                 lostBookieRecoveryDelayBeforeChange, auditorBookiesAuditor.getLostBookieRecoveryDelayBeforeChange());
     }
     
-    @Test(timeout=60000)
+    @Test
     public void testTriggerAuditorWithPendingAuditTask() throws Exception {
      // wait for a second so that the initial periodic check finishes
         Thread.sleep(1000);
@@ -604,7 +604,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
                 lostBookieRecoveryDelay, auditorBookiesAuditor.getLostBookieRecoveryDelayBeforeChange());
     }
     
-    @Test(timeout=60000)
+    @Test
     public void testTriggerAuditorBySettingDelayToZeroWithPendingAuditTask() throws Exception {
      // wait for a second so that the initial periodic check finishes
         Thread.sleep(1000);
@@ -655,7 +655,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
      * Test audit of bookies is delayed when one bookie is down. But when
      * another one goes down, the audit is started immediately.
      */
-    @Test(timeout=60000)
+    @Test
     public void testDelayedAuditWithMultipleBookieFailures() throws Exception {
         // wait for the periodic bookie check to finish
         Thread.sleep(1000);
@@ -708,7 +708,7 @@ public class AuditorLedgerCheckerTest extends BookKeeperClusterTestCase {
      * a bookies goes down and comes up, the next bookie go down and up and so on.
      * At any time only one bookie is down.
      */
-    @Test(timeout=60000)
+    @Test
     public void testDelayedAuditWithRollingUpgrade() throws Exception {
         // wait for the periodic bookie check to finish
         Thread.sleep(1000);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorPeriodicBookieCheckTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorPeriodicBookieCheckTest.java
index ba19277..edd3788 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorPeriodicBookieCheckTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorPeriodicBookieCheckTest.java
@@ -93,7 +93,7 @@ public class AuditorPeriodicBookieCheckTest extends BookKeeperClusterTestCase {
     /**
      * Test that the periodic bookie checker works
      */
-    @Test(timeout=30000)
+    @Test
     public void testPeriodicBookieCheckInterval() throws Exception {
         LedgerManagerFactory mFactory = LedgerManagerFactory.newLedgerManagerFactory(bsConfs.get(0), zkc);
         LedgerManager ledgerManager = mFactory.newLedgerManager();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorPeriodicCheckTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorPeriodicCheckTest.java
index 159b859..28a9579 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorPeriodicCheckTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorPeriodicCheckTest.java
@@ -117,7 +117,7 @@ public class AuditorPeriodicCheckTest extends BookKeeperClusterTestCase {
      * test that the periodic checking will detect corruptions in
      * the bookie entry log
      */
-    @Test(timeout=30000)
+    @Test
     public void testEntryLogCorruption() throws Exception {
         LedgerManagerFactory mFactory = LedgerManagerFactory.newLedgerManagerFactory(bsConfs.get(0), zkc);
         LedgerUnderreplicationManager underReplicationManager = mFactory.newLedgerUnderreplicationManager();
@@ -166,7 +166,7 @@ public class AuditorPeriodicCheckTest extends BookKeeperClusterTestCase {
      * test that the period checker will detect corruptions in
      * the bookie index files
      */
-    @Test(timeout=30000)
+    @Test
     public void testIndexCorruption() throws Exception {
         LedgerManagerFactory mFactory = LedgerManagerFactory.newLedgerManagerFactory(bsConfs.get(0), zkc);
         LedgerUnderreplicationManager underReplicationManager = mFactory.newLedgerUnderreplicationManager();
@@ -213,7 +213,7 @@ public class AuditorPeriodicCheckTest extends BookKeeperClusterTestCase {
     /**
      * Test that the period checker will not run when auto replication has been disabled
      */
-    @Test(timeout=120000)
+    @Test
     public void testPeriodicCheckWhenDisabled() throws Exception {
         LedgerManagerFactory mFactory = LedgerManagerFactory.newLedgerManagerFactory(bsConfs.get(0), zkc);
         final LedgerUnderreplicationManager underReplicationManager = mFactory.newLedgerUnderreplicationManager();
@@ -298,7 +298,7 @@ public class AuditorPeriodicCheckTest extends BookKeeperClusterTestCase {
     /**
      * Test that the period check will succeed if a ledger is deleted midway
      */
-    @Test(timeout=120000)
+    @Test
     public void testPeriodicCheckWhenLedgerDeleted() throws Exception {
         for (AuditorElector e : auditorElectors.values()) {
             e.shutdown();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorRollingRestartTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorRollingRestartTest.java
index 3e221b4..8834ee2 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorRollingRestartTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorRollingRestartTest.java
@@ -40,7 +40,7 @@ import static org.junit.Assert.*;
 public class AuditorRollingRestartTest extends BookKeeperClusterTestCase {
 
     public AuditorRollingRestartTest() {
-        super(3);
+        super(3, 600);
         // run the daemon within the bookie
         baseConf.setAutoRecoveryDaemonEnabled(true);
     }
@@ -48,7 +48,7 @@ public class AuditorRollingRestartTest extends BookKeeperClusterTestCase {
     /**
      * Test no auditing during restart if disabled
      */
-    @Test(timeout=600000) // 10 minutes
+    @Test
     public void testAuditingDuringRollingRestart() throws Exception {
         LedgerManagerFactory mFactory = LedgerManagerFactory.newLedgerManagerFactory(bsConfs.get(0), zkc);
         final LedgerUnderreplicationManager underReplicationManager = mFactory.newLedgerUnderreplicationManager();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuthAutoRecoveryTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuthAutoRecoveryTest.java
index 654a0aa..80cf727 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuthAutoRecoveryTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuthAutoRecoveryTest.java
@@ -88,7 +88,7 @@ public class AuthAutoRecoveryTest extends BookKeeperClusterTestCase {
     /*
      * test the client role of the auditor
      */
-    @Test(timeout = 60000)
+    @Test
     public void testAuthClientRole() throws Exception {
         ServerConfiguration config = bsConfs.get(0);
         assertEquals(AuditorClientAuthInterceptorFactory.class.getName(), config.getClientAuthProviderFactoryClass());
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AutoRecoveryMainTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AutoRecoveryMainTest.java
index 5a50568..98b49b2 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AutoRecoveryMainTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AutoRecoveryMainTest.java
@@ -38,7 +38,7 @@ public class AutoRecoveryMainTest extends BookKeeperClusterTestCase {
     /*
      * test the startup of the auditorElector and RW.
      */
-    @Test(timeout=60000)
+    @Test
     public void testStartup() throws Exception {
         AutoRecoveryMain main = new AutoRecoveryMain(bsConfs.get(0));
         try {
@@ -56,7 +56,7 @@ public class AutoRecoveryMainTest extends BookKeeperClusterTestCase {
     /*
      * Test the shutdown of all daemons
      */
-    @Test(timeout=60000)
+    @Test
     public void testShutdown() throws Exception {
         AutoRecoveryMain main = new AutoRecoveryMain(bsConfs.get(0));
         main.start();
@@ -77,7 +77,7 @@ public class AutoRecoveryMainTest extends BookKeeperClusterTestCase {
      * Test that, if an autorecovery looses its ZK connection/session
      * it will shutdown.
      */
-    @Test(timeout=60000)
+    @Test
     public void testAutoRecoverySessionLoss() throws Exception {
         AutoRecoveryMain main1 = new AutoRecoveryMain(bsConfs.get(0));
         AutoRecoveryMain main2 = new AutoRecoveryMain(bsConfs.get(1));
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
index 72fd11c..d273dab 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
@@ -119,7 +119,7 @@ public class BookieAutoRecoveryTest extends BookKeeperClusterTestCase {
      * Test verifies publish urLedger by Auditor and replication worker is
      * picking up the entries and finishing the rereplication of open ledger
      */
-    @Test(timeout = 90000)
+    @Test
     public void testOpenLedgers() throws Exception {
         List<LedgerHandle> listOfLedgerHandle = createLedgersAndAddEntries(1, 5);
         LedgerHandle lh = listOfLedgerHandle.get(0);
@@ -166,7 +166,7 @@ public class BookieAutoRecoveryTest extends BookKeeperClusterTestCase {
      * Test verifies publish urLedger by Auditor and replication worker is
      * picking up the entries and finishing the rereplication of closed ledgers
      */
-    @Test(timeout = 90000)
+    @Test
     public void testClosedLedgers() throws Exception {
         List<Integer> listOfReplicaIndex = new ArrayList<Integer>();
         List<LedgerHandle> listOfLedgerHandle = createLedgersAndAddEntries(1, 5);
@@ -227,7 +227,7 @@ public class BookieAutoRecoveryTest extends BookKeeperClusterTestCase {
      * when there is an exception will shutdown Auditor and RW processes. After
      * restarting should be able to finish the re-replication activities
      */
-    @Test(timeout = 90000)
+    @Test
     public void testStopWhileReplicationInProgress() throws Exception {
         int numberOfLedgers = 2;
         List<Integer> listOfReplicaIndex = new ArrayList<Integer>();
@@ -306,7 +306,7 @@ public class BookieAutoRecoveryTest extends BookKeeperClusterTestCase {
      * deleted after publishing as urledgers by Auditor) should be cleared off
      * by the newly selected replica bookie
      */
-    @Test(timeout = 30000)
+    @Test
     public void testNoSuchLedgerExists() throws Exception {
         List<LedgerHandle> listOfLedgerHandle = createLedgersAndAddEntries(2, 5);
         CountDownLatch latch = new CountDownLatch(listOfLedgerHandle.size());
@@ -350,7 +350,7 @@ public class BookieAutoRecoveryTest extends BookKeeperClusterTestCase {
      * Test that if a empty ledger loses the bookie not in the quorum for entry 0, it will
      * still be openable when it loses enough bookies to lose a whole quorum.
      */
-    @Test(timeout=10000)
+    @Test
     public void testEmptyLedgerLosesQuorumEventually() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 2, 2, DigestType.CRC32, PASSWD);
         CountDownLatch latch = new CountDownLatch(1);
@@ -395,7 +395,7 @@ public class BookieAutoRecoveryTest extends BookKeeperClusterTestCase {
      * Test verifies bookie recovery, the host (recorded via ipaddress in
      * ledgermetadata)
      */
-    @Test(timeout = 90000)
+    @Test
     public void testLedgerMetadataContainsIpAddressAsBookieID()
             throws Exception {
         stopBKCluster();
@@ -473,7 +473,7 @@ public class BookieAutoRecoveryTest extends BookKeeperClusterTestCase {
      * Test verifies bookie recovery, the host (recorded via useHostName in
      * ledgermetadata)
      */
-    @Test(timeout = 90000)
+    @Test
     public void testLedgerMetadataContainsHostNameAsBookieID()
             throws Exception {
         stopBKCluster();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieLedgerIndexTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieLedgerIndexTest.java
index 26a50e4..e7408a0 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieLedgerIndexTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieLedgerIndexTest.java
@@ -108,7 +108,7 @@ public class BookieLedgerIndexTest extends BookKeeperClusterTestCase {
      * Verify the bookie-ledger mapping with minimum number of bookies and few
      * ledgers
      */
-    @Test(timeout=60000)
+    @Test
     public void testSimpleBookieLedgerMapping() throws Exception {
 
         for (int i = 0; i < numberOfLedgers; i++) {
@@ -137,7 +137,7 @@ public class BookieLedgerIndexTest extends BookKeeperClusterTestCase {
     /**
      * Verify ledger index with failed bookies and throws exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testWithoutZookeeper() throws Exception {
         // This test case is for ledger metadata that stored in ZooKeeper. As
         // far as MSLedgerManagerFactory, ledger metadata are stored in other
@@ -164,7 +164,7 @@ public class BookieLedgerIndexTest extends BookKeeperClusterTestCase {
     /**
      * Verify indexing with multiple ensemble reformation
      */
-    @Test(timeout=60000)
+    @Test
     public void testEnsembleReformation() throws Exception {
         try {
             LedgerHandle lh1 = createAndAddEntriesToLedger();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestAutoRecoveryAlongWithBookieServers.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestAutoRecoveryAlongWithBookieServers.java
index e1ccf68..820b935 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestAutoRecoveryAlongWithBookieServers.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestAutoRecoveryAlongWithBookieServers.java
@@ -51,7 +51,7 @@ public class TestAutoRecoveryAlongWithBookieServers extends
     }
 
     /** Tests that the auto recovery service along with Bookie servers itself */
-    @Test(timeout = 60000)
+    @Test
     public void testAutoRecoveryAlongWithBookieServers() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, BookKeeper.DigestType.CRC32,
                 "testpasswd".getBytes());
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestLedgerUnderreplicationManager.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestLedgerUnderreplicationManager.java
index d7a622b..c70e553 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestLedgerUnderreplicationManager.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestLedgerUnderreplicationManager.java
@@ -159,7 +159,7 @@ public class TestLedgerUnderreplicationManager {
      * Ensure that getLedgerToReplicate will block until it a ledger
      * becomes available.
      */
-    @Test(timeout=60000)
+    @Test
     public void testBasicInteraction() throws Exception {
         Set<Long> ledgers = new HashSet<Long>();
         ledgers.add(0xdeadbeefL);
@@ -205,7 +205,7 @@ public class TestLedgerUnderreplicationManager {
      * client shouldn't be able to get it. If the first client dies
      * however, the second client should be able to get it.
      */
-    @Test(timeout=60000)
+    @Test
     public void testLocking() throws Exception {
         String missingReplica = "localhost:3181";
 
@@ -242,7 +242,7 @@ public class TestLedgerUnderreplicationManager {
      * acquire a ledger, and that it's not the one that was previously
      * marked as replicated.
      */
-    @Test(timeout=60000)
+    @Test
     public void testMarkingAsReplicated() throws Exception {
         String missingReplica = "localhost:3181";
 
@@ -286,7 +286,7 @@ public class TestLedgerUnderreplicationManager {
      * When a client releases a previously acquired ledger, another
      * client should then be able to acquire it.
      */
-    @Test(timeout=60000)
+    @Test
     public void testRelease() throws Exception {
         String missingReplica = "localhost:3181";
 
@@ -328,7 +328,7 @@ public class TestLedgerUnderreplicationManager {
      * under replicated ledger list when first rereplicating client marks
      * it as replicated.
      */
-    @Test(timeout=60000)
+    @Test
     public void testManyFailures() throws Exception {
         String missingReplica1 = "localhost:3181";
         String missingReplica2 = "localhost:3182";
@@ -358,7 +358,7 @@ public class TestLedgerUnderreplicationManager {
      * the same missing replica twice, only marking as replicated
      * will be enough to remove it from the list.
      */
-    @Test(timeout=60000)
+    @Test
     public void test2reportSame() throws Exception {
         String missingReplica1 = "localhost:3181";
 
@@ -401,7 +401,7 @@ public class TestLedgerUnderreplicationManager {
      * Test that multiple LedgerUnderreplicationManagers should be able to take
      * lock and release for same ledger
      */
-    @Test(timeout = 30000)
+    @Test
     public void testMultipleManagersShouldBeAbleToTakeAndReleaseLock()
             throws Exception {
         String missingReplica1 = "localhost:3181";
@@ -456,7 +456,7 @@ public class TestLedgerUnderreplicationManager {
      * localhost:3181, localhost:318, localhost:31812
      * *******************************************************************
      */
-    @Test(timeout=60000)
+    @Test
     public void testMarkSimilarMissingReplica() throws Exception {
         List<String> missingReplica = new ArrayList<String>();
         missingReplica.add("localhost:3181");
@@ -473,7 +473,7 @@ public class TestLedgerUnderreplicationManager {
      * Test multiple bookie failures for a ledger and marked as underreplicated
      * one after another.
      */
-    @Test(timeout=60000)
+    @Test
     public void testManyFailuresInAnEnsemble() throws Exception {
         List<String> missingReplica = new ArrayList<String>();
         missingReplica.add("localhost:3181");
@@ -486,7 +486,7 @@ public class TestLedgerUnderreplicationManager {
      * able to getLedgerToRereplicate(). This calls will enter into infinite
      * waiting until enabling rereplication process
      */
-    @Test(timeout = 20000)
+    @Test
     public void testDisableLedegerReplication() throws Exception {
         final LedgerUnderreplicationManager replicaMgr = lmf1
                 .newLedgerUnderreplicationManager();
@@ -523,7 +523,7 @@ public class TestLedgerUnderreplicationManager {
      * Test enabling the ledger re-replication. After enableLedegerReplication,
      * should continue getLedgerToRereplicate() task
      */
-    @Test(timeout = 20000)
+    @Test
     public void testEnableLedgerReplication() throws Exception {
         isLedgerReplicationDisabled = true;
         final LedgerUnderreplicationManager replicaMgr = lmf1
@@ -598,7 +598,7 @@ public class TestLedgerUnderreplicationManager {
      * Test that the hierarchy gets cleaned up as ledgers
      * are marked as fully replicated
      */
-    @Test(timeout=60000)
+    @Test
     public void testHierarchyCleanup() throws Exception {
         final LedgerUnderreplicationManager replicaMgr = lmf1
             .newLedgerUnderreplicationManager();
@@ -640,7 +640,7 @@ public class TestLedgerUnderreplicationManager {
      * Test that as the hierarchy gets cleaned up, it doesn't interfere
      * with the marking of other ledgers as underreplicated
      */
-    @Test(timeout = 90000)
+    @Test
     public void testHierarchyCleanupInterference() throws Exception {
         final LedgerUnderreplicationManager replicaMgr1 = lmf1
             .newLedgerUnderreplicationManager();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestReplicationWorker.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestReplicationWorker.java
index 445655d..0ec3bb0 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestReplicationWorker.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestReplicationWorker.java
@@ -109,7 +109,7 @@ public class TestReplicationWorker extends BookKeeperClusterTestCase {
      * Tests that replication worker should replicate the failed bookie
      * fragments to target bookie given to the worker.
      */
-    @Test(timeout = 30000)
+    @Test
     public void testRWShouldReplicateFragmentsToTargetBookie() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, BookKeeper.DigestType.CRC32,
                 TESTPASSWD);
@@ -158,7 +158,7 @@ public class TestReplicationWorker extends BookKeeperClusterTestCase {
      * Tests that replication worker should retry for replication until enough
      * bookies available for replication
      */
-    @Test(timeout = 60000)
+    @Test
     public void testRWShouldRetryUntilThereAreEnoughBksAvailableForReplication()
             throws Exception {
         LedgerHandle lh = bkc.createLedger(1, 1, BookKeeper.DigestType.CRC32,
@@ -210,7 +210,7 @@ public class TestReplicationWorker extends BookKeeperClusterTestCase {
      * Tests that replication worker1 should take one fragment replication and
      * other replication worker also should compete for the replication.
      */
-    @Test(timeout = 90000)
+    @Test
     public void test2RWsShouldCompeteForReplicationOf2FragmentsAndCompleteReplication()
             throws Exception {
         LedgerHandle lh = bkc.createLedger(2, 2, BookKeeper.DigestType.CRC32,
@@ -277,7 +277,7 @@ public class TestReplicationWorker extends BookKeeperClusterTestCase {
      * Tests that Replication worker should clean the leadger under replication
      * node of the ledger already deleted
      */
-    @Test(timeout = 3000)
+    @Test
     public void testRWShouldCleanTheLedgerFromUnderReplicationIfLedgerAlreadyDeleted()
             throws Exception {
         LedgerHandle lh = bkc.createLedger(2, 2, BookKeeper.DigestType.CRC32,
@@ -314,7 +314,7 @@ public class TestReplicationWorker extends BookKeeperClusterTestCase {
 
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testMultipleLedgerReplicationWithReplicationWorker()
             throws Exception {
         // Ledger1
@@ -390,7 +390,7 @@ public class TestReplicationWorker extends BookKeeperClusterTestCase {
      * Tests that ReplicationWorker should fence the ledger and release ledger
      * lock after timeout. Then replication should happen normally.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testRWShouldReplicateTheLedgersAfterTimeoutIfLastFragmentIsUR()
             throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, BookKeeper.DigestType.CRC32,
@@ -447,7 +447,7 @@ public class TestReplicationWorker extends BookKeeperClusterTestCase {
      * the replication if ledger is in open state and lastFragment is not in
      * underReplication state. Note that RW should not fence such ledgers.
      */
-    @Test(timeout = 30000)
+    @Test
     public void testRWShouldReplicateTheLedgersAfterTimeoutIfLastFragmentIsNotUR()
             throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, BookKeeper.DigestType.CRC32,
@@ -511,7 +511,7 @@ public class TestReplicationWorker extends BookKeeperClusterTestCase {
     /**
      * Test that if the local bookie turns out to be read-only, then the replicator will pause but not shutdown.
      */
-    @Test(timeout = 20000)
+    @Test
     public void testRWOnLocalBookieReadonlyTransition() throws Exception {
         LedgerHandle lh = bkc.createLedger(3, 3, BookKeeper.DigestType.CRC32, TESTPASSWD);
 
@@ -554,7 +554,7 @@ public class TestReplicationWorker extends BookKeeperClusterTestCase {
     /**
      * Test that the replication worker will not shutdown on a simple ZK disconnection
      */
-    @Test(timeout=30000)
+    @Test
     public void testRWZKConnectionLost() throws Exception {
         ZooKeeper zk = ZooKeeperClient.newBuilder()
                 .connectString(zkUtil.getZooKeeperConnectString())
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/sasl/GSSAPIBookKeeperTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/sasl/GSSAPIBookKeeperTest.java
index 0ff8f0a..43bba41 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/sasl/GSSAPIBookKeeperTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/sasl/GSSAPIBookKeeperTest.java
@@ -198,7 +198,7 @@ public class GSSAPIBookKeeperTest extends BookKeeperClusterTestCase {
     /**
      * Test an connection will authorize with a single message to the server and a single response.
      */
-    @Test(timeout = 30000)
+    @Test
     public void testSingleMessageAuth() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setUseHostNameAsBookieID(true);
@@ -218,7 +218,7 @@ public class GSSAPIBookKeeperTest extends BookKeeperClusterTestCase {
         assertEquals("Should have entry", 1, entryCount(ledgerId.get(), bookieConf, clientConf));
     }
 
-    @Test(timeout = 30000)
+    @Test
     public void testNotAllowedClientId() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setUseHostNameAsBookieID(true);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/sasl/MD5DigestBookKeeperTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/sasl/MD5DigestBookKeeperTest.java
index 572e315..f7bd9e8 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/sasl/MD5DigestBookKeeperTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/sasl/MD5DigestBookKeeperTest.java
@@ -107,7 +107,7 @@ public class MD5DigestBookKeeperTest extends BookKeeperClusterTestCase {
     /**
      * Test an connection will authorize with a single message to the server and a single response.
      */
-    @Test(timeout = 30000)
+    @Test
     public void testSingleMessageAuth() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration();
         bookieConf.setBookieAuthProviderFactoryClass(
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java
index 5f25ce3..e0ec45e 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java
@@ -102,7 +102,7 @@ public class AsyncLedgerOpsTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testAsyncCreateClose() throws IOException, BKException {
         try {
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
index 83a19f9..f5a30f3 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
@@ -56,6 +56,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.rules.TestName;
+import org.junit.rules.Timeout;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -69,6 +70,9 @@ public abstract class BookKeeperClusterTestCase {
     @Rule
     public final TestName runtime = new TestName();
 
+    @Rule
+    public final Timeout globalTimeout;
+
     // ZooKeeper related variables
     protected final ZooKeeperUtil zkUtil = new ZooKeeperUtil();
     protected ZooKeeper zkc;
@@ -88,7 +92,12 @@ public abstract class BookKeeperClusterTestCase {
     private boolean isAutoRecoveryEnabled;
 
     public BookKeeperClusterTestCase(int numBookies) {
+        this(numBookies, 120);
+    }
+
+    public BookKeeperClusterTestCase(int numBookies, int testTimeoutSecs) {
         this.numBookies = numBookies;
+        this.globalTimeout = Timeout.seconds(testTimeoutSecs);
         baseConf.setAllowLoopback(true);
     }
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieClientTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieClientTest.java
index 7de5cbd..5bc34d6 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieClientTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieClientTest.java
@@ -135,7 +135,7 @@ public class BookieClientTest {
         }
     };
 
-    @Test(timeout=60000)
+    @Test
     public void testWriteGaps() throws Exception {
         final Object notifyObject = new Object();
         byte[] passwd = new byte[20];
@@ -239,7 +239,7 @@ public class BookieClientTest {
         return bb;
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testNoLedger() throws Exception {
         ResultStruct arc = new ResultStruct();
         BookieSocketAddress addr = new BookieSocketAddress("127.0.0.1", port);
@@ -251,7 +251,7 @@ public class BookieClientTest {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testGetBookieInfo() throws IOException, InterruptedException {
         BookieSocketAddress addr = new BookieSocketAddress("127.0.0.1", port);
         BookieClient bc = new BookieClient(new ClientConfiguration(), new NioEventLoopGroup(), executor);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java
index e0d7d1f..42f8ef5 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java
@@ -96,31 +96,31 @@ public class BookieFailureTest extends BookKeeperClusterTestCase
      *
      * @throws {@link IOException}
      */
-    @Test(timeout=60000)
+    @Test
     public void testAsyncBK1() throws IOException {
         LOG.info("#### BK1 ####");
         auxTestReadWriteAsyncSingleClient(bs.get(0));
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testAsyncBK2() throws IOException {
         LOG.info("#### BK2 ####");
         auxTestReadWriteAsyncSingleClient(bs.get(1));
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testAsyncBK3() throws IOException {
         LOG.info("#### BK3 ####");
         auxTestReadWriteAsyncSingleClient(bs.get(2));
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testAsyncBK4() throws IOException {
         LOG.info("#### BK4 ####");
         auxTestReadWriteAsyncSingleClient(bs.get(3));
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testBookieRecovery() throws Exception {
         //Shutdown all but 1 bookie
         bs.get(0).shutdown();
@@ -283,7 +283,7 @@ public class BookieFailureTest extends BookKeeperClusterTestCase
         zkc.close();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testLedgerNoRecoveryOpenAfterBKCrashed() throws Exception {
         // Create a ledger
         LedgerHandle beforelh = bkc.createLedger(numBookies, numBookies, digestType, "".getBytes());
@@ -321,7 +321,7 @@ public class BookieFailureTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testLedgerOpenAfterBKCrashed() throws Exception {
         // Create a ledger
         LedgerHandle beforelh = bkc.createLedger(numBookies, numBookies, digestType, "".getBytes());
@@ -369,7 +369,7 @@ public class BookieFailureTest extends BookKeeperClusterTestCase
      *
      * BOOKKEEPER-326
      */
-    @Test(timeout=60000)
+    @Test
     public void testReadLastConfirmedOp() throws Exception {
         startNewBookie();
         startNewBookie();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieJournalRollingTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieJournalRollingTest.java
index e79fa33..3bf9289 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieJournalRollingTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieJournalRollingTest.java
@@ -168,7 +168,7 @@ public class BookieJournalRollingTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testJournalRolling() throws Exception {
         if (LOG.isDebugEnabled()) {
             LOG.debug("Testing Journal Rolling");
@@ -209,7 +209,7 @@ public class BookieJournalRollingTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testJournalRollingWithoutSyncup() throws Exception {
         if (LOG.isDebugEnabled()) {
             LOG.debug("Testing Journal Rolling without sync up");
@@ -243,7 +243,7 @@ public class BookieJournalRollingTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testReplayDeletedLedgerJournalEntries() throws Exception {
         if (LOG.isDebugEnabled()) {
             LOG.debug("Testing replaying journal entries whose ledger has been removed.");
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java
index 6658bc3..6cbdff0 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java
@@ -115,7 +115,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testOpenException() throws IOException, InterruptedException {
         try {
             lh = bkc.openLedger(0, digestType, ledgerPassword);
@@ -130,7 +130,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
      *
      * @throws {@link IOException}
      */
-    @Test(timeout=60000)
+    @Test
     public void testStreamingClients() throws IOException, BKException, InterruptedException {
         lh = bkc.createLedger(digestType, ledgerPassword);
         // write a string so that we cna
@@ -258,7 +258,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testReadWriteAsyncSingleClient200() throws IOException {
         testReadWriteAsyncSingleClient(200);
     }
@@ -268,7 +268,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
      * First try varying the offset. Then the length with a fixed non-zero
      * offset.
      */
-    @Test(timeout=60000)
+    @Test
     public void testReadWriteRangeAsyncSingleClient() throws IOException {
         SyncObj sync = new SyncObj();
         try {
@@ -414,7 +414,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testSyncReadAsyncWriteStringsSingleClient() throws IOException {
         SyncObj sync = new SyncObj();
         LOG.info("TEST READ WRITE STRINGS MIXED SINGLE CLIENT");
@@ -489,7 +489,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
 
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testReadWriteSyncSingleClient() throws IOException {
         try {
             // Create a ledger
@@ -532,7 +532,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testReadWriteZero() throws IOException {
         try {
             // Create a ledger
@@ -588,7 +588,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testMultiLedger() throws IOException {
         try {
             // Create a ledger
@@ -661,7 +661,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testReadWriteAsyncLength() throws IOException {
         SyncObj sync = new SyncObj();
         try {
@@ -746,7 +746,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
         return lh.getLastAddConfirmed();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testReadFromOpenLedger() throws Exception {
         try {
             // Create a ledger
@@ -826,7 +826,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testReadFromOpenLedgerOpenOnce() throws Exception {
         try {
             // Create a ledger
@@ -882,7 +882,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testReadFromOpenLedgerZeroAndOne() throws Exception {
         try {
             // Create a ledger
@@ -950,7 +950,7 @@ public class BookieReadWriteTest extends BookKeeperClusterTestCase
     }
 
 
-    @Test(timeout=60000)
+    @Test
     public void testLastConfirmedAdd() throws Exception {
         try {
             // Create a ledger
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieZKExpireTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieZKExpireTest.java
index 2402309..f369728 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieZKExpireTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieZKExpireTest.java
@@ -40,7 +40,7 @@ public class BookieZKExpireTest extends BookKeeperClusterTestCase {
     }
 
     @SuppressWarnings("deprecation")
-    @Test(timeout=60000)
+    @Test
     public void testBookieServerZKExpireBehaviour() throws Exception {
         BookieServer server = null;
         try {
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/CloseTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/CloseTest.java
index d090c4a..4d7eefd 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/CloseTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/CloseTest.java
@@ -38,7 +38,7 @@ public class CloseTest extends BookKeeperClusterTestCase  {
         this.digestType = DigestType.CRC32;
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testClose() throws Exception {
 
         /*
@@ -69,7 +69,7 @@ public class CloseTest extends BookKeeperClusterTestCase  {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testCloseByOthers() throws Exception {
 
         int numLedgers = 1;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConcurrentLedgerTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConcurrentLedgerTest.java
index 7a65388..eb2ff0e 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConcurrentLedgerTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConcurrentLedgerTest.java
@@ -125,7 +125,7 @@ public class ConcurrentLedgerTest {
             iterationStep = Integer.parseInt(iterationsString);
         }
     }
-    @Test(timeout=60000)
+    @Test
     public void testConcurrentWrite() throws IOException, InterruptedException, BookieException {
         int size = 1024;
         int totalwrites = 128;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConditionalSetTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConditionalSetTest.java
index 4ffaada..a0e914d 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConditionalSetTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConditionalSetTest.java
@@ -69,7 +69,7 @@ public class ConditionalSetTest extends BookKeeperClusterTestCase {
      * @throws KeeperException
      */
 
-    @Test(timeout=60000)
+    @Test
     public void testConditionalSet() throws IOException, InterruptedException,
                                     BKException, KeeperException {
         LedgerHandle lhWrite = bkc.createLedger(digestType, new byte[] { 'a',
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConfigurationTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConfigurationTest.java
index 7784666..9b61675 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConfigurationTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConfigurationTest.java
@@ -36,7 +36,7 @@ public class ConfigurationTest {
         System.setProperty(AbstractConfiguration.READ_SYSTEM_PROPERTIES_PROPERTY, "true");
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testConfigurationOverwrite() {
         System.clearProperty("zkServers");
 
@@ -62,7 +62,7 @@ public class ConfigurationTest {
         assertEquals("newserver", conf2.getZkServers());
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testGetZkServers() {
         System.setProperty("zkServers", "server1:port1,server2:port2");
         ServerConfiguration conf = new ServerConfiguration();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ForceReadOnlyBookieTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ForceReadOnlyBookieTest.java
index 161802f..09b7c39 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ForceReadOnlyBookieTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ForceReadOnlyBookieTest.java
@@ -50,7 +50,7 @@ public class ForceReadOnlyBookieTest extends BookKeeperClusterTestCase {
     /**
      * Check force start readonly bookie
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookieForceStartAsReadOnly() throws Exception {
         // create ledger, add entries
         LedgerHandle ledger = bkc.createLedger(2, 2, DigestType.MAC,
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerCreateDeleteTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerCreateDeleteTest.java
index e3107c3..7e7f37a 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerCreateDeleteTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerCreateDeleteTest.java
@@ -48,7 +48,7 @@ public class LedgerCreateDeleteTest extends BookKeeperClusterTestCase {
         super.setUp();
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testCreateDeleteLedgers() throws Exception {
         int numLedgers = 3;
         ArrayList<Long> ledgers = new ArrayList<Long>();
@@ -75,7 +75,7 @@ public class LedgerCreateDeleteTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testCreateLedgerWithBKNotEnoughBookiesException() throws Exception {
         try {
             bkc.createLedger(2, 2, DigestType.CRC32, "bk is cool".getBytes());
@@ -85,7 +85,7 @@ public class LedgerCreateDeleteTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testCreateLedgerWithZKException() throws Exception {
         stopZKCluster();
         try {
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java
index ed2b1eb..e3f435d 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java
@@ -114,7 +114,7 @@ public class LedgerDeleteTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testLedgerDelete() throws Exception {
         // Write enough ledger entries so that we roll over the initial entryLog (0.log)
         LedgerHandle[] lhs = writeLedgerEntries(3, 1024, 1024);
@@ -143,7 +143,7 @@ public class LedgerDeleteTest extends BookKeeperClusterTestCase {
      *
      * @throws Exception
      */
-    @Test(timeout=60000)
+    @Test
     public void testLedgerDeleteWithExistingEntryLogs() throws Exception {
         // Write enough ledger entries so that we roll over the initial entryLog (0.log)
         LedgerHandle[] lhs = writeLedgerEntries(3, 1024, 1024);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultipleThreadReadTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultipleThreadReadTest.java
index 16ef0c5..57e9a24 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultipleThreadReadTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultipleThreadReadTest.java
@@ -285,17 +285,17 @@ public class MultipleThreadReadTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void test10Ledgers20ThreadsRead() throws IOException {
         multiLedgerMultiThreadRead(10, 20);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void test10Ledgers200ThreadsRead() throws IOException {
         multiLedgerMultiThreadRead(10, 200);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void test1Ledger20ThreadsRead() throws IOException {
         multiLedgerMultiThreadRead(1, 20);
     }
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/PortManager.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/PortManager.java
index fe68e29..72e5e80 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/PortManager.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/PortManager.java
@@ -52,4 +52,4 @@ public class PortManager {
     private static int getBasePort() {
         return Integer.valueOf(System.getProperty("test.basePort", "15000"));
     }
-}
\ No newline at end of file
+}
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ReadOnlyBookieTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ReadOnlyBookieTest.java
index 0379f44..a67e200 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ReadOnlyBookieTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ReadOnlyBookieTest.java
@@ -53,7 +53,7 @@ public class ReadOnlyBookieTest extends BookKeeperClusterTestCase {
     /**
      * Check readonly bookie
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookieShouldServeAsReadOnly() throws Exception {
         killBookie(0);
         baseConf.setReadOnlyModeEnabled(true);
@@ -96,7 +96,7 @@ public class ReadOnlyBookieTest extends BookKeeperClusterTestCase {
         }
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBookieShouldTurnWritableFromReadOnly() throws Exception {
         killBookie(0);
         baseConf.setReadOnlyModeEnabled(true);
@@ -176,7 +176,7 @@ public class ReadOnlyBookieTest extends BookKeeperClusterTestCase {
     /**
      * check readOnlyModeEnabled=false
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookieShutdownIfReadOnlyModeNotEnabled() throws Exception {
         killBookie(1);
         baseConf.setReadOnlyModeEnabled(false);
@@ -215,7 +215,7 @@ public class ReadOnlyBookieTest extends BookKeeperClusterTestCase {
     /**
      * Check multiple ledger dirs
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookieContinueWritingIfMultipleLedgersPresent()
             throws Exception {
         startNewBookieWithMultipleLedgerDirs(2);
@@ -265,7 +265,7 @@ public class ReadOnlyBookieTest extends BookKeeperClusterTestCase {
     /**
      * Test ledger creation with readonly bookies
      */
-    @Test(timeout = 60000)
+    @Test
     public void testLedgerCreationShouldFailWithReadonlyBookie() throws Exception {
         killBookie(1);
         baseConf.setReadOnlyModeEnabled(true);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ZooKeeperUtil.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ZooKeeperUtil.java
index a6b9b87..ea848c2 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ZooKeeperUtil.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ZooKeeperUtil.java
@@ -53,18 +53,18 @@ public class ZooKeeperUtil {
     static final Logger LOG = LoggerFactory.getLogger(ZooKeeperUtil.class);
 
     // ZooKeeper related variables
-    protected final static Integer zooKeeperPort = PortManager.nextFreePort();
-    private final InetSocketAddress zkaddr;
+    protected Integer zooKeeperPort = 0;
+    private InetSocketAddress zkaddr;
 
     protected ZooKeeperServer zks;
     protected ZooKeeper zkc; // zookeeper client
     protected NIOServerCnxnFactory serverFactory;
     protected File ZkTmpDir;
-    private final String connectString;
+    private String connectString;
 
     public ZooKeeperUtil() {
         String loopbackIPAddr = InetAddress.getLoopbackAddress().getHostAddress();
-        zkaddr = new InetSocketAddress(loopbackIPAddr, zooKeeperPort);
+        zkaddr = new InetSocketAddress(loopbackIPAddr, 0);
         connectString = loopbackIPAddr + ":" + zooKeeperPort;
     }
 
@@ -104,6 +104,12 @@ public class ZooKeeperUtil {
         serverFactory.configure(zkaddr, 100);
         serverFactory.startup(zks);
 
+        if (0 == zooKeeperPort) {
+            zooKeeperPort = serverFactory.getLocalPort();
+            zkaddr = new InetSocketAddress(zkaddr.getHostName(), zooKeeperPort);
+            connectString = zkaddr.getHostName() + ":" + zooKeeperPort;
+        }
+
         boolean b = ClientBase.waitForServerUp(getZooKeeperConnectString(),
                 ClientBase.CONNECTION_TIMEOUT);
         LOG.debug("Server up: " + b);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/tls/TestTLS.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/tls/TestTLS.java
index 2f56a9d..9f2d7e4 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/tls/TestTLS.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/tls/TestTLS.java
@@ -119,7 +119,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify that a server will not start if tls is enabled but no cert is specified
      */
-    @Test(timeout = 60000)
+    @Test
     public void testStartTLSServerNoKeyStore() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration().setTLSKeyStore(null);
 
@@ -134,7 +134,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify that a server will not start if tls is enabled but the cert password is incorrect
      */
-    @Test(timeout = 60000)
+    @Test
     public void testStartTLSServerBadPassword() throws Exception {
         ServerConfiguration bookieConf = newServerConfiguration().setTLSKeyStorePasswordPath("badpassword");
         try {
@@ -172,7 +172,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify the basic use of TLS. TLS client, TLS servers
      */
-    @Test(timeout = 60000)
+    @Test
     public void testConnectToTLSClusterTLSClient() throws Exception {
         ClientConfiguration clientConf = new ClientConfiguration(baseClientConf);
         testClient(clientConf, numBookies);
@@ -182,7 +182,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Multiple clients, some with TLS, and some without TLS
      */
-    @Test(timeout = 60000)
+    @Test
     public void testConnectToTLSClusterMixedClient() throws Exception {
         ClientConfiguration confWithTLS = new ClientConfiguration(baseClientConf);
         testClient(confWithTLS, numBookies);
@@ -195,7 +195,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify the basic use of TLS. TLS client, TLS servers. No Mutual Authentication.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testConnectToTLSClusterTLSClientWithTLSNoAuthentication() throws Exception {
         ServerConfiguration serverConf = new ServerConfiguration(baseConf);
         serverConf.setTLSClientAuthentication(false);
@@ -208,7 +208,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify the basic use of TLS. TLS client, TLS servers with mutual Auth.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testConnectToTLSClusterTLSClientWithAuthentication() throws Exception {
         ClientConfiguration conf = new ClientConfiguration(baseClientConf);
         try {
@@ -221,7 +221,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify that a client without tls enabled can connect to a cluster with TLS
      */
-    @Test(timeout = 60000)
+    @Test
     public void testConnectToTLSClusterNonTLSClient() throws Exception {
         ClientConfiguration conf = new ClientConfiguration(baseClientConf);
         conf.setTLSProviderFactoryClass(null);
@@ -235,7 +235,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify that a client will fail to connect to a server if it has asked for TLS, but it is not available.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testClientWantsTLSNoServersHaveIt() throws Exception {
         ServerConfiguration serverConf = new ServerConfiguration();
         for (ServerConfiguration conf : bsConfs) {
@@ -256,7 +256,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
      * Verify that a client will be able to connect to a bookie cluster if it has asked for TLS, and there are enough
      * bookies with TLS enabled in the cluster, although few bookies do not have TLS enabled.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testTLSClientButOnlyFewTLSServers() throws Exception {
         // disable TLS on initial set of bookies
         ServerConfiguration serverConf = new ServerConfiguration();
@@ -287,7 +287,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify that a client-side Auth plugin can access server certificates
      */
-    @Test(timeout = 60000)
+    @Test
     public void testClientAuthPlugin() throws Exception {
         secureClientSideChannel = false;
         secureClientSideChannelPrincipals = null;
@@ -307,7 +307,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify that a bookie-side Auth plugin can access server certificates
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookieAuthPluginRequireClientTLSAuthentication() throws Exception {
         ServerConfiguration serverConf = new ServerConfiguration(baseConf);
         serverConf.setBookieAuthProviderFactoryClass(AllowOnlyClientsWithX509Certificates.class.getName());
@@ -329,7 +329,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify that a bookie-side Auth plugin can access server certificates
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookieAuthPluginDenyAccesstoClientWithoutTLSAuthentication() throws Exception {
         ServerConfiguration serverConf = new ServerConfiguration(baseConf);
         serverConf.setTLSClientAuthentication(false);
@@ -355,7 +355,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify that a bookie-side Auth plugin can access server certificates
      */
-    @Test(timeout = 60000)
+    @Test
     public void testBookieAuthPluginDenyAccessToClientWithoutTLS() throws Exception {
         ServerConfiguration serverConf = new ServerConfiguration(baseConf);
         serverConf.setBookieAuthProviderFactoryClass(AllowOnlyClientsWithX509Certificates.class.getName());
@@ -462,7 +462,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
      * Verify that a client will fail to connect to a server if it has asked for TLS, but it is not available. Verify
      * that if there are enough TLS servers to fill the ensemble, it will eventually use those rather than the non-TLS
      */
-    @Test(timeout = 60000)
+    @Test
     public void testMixedCluster() throws Exception {
         ClientConfiguration clientConf = new ClientConfiguration(baseClientConf);
         int origNumBookies = numBookies;
@@ -488,7 +488,7 @@ public class TestTLS extends BookKeeperClusterTestCase {
     /**
      * Verify that if the server hangs while an TLS client is trying to connect, the client can continue.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testHungServer() throws Exception {
         ClientConfiguration clientConf = new ClientConfiguration(baseClientConf);
         CountDownLatch latch = new CountDownLatch(1);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/DoubleByteBufTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/DoubleByteBufTest.java
index b619d0e..5d8b223 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/DoubleByteBufTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/DoubleByteBufTest.java
@@ -29,14 +29,14 @@ import io.netty.buffer.Unpooled;
 
 public class DoubleByteBufTest {
 
-    @Test(timeout = 30000)
+    @Test
     public void testGetBytes() {
         ByteBuf b1 = Unpooled.wrappedBuffer(new byte[] { 1, 2, 3 });
         ByteBuf b2 = Unpooled.wrappedBuffer(new byte[] { 4, 5, 6 });
         doTest(b1, b2);
     }
 
-    @Test(timeout = 30000)
+    @Test
     public void testGetBytesWithDoubleByteBufAssource() {
         ByteBuf b1 = Unpooled.wrappedBuffer(new byte[] { 1, 2 });
         ByteBuf b2 = Unpooled.wrappedBuffer(new byte[] { 3, 4 });
@@ -46,7 +46,7 @@ public class DoubleByteBufTest {
         doTest(b1, b23);
     }
 
-    @Test(timeout = 30000)
+    @Test
     public void testGetBytesWithIndex() {
         ByteBuf b1 = Unpooled.wrappedBuffer(new byte[] { 1, 2, 3 });
         ByteBuf b2 = Unpooled.wrappedBuffer(new byte[] { 9, 9, 4, 5, 6 });
@@ -95,7 +95,7 @@ public class DoubleByteBufTest {
         assertEquals(Unpooled.wrappedBuffer(new byte[] { 0, 4, 5, 6, 0, 0 }), dst5);
     }
 
-    @Test(timeout = 30000)
+    @Test
     public void testCopyToArray() {
         ByteBuf b1 = Unpooled.wrappedBuffer(new byte[] { 1, 2 });
         ByteBuf b2 = Unpooled.wrappedBuffer(new byte[] { 3, 4 });
@@ -110,7 +110,7 @@ public class DoubleByteBufTest {
         assertArrayEquals(new byte[] { 2, 3, 4 }, a2);
     }
 
-    @Test(timeout = 30000)
+    @Test
     public void testToByteBuffer() {
         ByteBuf b1 = Unpooled.wrappedBuffer(new byte[] { 1, 2 });
         ByteBuf b2 = Unpooled.wrappedBuffer(new byte[] { 3, 4 });
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/SubTreeCacheTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/SubTreeCacheTest.java
index fde101b..a26f10d 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/SubTreeCacheTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/SubTreeCacheTest.java
@@ -22,6 +22,7 @@
 package org.apache.bookkeeper.util;
 
 import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.KeeperException.NoNodeException;
 import org.apache.zookeeper.WatchedEvent;
 import org.apache.zookeeper.Watcher;
 import org.junit.Assert;
@@ -207,14 +208,14 @@ public class SubTreeCacheTest {
         }
     }
 
-    @Test(timeout=5000)
+    @Test
     public void testNoUpdate() throws Exception {
         TestWatch watch = setWatch();
         readAssertChildren("/a/a", new String[]{"a", "b"});
         assertNotFired(watch);
     }
 
-    @Test(timeout=5000)
+    @Test
     public void testSingleCreate() throws Exception {
         TestWatch watch = setWatch();
         readAssertChildren("/a/a", new String[]{"a", "b"});
@@ -222,7 +223,7 @@ public class SubTreeCacheTest {
         assertFired(watch);
     }
 
-    @Test(timeout=5000)
+    @Test
     public void testSingleRemoval() throws Exception {
         TestWatch watch = setWatch();
         readAssertChildren("/a/a", new String[]{"a", "b"});
@@ -230,7 +231,7 @@ public class SubTreeCacheTest {
         assertFired(watch);
     }
 
-    @Test(timeout=5000)
+    @Test
     public void testCancelation() throws Exception {
         TestWatch watch = setWatch();
         readAssertChildren("/a/a", new String[]{"a", "b"});
@@ -239,7 +240,7 @@ public class SubTreeCacheTest {
         assertNotFired(watch);
     }
 
-    @Test(timeout=5000)
+    @Test
     public void testGuardCancelation() throws Exception {
         TestWatch watch;
         try (TestWatchGuard guard = setWatchWithGuard()) {
@@ -250,7 +251,7 @@ public class SubTreeCacheTest {
         assertNotFired(watch);
     }
 
-    @Test(timeout=5000)
+    @Test
     public void testGuardCancelationExceptional() throws Exception {
         TestWatch watch = null;
         try (TestWatchGuard guard = setWatchWithGuard()) {
@@ -262,7 +263,7 @@ public class SubTreeCacheTest {
         assertNotFired(watch);
     }
 
-    @Test(timeout=5000)
+    @Test
     public void testDuplicateWatch() throws Exception {
         try (TestWatchGuard watch = setWatchWithGuard()) {
             readAssertChildren("/a/a", new String[]{"a", "b"});
@@ -275,14 +276,14 @@ public class SubTreeCacheTest {
         }
     }
 
-    @Test(timeout=5000, expected = KeeperException.class)
+    @Test(expected = NoNodeException.class)
     public void testNoNode() throws Exception {
         try (TestWatchGuard watch = setWatchWithGuard()) {
             readAssertChildren("/z/a", new String[]{});
         }
     }
 
-    @Test(timeout=5000)
+    @Test
     public void testRemoveEmptyNode() throws Exception {
         try (TestWatchGuard watch = setWatchWithGuard()) {
             readAssertChildren("/a/a/a", new String[]{});
@@ -291,7 +292,7 @@ public class SubTreeCacheTest {
         }
     }
 
-    @Test(timeout=5000)
+    @Test
     public void doubleWatch() throws Exception {
         try (TestWatchGuard watch1 = setWatchWithGuard()) {
             readAssertChildren("/a/a", new String[]{"a", "b"});
@@ -305,7 +306,7 @@ public class SubTreeCacheTest {
         }
     }
 
-    @Test(timeout=5000)
+    @Test
     public void sequentialWatch() throws Exception {
         try (TestWatchGuard watch = setWatchWithGuard()) {
             readAssertChildren("/a/a", new String[]{"a", "b"});
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/TestDiskChecker.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/TestDiskChecker.java
index b09747c..bfc9c55 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/TestDiskChecker.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/TestDiskChecker.java
@@ -100,7 +100,7 @@ public class TestDiskChecker {
      * Check disk full on non exist file. in this case it should check for
      * parent file
      */
-    @Test(timeout = 30000, expected = DiskOutOfSpaceException.class)
+    @Test(expected = DiskOutOfSpaceException.class)
     public void testCheckDiskFullOnNonExistFile() throws IOException {
         File file = createTempDir("DiskCheck", "test");
         long usableSpace = file.getUsableSpace();
@@ -114,7 +114,7 @@ public class TestDiskChecker {
     /**
      * Check disk error for file
      */
-    @Test(timeout = 30000, expected = DiskErrorException.class)
+    @Test(expected = DiskErrorException.class)
     public void testCheckDiskErrorForFile() throws Exception {
         File parent = createTempDir("DiskCheck", "test");
         File child = File.createTempFile("DiskCheck", "test", parent);
@@ -124,7 +124,7 @@ public class TestDiskChecker {
     /**
      * Check disk error for valid dir.
      */
-    @Test(timeout=60000)
+    @Test
     public void testCheckDiskErrorForDir() throws Exception {
         File parent = createTempDir("DiskCheck", "test");
         File child = File.createTempFile("DiskCheck", "test", parent);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/TestZkUtils.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/TestZkUtils.java
index ebacb3b..450da26 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/TestZkUtils.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/TestZkUtils.java
@@ -56,7 +56,7 @@ public class TestZkUtils extends TestCase {
         logger.info("Teared down test {}.", getName());
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testAsyncCreateAndDeleteFullPathOptimistic() throws IOException, KeeperException, InterruptedException {
         ZooKeeper zkc = new ZooKeeper(zkUtil.getZooKeeperConnectString(), 10000, null);
         /*
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/collections/GrowableArrayBlockingQueueTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/collections/GrowableArrayBlockingQueueTest.java
index 9fd7e84..327779c 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/collections/GrowableArrayBlockingQueueTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/util/collections/GrowableArrayBlockingQueueTest.java
@@ -96,7 +96,7 @@ public class GrowableArrayBlockingQueueTest {
         }
     }
 
-    @Test(timeout = 10000)
+    @Test
     public void blockingTake() throws Exception {
         BlockingQueue<Integer> queue = new GrowableArrayBlockingQueue<>();
 
@@ -163,7 +163,7 @@ public class GrowableArrayBlockingQueueTest {
         assertEquals(Lists.newArrayList(1, 2, 3), list);
     }
 
-    @Test(timeout = 10000)
+    @Test
     public void pollTimeout() throws Exception {
         BlockingQueue<Integer> queue = new GrowableArrayBlockingQueue<>(4);
 
@@ -181,7 +181,7 @@ public class GrowableArrayBlockingQueueTest {
         assertEquals(3, queue.poll(1, TimeUnit.HOURS).intValue());
     }
 
-    @Test(timeout = 10000)
+    @Test
     public void pollTimeout2() throws Exception {
         BlockingQueue<Integer> queue = new GrowableArrayBlockingQueue<>();
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/zookeeper/TestRetryPolicy.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/zookeeper/TestRetryPolicy.java
index 7b36ed1..1a82339 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/zookeeper/TestRetryPolicy.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/zookeeper/TestRetryPolicy.java
@@ -30,7 +30,7 @@ public class TestRetryPolicy {
         assertTrue(waitTime <= maxTime);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testExponentialBackoffRetryPolicy() throws Exception {
         RetryPolicy policy = new ExponentialBackoffRetryPolicy(1000, Integer.MAX_VALUE);
         assertTimeRange(policy.nextRetryWaitTime(30, 2000), 1000L, (long) (1000 * Math.pow(2, 31)));
@@ -41,7 +41,7 @@ public class TestRetryPolicy {
         assertTimeRange(policy.nextRetryWaitTime(129, 2000), 1000L, 4000L);
     }
 
-    @Test(timeout = 60000)
+    @Test
     public void testBoundExponentialBackoffRetryPolicy() throws Exception {
         RetryPolicy policy = new BoundExponentialBackoffRetryPolicy(1000, 2000, Integer.MAX_VALUE);
         assertTimeRange(policy.nextRetryWaitTime(30, 2000), 1000L, 2000L);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/zookeeper/TestZooKeeperClient.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/zookeeper/TestZooKeeperClient.java
index fae5888..5e9c28d 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/zookeeper/TestZooKeeperClient.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/zookeeper/TestZooKeeperClient.java
@@ -130,7 +130,7 @@ public class TestZooKeeperClient extends TestCase {
 
     }
 
-    @Test(timeout=12000)
+    @Test
     public void testReconnectAfterExipred() throws Exception {
         final CountDownLatch expireLatch = new CountDownLatch(1);
         Watcher testWatcher = new Watcher() {
@@ -190,7 +190,7 @@ public class TestZooKeeperClient extends TestCase {
         }
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testRetrySyncOperations() throws Exception {
         final int timeout = 2000;
         ZooKeeperClient client = ZooKeeperClient.createConnectedZooKeeperClient(
@@ -239,7 +239,7 @@ public class TestZooKeeperClient extends TestCase {
         logger.info("Delete children from znode " + path);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testRetryOnCreatingEphemeralZnode() throws Exception {
         final int timeout = 2000;
         ZooKeeperClient client = ZooKeeperClient.createConnectedZooKeeperClient(
@@ -262,7 +262,7 @@ public class TestZooKeeperClient extends TestCase {
         logger.info("Created znode w/ new session : " + path);
     }
 
-    @Test(timeout=60000)
+    @Test
     public void testRetryAsyncOperations() throws Exception {
         final int timeout = 2000;
         ZooKeeperClient client = ZooKeeperClient.createConnectedZooKeeperClient(
diff --git a/bookkeeper-stats-providers/twitter-finagle-provider/src/main/java/org/apache/bookkeeper/stats/twitter/finagle/CounterImpl.java b/bookkeeper-stats-providers/twitter-finagle-provider/src/main/java/org/apache/bookkeeper/stats/twitter/finagle/CounterImpl.java
index b4b8146..192474a 100644
--- a/bookkeeper-stats-providers/twitter-finagle-provider/src/main/java/org/apache/bookkeeper/stats/twitter/finagle/CounterImpl.java
+++ b/bookkeeper-stats-providers/twitter-finagle-provider/src/main/java/org/apache/bookkeeper/stats/twitter/finagle/CounterImpl.java
@@ -57,4 +57,4 @@ class CounterImpl implements Counter {
     public Long get() {
         return null; // not supported
     }
-}
\ No newline at end of file
+}
diff --git a/dev/docker/Dockerfile b/dev/docker/Dockerfile
new file mode 100644
index 0000000..f803b96
--- /dev/null
+++ b/dev/docker/Dockerfile
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+FROM maven:3.5.0-jdk-8
diff --git a/dev/docker/ci.sh b/dev/docker/ci.sh
new file mode 100755
index 0000000..bb268f8
--- /dev/null
+++ b/dev/docker/ci.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e -x -u
+
+SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+
+export IMAGE_NAME="bookkeeper/dev"
+
+pushd ${SCRIPT_DIR}
+
+docker build --rm=true -t ${IMAGE_NAME} .
+
+popd
+
+if [ "$(uname -s)" == "Linux" ]; then
+  USER_NAME=${SUDO_USER:=$USER}
+  USER_ID=$(id -u "${USER_NAME}")
+  GROUP_ID=$(id -g "${USER_NAME}")
+  LOCAL_HOME="/home/${USER_NAME}"
+else # boot2docker uid and gid
+  USER_NAME=$USER
+  USER_ID=1000
+  GROUP_ID=50
+  LOCAL_HOME="/Users/${USER_NAME}"
+fi
+
+docker build -t "${IMAGE_NAME}-${USER_NAME}" - <<UserSpecificDocker
+FROM ${IMAGE_NAME}
+RUN groupadd --non-unique -g ${GROUP_ID} ${USER_NAME} && \
+  useradd -g ${GROUP_ID} -u ${USER_ID} -k /root -m ${USER_NAME}
+ENV  HOME /home/${USER_NAME}
+UserSpecificDocker
+
+BOOKKEEPER_ROOT=${SCRIPT_DIR}/../..
+
+pushd ${BOOKKEEPER_ROOT}
+
+docker run \
+  --rm=true \
+  -w ${BOOKKEEPER_ROOT} \
+  -u "${USER}" \
+  -v "${BOOKKEEPER_ROOT}:${BOOKKEEPER_ROOT}" \
+  -v "${LOCAL_HOME}:/home/${USER_NAME}" \
+  -p 4000:4000 \
+  -e MAVEN_OPTS='-Xmx4g -Xms2g' \
+  ${IMAGE_NAME}-${USER_NAME} \
+  bash -c "mvn clean apache-rat:check package findbugs:check"
+
+popd
+
diff --git a/dev/docker/run.sh b/dev/docker/run.sh
new file mode 100755
index 0000000..dbca46c
--- /dev/null
+++ b/dev/docker/run.sh
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e -x -u
+
+SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+
+export IMAGE_NAME="bookkeeper/dev"
+
+pushd ${SCRIPT_DIR}
+
+docker build --rm=true -t ${IMAGE_NAME} .
+
+popd
+
+if [ "$(uname -s)" == "Linux" ]; then
+  USER_NAME=${SUDO_USER:=$USER}
+  USER_ID=$(id -u "${USER_NAME}")
+  GROUP_ID=$(id -g "${USER_NAME}")
+  LOCAL_HOME="/home/${USER_NAME}"
+else # boot2docker uid and gid
+  USER_NAME=$USER
+  USER_ID=1000
+  GROUP_ID=50
+  LOCAL_HOME="/Users/${USER_NAME}"
+fi
+
+docker build -t "${IMAGE_NAME}-${USER_NAME}" - <<UserSpecificDocker
+FROM ${IMAGE_NAME}
+RUN groupadd --non-unique -g ${GROUP_ID} ${USER_NAME} && \
+  useradd -g ${GROUP_ID} -u ${USER_ID} -k /root -m ${USER_NAME}
+ENV  HOME /home/${USER_NAME}
+UserSpecificDocker
+
+BOOKKEEPER_ROOT=${SCRIPT_DIR}/../..
+
+CMD="
+echo
+echo 'Welcome to Apache BookKeeper Development Env'
+echo 'To build, execute'
+echo '  mvn clean install'
+echo
+bash
+"
+
+pushd ${BOOKKEEPER_ROOT}
+
+docker run -i -t \
+  --rm=true \
+  -w ${BOOKKEEPER_ROOT} \
+  -u "${USER}" \
+  -v "${BOOKKEEPER_ROOT}:${BOOKKEEPER_ROOT}" \
+  -v "${LOCAL_HOME}:/home/${USER_NAME}" \
+  -p 4000:4000 \
+  ${IMAGE_NAME}-${USER_NAME} \
+  bash -c "${CMD}"
+
+popd
+
diff --git a/pom.xml b/pom.xml
index 8b79a51..23b0744 100644
--- a/pom.xml
+++ b/pom.xml
@@ -176,9 +176,9 @@
         <version>${maven-surefire-plugin.version}</version>
         <configuration>
           <argLine>-Xmx2G -Djava.net.preferIPv4Stack=true</argLine>
-	  <redirectTestOutputToFile>true</redirectTestOutputToFile>
-	  <reuseForks>false</reuseForks>
-	  <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
+          <redirectTestOutputToFile>true</redirectTestOutputToFile>
+          <reuseForks>false</reuseForks>
+          <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
         </configuration>
       </plugin>
       <plugin>
diff --git a/tests/backward/src/test/java/org/apache/bookkeeper/tests/backward/TestBackwardCompat.java b/tests/backward/src/test/java/org/apache/bookkeeper/tests/backward/TestBackwardCompat.java
index 92ce880..b57230d 100644
--- a/tests/backward/src/test/java/org/apache/bookkeeper/tests/backward/TestBackwardCompat.java
+++ b/tests/backward/src/test/java/org/apache/bookkeeper/tests/backward/TestBackwardCompat.java
@@ -392,7 +392,7 @@ public class TestBackwardCompat {
     /*
      * Test old cookie accessing the new version formatted cluster.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testOldCookieAccessingNewCluster() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         File ledgerDir = createTempDir("bookie", "ledger");
@@ -445,7 +445,7 @@ public class TestBackwardCompat {
      *    version due to a change in the ledger metadata format.
      *  - Otherwise, they should be compatible.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testCompat410() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         File ledgerDir = createTempDir("bookie", "ledger");
@@ -563,7 +563,7 @@ public class TestBackwardCompat {
      * - old server restarts with useHostNameAsBookieID=true.
      * - Read ledgers with old and new clients
      */
-    @Test(timeout = 60000)
+    @Test
     public void testCompatReads() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         File ledgerDir = createTempDir("bookie", "ledger");
@@ -613,7 +613,7 @@ public class TestBackwardCompat {
      * - Write ledgers with old and new clients
      * - Read ledgers written by old clients.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testCompatWrites() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         File ledgerDir = createTempDir("bookie", "ledger");
@@ -667,7 +667,7 @@ public class TestBackwardCompat {
      * - Write ledgers with old and new clients
      * - Read ledgers written by old clients.
      */
-    @Test(timeout = 60000)
+    @Test
     public void testCompatHierarchicalLedgerManager() throws Exception {
         File journalDir = createTempDir("bookie", "journal");
         File ledgerDir = createTempDir("bookie", "ledger");
diff --git a/tests/backward/src/test/java/org/apache/bookkeeper/tests/backward/TestBookieRecovery.java b/tests/backward/src/test/java/org/apache/bookkeeper/tests/backward/TestBookieRecovery.java
index 6297657..a009154 100644
--- a/tests/backward/src/test/java/org/apache/bookkeeper/tests/backward/TestBookieRecovery.java
+++ b/tests/backward/src/test/java/org/apache/bookkeeper/tests/backward/TestBookieRecovery.java
@@ -241,7 +241,7 @@ public class TestBookieRecovery extends BookKeeperClusterTestCase {
      * Test that when we try to recover a ledger which doesn't have
      * the password stored in the configuration, we don't succeed.
      */
-    @Test(timeout = 60000)
+    @Test
     public void ensurePasswordUsedForOldLedgers() throws Exception {
         // This test bases on creating old ledgers in version 4.1.0, which only
         // supports ZooKeeper based flat and hierarchical LedgerManagerFactory.

-- 
To stop receiving notification emails like this one, please contact
['"commits@bookkeeper.apache.org" <commits@bookkeeper.apache.org>'].

Mime
View raw message