You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@bookkeeper.apache.org by GitBox <gi...@apache.org> on 2018/01/30 20:10:30 UTC

[GitHub] sijie closed pull request #1084: Lombok doesn't work with groovy

sijie closed pull request #1084: Lombok doesn't work with groovy
URL: https://github.com/apache/bookkeeper/pull/1084
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/tests/backward-compat/hierarchical-ledger-manager/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatHierarchicalLedgerManager.groovy b/tests/backward-compat/hierarchical-ledger-manager/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatHierarchicalLedgerManager.groovy
index aa9a401bb..f37614485 100644
--- a/tests/backward-compat/hierarchical-ledger-manager/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatHierarchicalLedgerManager.groovy
+++ b/tests/backward-compat/hierarchical-ledger-manager/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatHierarchicalLedgerManager.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
 
 import com.github.dockerjava.api.DockerClient
 
-import lombok.Cleanup
-
 import org.apache.bookkeeper.tests.BookKeeperClusterUtils
 import org.apache.bookkeeper.tests.MavenClassLoader
 
@@ -60,35 +58,42 @@ class TestCompatHierarchicalLedgerManager {
         Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, "4.2.0"))
 
         String zookeeper = BookKeeperClusterUtils.zookeeperConnectString(docker)
-        int numEntries = 10
-        @Cleanup def v420CL = MavenClassLoader.forBookKeeperVersion("4.2.0")
-        @Cleanup def v420BK = v420CL.newBookKeeper(zookeeper)
-
-        def ledger0 = v420BK.createLedger(3, 2, v420CL.digestType("CRC32"), PASSWD)
-        for (int i = 0; i < numEntries; i++) {
-            ledger0.addEntry(("foobar" + i).getBytes())
-        }
-        ledger0.close()
-
-        Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
-
-        BookKeeperClusterUtils.updateAllBookieConf(docker, currentVersion,
-                                                   "ledgerManagerFactoryClass",
-                                                   "org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory")
-        Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
-        @Cleanup def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
-        @Cleanup def currentBK = currentCL.newBookKeeper(zookeeper)
 
-        def ledger1 = currentBK.openLedger(ledger0.getId(), currentCL.digestType("CRC32"), PASSWD)
-        Assert.assertEquals(numEntries, ledger1.getLastAddConfirmed() + 1 /* counts from 0 */)
-        def entries = ledger1.readEntries(0, ledger1.getLastAddConfirmed())
-        int j = 0
-        while (entries.hasMoreElements()) {
-            def e = entries.nextElement()
-            Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
-            j++
+        def v420CL = MavenClassLoader.forBookKeeperVersion("4.2.0")
+        def v420BK = v420CL.newBookKeeper(zookeeper)
+        def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
+        def currentBK = currentCL.newBookKeeper(zookeeper)
+        try {
+            int numEntries = 10
+
+            def ledger0 = v420BK.createLedger(3, 2, v420CL.digestType("CRC32"), PASSWD)
+            for (int i = 0; i < numEntries; i++) {
+                ledger0.addEntry(("foobar" + i).getBytes())
+            }
+            ledger0.close()
+
+            Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+
+            BookKeeperClusterUtils.updateAllBookieConf(docker, currentVersion,
+                                                       "ledgerManagerFactoryClass",
+                                                       "org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory")
+            Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+            def ledger1 = currentBK.openLedger(ledger0.getId(), currentCL.digestType("CRC32"), PASSWD)
+            Assert.assertEquals(numEntries, ledger1.getLastAddConfirmed() + 1 /* counts from 0 */)
+            def entries = ledger1.readEntries(0, ledger1.getLastAddConfirmed())
+            int j = 0
+            while (entries.hasMoreElements()) {
+                def e = entries.nextElement()
+                Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
+                j++
+            }
+            ledger1.close()
+        } finally {
+            currentBK.close()
+            currentCL.close()
+            v420BK.close()
+            v420CL.close()
         }
-        ledger1.close()
     }
 }
