Skip to content

Commit 9620c67

Browse files
committed
ZOOKEEPER-5012: guard zkDb close in QuorumPeer shutdown
1 parent e907bac commit 9620c67

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1645,10 +1645,12 @@ public void shutdown() {
16451645
this.interrupt();
16461646
getElectionAlg().shutdown();
16471647
}
1648-
try {
1649-
zkDb.close();
1650-
} catch (IOException ie) {
1651-
LOG.warn("Error closing logs ", ie);
1648+
if (zkDb != null) {
1649+
try {
1650+
zkDb.close();
1651+
} catch (IOException ie) {
1652+
LOG.warn("Error closing logs ", ie);
1653+
}
16521654
}
16531655
}
16541656

zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ public void testQuorumPeerListendOnSpecifiedClientIP(@TempDir File dataDir) thro
7676
peer2.shutdown();
7777
}
7878

79+
@Test
80+
public void testShutdownWithoutZkDbDoesNotThrow() throws Exception {
81+
QuorumPeer peer = new QuorumPeer();
82+
peer.shutdown();
83+
}
84+
7985
@Test
8086
public void testLocalPeerIsLeader() throws Exception {
8187
long localPeerId = 7;

0 commit comments

Comments
 (0)