CliWrapperException.java
/*
* 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.
*/
package org.apache.zookeeper.cli;
import org.apache.zookeeper.KeeperException;
@SuppressWarnings("serial")
public class CliWrapperException extends CliException {
public CliWrapperException(Throwable cause) {
super(getMessage(cause), cause);
}
private static String getMessage(Throwable cause) {
if (cause instanceof KeeperException) {
KeeperException keeperException = (KeeperException) cause;
if (keeperException instanceof KeeperException.NoNodeException) {
return "Node does not exist: " + keeperException.getPath();
} else if (keeperException instanceof KeeperException.NoChildrenForEphemeralsException) {
return "Ephemerals cannot have children: " + keeperException.getPath();
} else if (keeperException instanceof KeeperException.NodeExistsException) {
return "Node already exists: " + keeperException.getPath();
} else if (keeperException instanceof KeeperException.NotEmptyException) {
return "Node not empty: " + keeperException.getPath();
} else if (keeperException instanceof KeeperException.NotReadOnlyException) {
return "Not a read-only call: " + keeperException.getPath();
} else if (keeperException instanceof KeeperException.InvalidACLException) {
return "Acl is not valid : " + keeperException.getPath();
} else if (keeperException instanceof KeeperException.NoAuthException) {
return "Insufficient permission : " + keeperException.getPath();
} else if (keeperException instanceof KeeperException.BadArgumentsException) {
return "Arguments are not valid : " + keeperException.getPath();
} else if (keeperException instanceof KeeperException.BadVersionException) {
return "version No is not valid : " + keeperException.getPath();
} else if (keeperException instanceof KeeperException.ReconfigInProgress) {
return "Another reconfiguration is in progress -- concurrent " + "reconfigs not supported (yet)";
} else if (keeperException instanceof KeeperException.NewConfigNoQuorum) {
return "No quorum of new config is connected and "
+ "up-to-date with the leader of last committed config - try invoking reconfiguration after "
+ "new servers are connected and synced";
} else if (keeperException instanceof KeeperException.QuotaExceededException) {
return "Quota has exceeded : " + keeperException.getPath();
}
}
return cause.getMessage();
}
}