diff --git a/tests/backward-compat/hostname-bookieid/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeWithHostnameBookieId.groovy b/tests/backward-compat/hostname-bookieid/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeWithHostnameBookieId.groovy
index c86e7d0a8..134d05749 100644
--- a/tests/backward-compat/hostname-bookieid/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeWithHostnameBookieId.groovy
+++ b/tests/backward-compat/hostname-bookieid/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeWithHostnameBookieId.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
 
 import com.github.dockerjava.api.DockerClient
 
-import lombok.Cleanup
-
 import org.apache.bookkeeper.tests.BookKeeperClusterUtils
 import org.apache.bookkeeper.tests.MavenClassLoader
 
@@ -80,52 +78,64 @@ class TestCompatUpgradeWithHostnameBookieId {
 
         Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, "4.1.0"))
 
-        // Write a ledger with v4.1.0 client
-        @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
-        @Cleanup def v410BK = v410CL.newBookKeeper(zookeeper)
-
-        def ledger410 = v410BK.createLedger(3, 2, v410CL.digestType("CRC32"), PASSWD)
-        writeEntries(ledger410, numEntries)
-        ledger410.close()
-
-        // Write a ledger with v4.2.0 client
-        @Cleanup def v420CL = MavenClassLoader.forBookKeeperVersion("4.2.0")
-        @Cleanup def v420BK = v420CL.newBookKeeper(zookeeper)
-
-        def ledger420 = v420BK.createLedger(3, 2, v420CL.digestType("CRC32"), PASSWD)
-        writeEntries(ledger420, numEntries)
-        ledger420.close()
-
-        // Stop bookies, change config to use hostname as id, restart with latest version
-        Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
-        BookKeeperClusterUtils.updateAllBookieConf(docker, currentVersion, "useHostNameAsBookieID", "true")
-        Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
-        // Ensure we can read ledger with v4.1.0 client
-        def ledger410r = v410BK.openLedger(ledger410.getId(), v410CL.digestType("CRC32"), PASSWD)
-        assertHasEntries(ledger410r, numEntries)
-        ledger410r.close()
-
-        // Ensure we can read ledger with v4.2.0 client
-        def ledger420r = v420BK.openLedger(ledger420.getId(), v420CL.digestType("CRC32"), PASSWD)
-        assertHasEntries(ledger420r, numEntries)
-        ledger420r.close()
-
-        // Ensure we can write and read new ledgers with all client versions
-        @Cleanup def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
-        @Cleanup def currentBK = currentCL.newBookKeeper(zookeeper)
-        oldClientVersions.each{
-            LOG.info("Testing ledger creation for version {}", it)
-            @Cleanup def oldCL = MavenClassLoader.forBookKeeperVersion(it)
-            @Cleanup def oldBK = oldCL.newBookKeeper(zookeeper)
-
-            def ledger0 = oldBK.createLedger(3, 2, oldCL.digestType("CRC32"), PASSWD)
-            writeEntries(ledger0, numEntries)
-            ledger0.close()
-
-            def ledger1 = currentBK.openLedger(ledger0.getId(), currentCL.digestType("CRC32"), PASSWD)
-            assertHasEntries(ledger1, numEntries)
-            ledger1.close()
+        def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
+        def v410BK = v410CL.newBookKeeper(zookeeper)
+        def v420CL = MavenClassLoader.forBookKeeperVersion("4.2.0")
+        def v420BK = v420CL.newBookKeeper(zookeeper)
+        def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
+        def currentBK = currentCL.newBookKeeper(zookeeper)
+
+        try {
+            // Write a ledger with v4.1.0 client
+            def ledger410 = v410BK.createLedger(3, 2, v410CL.digestType("CRC32"), PASSWD)
+            writeEntries(ledger410, numEntries)
+            ledger410.close()
+
+            // Write a ledger with v4.2.0 client
+            def ledger420 = v420BK.createLedger(3, 2, v420CL.digestType("CRC32"), PASSWD)
+            writeEntries(ledger420, numEntries)
+            ledger420.close()
+
+            // Stop bookies, change config to use hostname as id, restart with latest version
+            Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+            BookKeeperClusterUtils.updateAllBookieConf(docker, currentVersion, "useHostNameAsBookieID", "true")
+            Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+            // Ensure we can read ledger with v4.1.0 client
+            def ledger410r = v410BK.openLedger(ledger410.getId(), v410CL.digestType("CRC32"), PASSWD)
+            assertHasEntries(ledger410r, numEntries)
+            ledger410r.close()
+
+            // Ensure we can read ledger with v4.2.0 client
+            def ledger420r = v420BK.openLedger(ledger420.getId(), v420CL.digestType("CRC32"), PASSWD)
+            assertHasEntries(ledger420r, numEntries)
+            ledger420r.close()
+
+            // Ensure we can write and read new ledgers with all client versions
+            oldClientVersions.each{
+                LOG.info("Testing ledger creation for version {}", it)
+                def oldCL = MavenClassLoader.forBookKeeperVersion(it)
+                def oldBK = oldCL.newBookKeeper(zookeeper)
+                try {
+                    def ledger0 = oldBK.createLedger(3, 2, oldCL.digestType("CRC32"), PASSWD)
+                    writeEntries(ledger0, numEntries)
+                    ledger0.close()
+
+                    def ledger1 = currentBK.openLedger(ledger0.getId(), currentCL.digestType("CRC32"), PASSWD)
+                    assertHasEntries(ledger1, numEntries)
+                    ledger1.close()
+                } finally {
+                    oldBK.close()
+                    oldCL.close()
+                }
+            }
+        } finally {
+            currentBK.close()
+            currentCL.close()
+            v420BK.close()
+            v420CL.close()
+            v410BK.close()
+            v410CL.close()
         }
     }
 
