Browse Source

ZOOKEEPER-2655: Improve NIOServerCnxn#isZKServerRunning to reflect the seman…

…tics correctly

Author: Rakesh Radhakrishnan <rakeshr@apache.org>

Reviewers: Edward Ribeiro <edward.ribeiro@gmail.com>, Michael Han <hanm@apache.org>

Closes #133 from rakeshadr/ZK-2655
Rakesh Radhakrishnan 8 years ago
parent
commit
f588e1982f

+ 6 - 3
src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java

@@ -426,7 +426,7 @@ public class NIOServerCnxn extends ServerCnxn {
     }
 
     private void readConnectRequest() throws IOException, InterruptedException {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             throw new IOException("ZooKeeperServer not running");
         }
         zkServer.processConnectRequest(this, incomingBuffer);
@@ -539,15 +539,18 @@ public class NIOServerCnxn extends ServerCnxn {
         if (len < 0 || len > BinaryInputArchive.maxBuffer) {
             throw new IOException("Len error " + len);
         }
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             throw new IOException("ZooKeeperServer not running");
         }
         incomingBuffer = ByteBuffer.allocate(len);
         return true;
     }
 
+    /**
+     * @return true if the server is running, false otherwise.
+     */
     boolean isZKServerRunning() {
-        return zkServer == null || !zkServer.isRunning();
+        return zkServer != null && zkServer.isRunning();
     }
 
     public long getOutstandingRequests() {

+ 4 - 1
src/java/main/org/apache/zookeeper/server/command/AbstractFourLetterCommand.java

@@ -64,8 +64,11 @@ public abstract class AbstractFourLetterCommand {
         this.zkServer = zkServer;
     }
 
+    /**
+     * @return true if the server is running, false otherwise.
+     */
     boolean isZKServerRunning() {
-        return zkServer == null || !zkServer.isRunning();
+        return zkServer != null && zkServer.isRunning();
     }
 
     public void setFactory(ServerCnxnFactory factory) {

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/CnxnStatResetCommand.java

@@ -29,7 +29,7 @@ public class CnxnStatResetCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.println(ZK_NOT_SERVING);
         } else {
             factory.resetAllConnectionStats();

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/ConfCommand.java

@@ -29,7 +29,7 @@ public class ConfCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.println(ZK_NOT_SERVING);
         } else {
             zkServer.dumpConf(pw);

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/ConsCommand.java

@@ -29,7 +29,7 @@ public class ConsCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.println(ZK_NOT_SERVING);
         } else {
             for (ServerCnxn c : factory.getConnections()) {

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/DirsCommand.java

@@ -31,7 +31,7 @@ public class DirsCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() throws IOException {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.println(ZK_NOT_SERVING);
             return;
         }

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/DumpCommand.java

@@ -30,7 +30,7 @@ public class DumpCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.println(ZK_NOT_SERVING);
         } else {
             pw.println("SessionTracker dump:");

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/IsroCommand.java

@@ -31,7 +31,7 @@ public class IsroCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.print("null");
         } else if (zkServer instanceof ReadOnlyZooKeeperServer) {
             pw.print("ro");

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/MonitorCommand.java

@@ -36,7 +36,7 @@ public class MonitorCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.println(ZK_NOT_SERVING);
             return;
         }

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/StatCommand.java

@@ -37,7 +37,7 @@ public class StatCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.println(ZK_NOT_SERVING);
         } else {
             pw.print("Zookeeper version: ");

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/StatResetCommand.java

@@ -29,7 +29,7 @@ public class StatResetCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.println(ZK_NOT_SERVING);
         } else {
             zkServer.serverStats().reset();

+ 1 - 1
src/java/main/org/apache/zookeeper/server/command/WatchCommand.java

@@ -32,7 +32,7 @@ public class WatchCommand extends AbstractFourLetterCommand {
 
     @Override
     public void commandRun() {
-        if (isZKServerRunning()) {
+        if (!isZKServerRunning()) {
             pw.println(ZK_NOT_SERVING);
         } else {
             DataTree dt = zkServer.getZKDatabase().getDataTree();