diff --git a/tests/backward-compat/old-cookie-new-cluster/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeOldServerInClusterWithCookies.groovy b/tests/backward-compat/old-cookie-new-cluster/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeOldServerInClusterWithCookies.groovy
index 2756f7068..c2d72638e 100644
--- a/tests/backward-compat/old-cookie-new-cluster/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeOldServerInClusterWithCookies.groovy
+++ b/tests/backward-compat/old-cookie-new-cluster/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeOldServerInClusterWithCookies.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
 
 import com.github.dockerjava.api.DockerClient
 
-import lombok.Cleanup
-
 import org.apache.bookkeeper.tests.BookKeeperClusterUtils
 import org.apache.bookkeeper.tests.MavenClassLoader
 
@@ -51,38 +49,42 @@ class TestCompatUpgradeOldServerInClusterWithCookies {
         int numEntries = 10
 
         Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, "4.1.0"))
-        @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
-        @Cleanup def v410BK = v410CL.newBookKeeper(zookeeper)
-
-        def ledger0 = v410BK.createLedger(3, 2, v410CL.digestType("CRC32"), PASSWD)
-        for (int i = 0; i < numEntries; i++) {
-            ledger0.addEntry(("foobar" + i).getBytes())
-        }
-        ledger0.close()
-
-        Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
-
-        // format metadata
-        String bookieScript = "/opt/bookkeeper/" + currentVersion + "/bin/bookkeeper"
-        Assert.assertTrue(
-            BookKeeperClusterUtils.runOnAnyBookie(docker, bookieScript,
-                                                  "shell", "metaformat", "-nonInteractive", "-force"))
-
-        // bookies shouldn't come up because the cookie doesn't have instance id
-        Assert.assertFalse(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
-        // format bookie
-        BookKeeperClusterUtils.runOnAllBookies(docker, bookieScript,
-                                               "shell", "bookieformat", "-nonInteractive", "-force")
-
-        // bookies should come up
-        Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
-        // but data has been lost of course, we formatted everything
+        def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
+        def v410BK = v410CL.newBookKeeper(zookeeper)
         try {
-            v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
-        } catch (Exception e) {
-            // correct behaviour
+            def ledger0 = v410BK.createLedger(3, 2, v410CL.digestType("CRC32"), PASSWD)
+            for (int i = 0; i < numEntries; i++) {
+                ledger0.addEntry(("foobar" + i).getBytes())
+            }
+            ledger0.close()
+
+            Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+
+            // format metadata
+            String bookieScript = "/opt/bookkeeper/" + currentVersion + "/bin/bookkeeper"
+            Assert.assertTrue(
+                BookKeeperClusterUtils.runOnAnyBookie(docker, bookieScript,
+                                                      "shell", "metaformat", "-nonInteractive", "-force"))
+
+            // bookies shouldn't come up because the cookie doesn't have instance id
+            Assert.assertFalse(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+            // format bookie
+            BookKeeperClusterUtils.runOnAllBookies(docker, bookieScript,
+                                                   "shell", "bookieformat", "-nonInteractive", "-force")
+
+            // bookies should come up
+            Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+            // but data has been lost of course, we formatted everything
+            try {
+                v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
+            } catch (Exception e) {
+                // correct behaviour
+            }
+        } finally {
+            v410BK.close()
+            v410CL.close()
         }
     }
 }
diff --git a/tests/backward-compat/recovery-no-password/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatRecoveryNoPassword.groovy b/tests/backward-compat/recovery-no-password/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatRecoveryNoPassword.groovy
index 908c178d3..d24a890b4 100644
--- a/tests/backward-compat/recovery-no-password/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatRecoveryNoPassword.groovy
+++ b/tests/backward-compat/recovery-no-password/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatRecoveryNoPassword.groovy
@@ -27,8 +27,6 @@ import java.util.concurrent.CountDownLatch
 import java.util.concurrent.TimeUnit
 import java.util.concurrent.atomic.AtomicLong
 
-import lombok.Cleanup
-
 import org.apache.bookkeeper.client.BKException
 import org.apache.bookkeeper.client.BookKeeper
 import org.apache.bookkeeper.client.BookKeeperAdmin
@@ -158,96 +156,100 @@ class TestCompatRecoveryNoPassword {
         BookKeeperClusterUtils.legacyMetadataFormat(docker)
 
         // Create a 4.1.0 client, will update /ledgers/LAYOUT
-        @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
-        def v410Conf = v410CL.newInstance("org.apache.bookkeeper.conf.ClientConfiguration")
-        v410Conf.setZkServers(zookeeper).setLedgerManagerType("hierarchical")
-        def v410BK = v410CL.newInstance("org.apache.bookkeeper.client.BookKeeper", v410Conf)
-
-        // Start bookies
-        def bookieContainers = new ArrayList<>(DockerUtils.cubeIdsMatching("bookkeeper"))
-        Assert.assertTrue(bookieContainers.size() >= 3)
-        Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
-                docker, bookieContainers.get(0), currentVersion))
-        Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
-                docker, bookieContainers.get(1), currentVersion))
-
-        // recreate bk client so that it reads bookie list
-        v410BK.close()
-        v410BK = v410CL.newBookKeeper(zookeeper)
-
-        // Write a ledger
-        def ledger0 = v410BK.createLedger(2, 2,
-                                          v410CL.digestType("MAC"), passwdCorrect)
-        for (int i = 0; i < numEntries; i++) {
-            ledger0.addEntry("foobar".getBytes())
-        }
-        ledger0.close()
-        v410BK.close()
-
-        // start a new bookie, and kill one of the initial 2
-        def failedBookieId = new BookieSocketAddress(
-            DockerUtils.getContainerIP(docker, bookieContainers.get(0)), 3181)
-        Assert.assertTrue(BookKeeperClusterUtils.stopBookie(
-                docker, bookieContainers.get(0)))
-        Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
-                docker, bookieContainers.get(2), currentVersion))
-
-        def bkCur = new BookKeeper(zookeeper)
-
-        LedgerHandle lh = bkCur.openLedgerNoRecovery(
-            ledger0.getId(), BookKeeper.DigestType.MAC, passwdCorrect)
-        Assert.assertFalse("Should be entries missing",
-                           verifyFullyReplicated(bkCur, lh, numEntries))
-        lh.close()
-
-        ClientConfiguration adminConf = new ClientConfiguration()
-        adminConf.setZkServers(zookeeper)
-        adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.MAC)
-        adminConf.setBookieRecoveryPasswd(passwdBad)
-
-        def bka = new BookKeeperAdmin(adminConf)
+        def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
         try {
-            bka.recoverBookieData(failedBookieId)
-            Assert.fail("Shouldn't be able to recover with wrong password")
-        } catch (BKException bke) {
-            // correct behaviour
-        } finally {
-            bka.close();
-        }
-
-        adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.CRC32)
-        adminConf.setBookieRecoveryPasswd(passwdCorrect)
-
-        bka = new BookKeeperAdmin(adminConf)
-        try {
-            bka.recoverBookieData(failedBookieId)
-            Assert.fail("Shouldn't be able to recover with wrong digest")
-        } catch (BKException bke) {
-            // correct behaviour
-        } finally {
-            bka.close();
-        }
+            def v410Conf = v410CL.newInstance("org.apache.bookkeeper.conf.ClientConfiguration")
+            v410Conf.setZkServers(zookeeper).setLedgerManagerType("hierarchical")
+            def v410BK = v410CL.newInstance("org.apache.bookkeeper.client.BookKeeper", v410Conf)
+
+            // Start bookies
+            def bookieContainers = new ArrayList<>(DockerUtils.cubeIdsMatching("bookkeeper"))
+            Assert.assertTrue(bookieContainers.size() >= 3)
+            Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
+                    docker, bookieContainers.get(0), currentVersion))
+            Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
+                    docker, bookieContainers.get(1), currentVersion))
+
+            // recreate bk client so that it reads bookie list
+            v410BK.close()
+            v410BK = v410CL.newBookKeeper(zookeeper)
+
+            // Write a ledger
+            def ledger0 = v410BK.createLedger(2, 2,
+                                              v410CL.digestType("MAC"), passwdCorrect)
+            for (int i = 0; i < numEntries; i++) {
+                ledger0.addEntry("foobar".getBytes())
+            }
+            ledger0.close()
+            v410BK.close()
+
+            // start a new bookie, and kill one of the initial 2
+            def failedBookieId = new BookieSocketAddress(
+                DockerUtils.getContainerIP(docker, bookieContainers.get(0)), 3181)
+            Assert.assertTrue(BookKeeperClusterUtils.stopBookie(
+                    docker, bookieContainers.get(0)))
+            Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
+                    docker, bookieContainers.get(2), currentVersion))
+
+            def bkCur = new BookKeeper(zookeeper)
+            LedgerHandle lh = bkCur.openLedgerNoRecovery(
+                ledger0.getId(), BookKeeper.DigestType.MAC, passwdCorrect)
+            Assert.assertFalse("Should be entries missing",
+                               verifyFullyReplicated(bkCur, lh, numEntries))
+            lh.close()
+
+            ClientConfiguration adminConf = new ClientConfiguration()
+            adminConf.setZkServers(zookeeper)
+            adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.MAC)
+            adminConf.setBookieRecoveryPasswd(passwdBad)
+
+            def bka = new BookKeeperAdmin(adminConf)
+            try {
+                bka.recoverBookieData(failedBookieId)
+                Assert.fail("Shouldn't be able to recover with wrong password")
+            } catch (BKException bke) {
+                // correct behaviour
+            } finally {
+                bka.close();
+            }
 
-        // Check that entries are still missing
-        lh = bkCur.openLedgerNoRecovery(ledger0.getId(),
-                                        BookKeeper.DigestType.MAC, passwdCorrect)
-        Assert.assertFalse("Should be entries missing",
-                           verifyFullyReplicated(bkCur, lh, numEntries))
-        lh.close()
+            adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.CRC32)
+            adminConf.setBookieRecoveryPasswd(passwdCorrect)
+
+            bka = new BookKeeperAdmin(adminConf)
+            try {
+                bka.recoverBookieData(failedBookieId)
+                Assert.fail("Shouldn't be able to recover with wrong digest")
+            } catch (BKException bke) {
+                // correct behaviour
+            } finally {
+                bka.close();
+            }
 
+            // Check that entries are still missing
+            lh = bkCur.openLedgerNoRecovery(ledger0.getId(),
+                                            BookKeeper.DigestType.MAC, passwdCorrect)
+            Assert.assertFalse("Should be entries missing",
+                               verifyFullyReplicated(bkCur, lh, numEntries))
+            lh.close()
 
-        // Set correct password and mac, recovery will work
-        adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.MAC)
-        adminConf.setBookieRecoveryPasswd(passwdCorrect)
 
-        bka = new BookKeeperAdmin(adminConf)
-        bka.recoverBookieData(failedBookieId)
-        bka.close()
+            // Set correct password and mac, recovery will work
+            adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.MAC)
+            adminConf.setBookieRecoveryPasswd(passwdCorrect)
 
-        lh = bkCur.openLedgerNoRecovery(ledger0.getId(),
-                                        BookKeeper.DigestType.MAC, passwdCorrect)
-        Assert.assertTrue("Should have recovered everything",
-                          verifyFullyReplicated(bkCur, lh, numEntries))
-        lh.close()
+            bka = new BookKeeperAdmin(adminConf)
+            bka.recoverBookieData(failedBookieId)
+            bka.close()
+
+            lh = bkCur.openLedgerNoRecovery(ledger0.getId(),
+                                            BookKeeper.DigestType.MAC, passwdCorrect)
+            Assert.assertTrue("Should have recovered everything",
+                              verifyFullyReplicated(bkCur, lh, numEntries))
+            lh.close()
+            bkCur.close()
+        } finally {
+            v410CL.close()
+        }
     }
 }
diff --git a/tests/backward-compat/upgrade-direct/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeDirect.groovy b/tests/backward-compat/upgrade-direct/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeDirect.groovy
index 1a8132612..2fe675e14 100644
--- a/tests/backward-compat/upgrade-direct/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeDirect.groovy
+++ b/tests/backward-compat/upgrade-direct/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeDirect.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
 
 import com.github.dockerjava.api.DockerClient
 
-import lombok.Cleanup
-
 import org.apache.bookkeeper.tests.BookKeeperClusterUtils
 import org.apache.bookkeeper.tests.MavenClassLoader
 
@@ -52,43 +50,49 @@ class TestCompatUpgradeDirect {
         int numEntries = 10
 
         Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, "4.1.0"))
-        @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
-        @Cleanup def v410BK = v410CL.newBookKeeper(zookeeper)
-
-        def ledger0 = v410BK.createLedger(3, 2,
-                                          v410CL.digestType("CRC32"),
-                                          PASSWD)
-        for (int i = 0; i < numEntries; i++) {
-            ledger0.addEntry(("foobar" + i).getBytes())
-        }
-        ledger0.close()
-
-        // Current client shouldn't be able to write to 4.1.0 server
-        @Cleanup def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
-        @Cleanup def currentBK = currentCL.newBookKeeper(zookeeper)
-        def ledger1 = currentBK.createLedger(3, 2, currentCL.digestType("CRC32"), PASSWD)
+        def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
+        def v410BK = v410CL.newBookKeeper(zookeeper)
+        def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
+        def currentBK = currentCL.newBookKeeper(zookeeper)
         try {
-            ledger1.addEntry("foobar".getBytes())
-
-            Assert.fail("Shouldn't have been able to write")
-        } catch (Exception e) {
-            // correct behaviour
+            def ledger0 = v410BK.createLedger(3, 2,
+                                              v410CL.digestType("CRC32"),
+                                              PASSWD)
+            for (int i = 0; i < numEntries; i++) {
+                ledger0.addEntry(("foobar" + i).getBytes())
+            }
+            ledger0.close()
+
+            // Current client shouldn't be able to write to 4.1.0 server
+            def ledger1 = currentBK.createLedger(3, 2, currentCL.digestType("CRC32"), PASSWD)
+            try {
+                ledger1.addEntry("foobar".getBytes())
+
+                Assert.fail("Shouldn't have been able to write")
+            } catch (Exception e) {
+                // correct behaviour
+            }
+
+            Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+            Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+            // check that old client can read its old ledgers on new server
+            def ledger2 = v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
+            Assert.assertEquals(numEntries, ledger2.getLastAddConfirmed() + 1 /* counts from 0 */)
+            def entries = ledger2.readEntries(0, ledger2.getLastAddConfirmed())
+            int j = 0
+            while (entries.hasMoreElements()) {
+                def e = entries.nextElement()
+                Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
+                j++
+            }
+            ledger2.close()
+        } finally {
+            currentBK.close()
+            currentCL.close()
+            v410BK.close()
+            v410CL.close()
         }
-
-        Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
-        Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
-        // check that old client can read its old ledgers on new server
-        def ledger2 = v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
-        Assert.assertEquals(numEntries, ledger2.getLastAddConfirmed() + 1 /* counts from 0 */)
-        def entries = ledger2.readEntries(0, ledger2.getLastAddConfirmed())
-        int j = 0
-        while (entries.hasMoreElements()) {
-            def e = entries.nextElement()
-            Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
-            j++
-        }
-        ledger2.close()
     }
 
     @Test
@@ -96,26 +100,32 @@ class TestCompatUpgradeDirect {
         String currentVersion = System.getProperty("currentVersion")
         String zookeeper = BookKeeperClusterUtils.zookeeperConnectString(docker)
 
-        @Cleanup def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
-        @Cleanup def currentBK = currentCL.newBookKeeper(zookeeper)
-
-        def numEntries = 5
-        def ledger0 = currentBK.createLedger(3, 2,
-                                             currentCL.digestType("CRC32"),
-                                             PASSWD)
-        for (int i = 0; i < numEntries; i++) {
-            ledger0.addEntry(("foobar" + i).getBytes())
-        }
-        ledger0.close()
-
-        @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
-        @Cleanup def v410BK = v410CL.newBookKeeper(zookeeper)
+        def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
+        def currentBK = currentCL.newBookKeeper(zookeeper)
+        def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
+        def v410BK = v410CL.newBookKeeper(zookeeper)
 
         try {
-            def ledger1 = v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
-            Assert.fail("Shouldn't have been able to open")
-        } catch (Exception e) {
-            // correct behaviour
+            def numEntries = 5
+            def ledger0 = currentBK.createLedger(3, 2,
+                                                 currentCL.digestType("CRC32"),
+                                                 PASSWD)
+            for (int i = 0; i < numEntries; i++) {
+                ledger0.addEntry(("foobar" + i).getBytes())
+            }
+            ledger0.close()
+
+            try {
+                def ledger1 = v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
+                Assert.fail("Shouldn't have been able to open")
+            } catch (Exception e) {
+                // correct behaviour
+            }
+        } finally {
+            v410BK.close()
+            v410CL.close()
+            currentBK.close()
+            currentCL.close()
         }
     }
 }
diff --git a/tests/backward-compat/upgrade/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgrade.groovy b/tests/backward-compat/upgrade/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgrade.groovy
index 76b02d8e0..7933c2f1e 100644
--- a/tests/backward-compat/upgrade/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgrade.groovy
+++ b/tests/backward-compat/upgrade/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgrade.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
 
 import com.github.dockerjava.api.DockerClient
 
-import lombok.Cleanup
-
 import org.apache.bookkeeper.tests.BookKeeperClusterUtils
 import org.apache.bookkeeper.tests.MavenClassLoader
 
@@ -49,48 +47,55 @@ class TestCompatUpgrade {
         String zookeeper = BookKeeperClusterUtils.zookeeperConnectString(docker)
         LOG.info("Upgrading from {} to {}", currentlyRunning, upgradeTo)
         int numEntries = 10
-        @Cleanup def currentRunningCL = MavenClassLoader.forBookKeeperVersion(currentlyRunning)
-        @Cleanup def currentRunningBK = currentRunningCL.newBookKeeper(zookeeper)
-
-        def ledger0 = currentRunningBK.createLedger(3, 2,
-                                                    currentRunningCL.digestType("CRC32"),
-                                                    PASSWD)
-        for (int i = 0; i < numEntries; i++) {
-            ledger0.addEntry(("foobar" + i).getBytes())
-        }
-        ledger0.close()
+        def currentRunningCL = MavenClassLoader.forBookKeeperVersion(currentlyRunning)
+        def currentRunningBK = currentRunningCL.newBookKeeper(zookeeper)
+        def upgradedCL = MavenClassLoader.forBookKeeperVersion(upgradeTo)
+        def upgradedBK = upgradedCL.newBookKeeper(zookeeper)
 
-        // Check whether current client can write to old server
-        @Cleanup def upgradedCL = MavenClassLoader.forBookKeeperVersion(upgradeTo)
-        @Cleanup def upgradedBK = upgradedCL.newBookKeeper(zookeeper)
-        def ledger1 = upgradedBK.createLedger(3, 2, upgradedCL.digestType("CRC32"), PASSWD)
         try {
-            ledger1.addEntry("foobar".getBytes())
-
-            if (clientCompatBroken) {
-                Assert.fail("Shouldn't have been able to write")
+            def ledger0 = currentRunningBK.createLedger(3, 2,
+                                                        currentRunningCL.digestType("CRC32"),
+                                                        PASSWD)
+            for (int i = 0; i < numEntries; i++) {
+                ledger0.addEntry(("foobar" + i).getBytes())
             }
-        } catch (Exception e) {
-            if (!clientCompatBroken) {
-                throw e;
+            ledger0.close()
+
+            // Check whether current client can write to old server
+            def ledger1 = upgradedBK.createLedger(3, 2, upgradedCL.digestType("CRC32"), PASSWD)
+            try {
+                ledger1.addEntry("foobar".getBytes())
+
+                if (clientCompatBroken) {
+                    Assert.fail("Shouldn't have been able to write")
+                }
+            } catch (Exception e) {
+                if (!clientCompatBroken) {
+                    throw e;
+                }
             }
-        }
 
-        Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
-        Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, upgradeTo))
-
-        // check that old client can read its old ledgers on new server
-        def ledger2 = currentRunningBK.openLedger(ledger0.getId(), currentRunningCL.digestType("CRC32"),
-                                                  PASSWD)
-        Assert.assertEquals(numEntries, ledger2.getLastAddConfirmed() + 1 /* counts from 0 */)
-        def entries = ledger2.readEntries(0, ledger2.getLastAddConfirmed())
-        int j = 0
-        while (entries.hasMoreElements()) {
-            def e = entries.nextElement()
-            Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
-            j++
+            Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+            Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, upgradeTo))
+
+            // check that old client can read its old ledgers on new server
+            def ledger2 = currentRunningBK.openLedger(ledger0.getId(), currentRunningCL.digestType("CRC32"),
+                                                      PASSWD)
+            Assert.assertEquals(numEntries, ledger2.getLastAddConfirmed() + 1 /* counts from 0 */)
+            def entries = ledger2.readEntries(0, ledger2.getLastAddConfirmed())
+            int j = 0
+            while (entries.hasMoreElements()) {
+                def e = entries.nextElement()
+                Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
+                j++
+            }
+            ledger2.close()
+        } finally {
+            upgradedBK.close()
+            upgradedCL.close()
+            currentRunningBK.close()
+            currentRunningCL.close()
         }
-        ledger2.close()
     }
 
     @Test


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services