Package org.apache.accumulo.core.util

Examples of org.apache.accumulo.core.util.BadArgumentException


        switch (expression[index++]) {
          case '&': {
            expr = processTerm(subtermStart, index - 1, expr, expression);
            if (result != null) {
              if (!result.type.equals(NodeType.AND))
                throw new BadArgumentException("cannot mix & and |", new String(expression, Constants.UTF8), index - 1);
            } else {
              result = new Node(NodeType.AND, wholeTermStart);
            }
            result.add(expr);
            expr = null;
            subtermStart = index;
            subtermComplete = false;
            break;
          }
          case '|': {
            expr = processTerm(subtermStart, index - 1, expr, expression);
            if (result != null) {
              if (!result.type.equals(NodeType.OR))
                throw new BadArgumentException("cannot mix | and &", new String(expression, Constants.UTF8), index - 1);
            } else {
              result = new Node(NodeType.OR, wholeTermStart);
            }
            result.add(expr);
            expr = null;
            subtermStart = index;
            subtermComplete = false;
            break;
          }
          case '(': {
            parens++;
            if (subtermStart != index - 1 || expr != null)
              throw new BadArgumentException("expression needs & or |", new String(expression, Constants.UTF8), index - 1);
            expr = parse_(expression);
            subtermStart = index;
            subtermComplete = false;
            break;
          }
          case ')': {
            parens--;
            Node child = processTerm(subtermStart, index - 1, expr, expression);
            if (child == null && result == null)
              throw new BadArgumentException("empty expression not allowed", new String(expression, Constants.UTF8), index);
            if (result == null)
              return child;
            if (result.type == child.type)
              for (Node c : child.children)
                result.add(c);
            else
              result.add(child);
            result.end = index - 1;
            return result;
          }
          case '"': {
            if (subtermStart != index - 1)
              throw new BadArgumentException("expression needs & or |", new String(expression, Constants.UTF8), index - 1);
           
            while (index < expression.length && expression[index] != '"') {
              if (expression[index] == '\\') {
                index++;
                if (expression[index] != '\\' && expression[index] != '"')
                  throw new BadArgumentException("invalid escaping within quotes", new String(expression, Constants.UTF8), index - 1);
              }
              index++;
            }
           
            if (index == expression.length)
              throw new BadArgumentException("unclosed quote", new String(expression, Constants.UTF8), subtermStart);
           
            if (subtermStart + 1 == index)
              throw new BadArgumentException("empty term", new String(expression, Constants.UTF8), subtermStart);
            index++;
           
            subtermComplete = true;
           
            break;
          }
          default: {
            if (subtermComplete)
              throw new BadArgumentException("expression needs & or |", new String(expression, Constants.UTF8), index - 1);
           
            byte c = expression[index - 1];
            if (!Authorizations.isValidAuthChar(c))
              throw new BadArgumentException("bad character (" + c + ")", new String(expression, Constants.UTF8), index - 1);
          }
        }
      }
      Node child = processTerm(subtermStart, index, expr, expression);
      if (result != null) {
        result.add(child);
        result.end = index;
      } else
        result = child;
      if (result.type != NodeType.TERM)
        if (result.children.size() < 2)
          throw new BadArgumentException("missing term", new String(expression, Constants.UTF8), index);
      return result;
    }
View Full Code Here


        ++exitCode;
        printException(e);
      }
    } else {
      ++exitCode;
      printException(new BadArgumentException("Unrecognized empty command", command, -1));
    }
    reader.flush();
  }
View Full Code Here

   
    Node parse(byte[] expression) {
      if (expression.length > 0) {
        Node node = parse_(expression);
        if (node == null) {
          throw new BadArgumentException("operator or missing parens", new String(expression), index - 1);
        }
        if (parens != 0) {
          throw new BadArgumentException("parenthesis mis-match", new String(expression), index - 1);
        }
        return node;
      }
      return null;
    }
View Full Code Here

    }
   
    Node processTerm(int start, int end, Node expr, byte[] expression) {
      if (start != end) {
        if (expr != null)
          throw new BadArgumentException("expression needs | or &", new String(expression), start);
        return new Node(start, end);
      }
      if (expr == null)
        throw new BadArgumentException("empty term", new String(expression), start);
      return expr;
    }
View Full Code Here

        switch (expression[index++]) {
          case '&': {
            expr = processTerm(termStart, index - 1, expr, expression);
            if (result != null) {
              if (!result.type.equals(NodeType.AND))
                throw new BadArgumentException("cannot mix & and |", new String(expression), index - 1);
            } else {
              result = new Node(NodeType.AND);
            }
            result.add(expr);
            expr = null;
            termStart = index;
            break;
          }
          case '|': {
            expr = processTerm(termStart, index - 1, expr, expression);
            if (result != null) {
              if (!result.type.equals(NodeType.OR))
                throw new BadArgumentException("cannot mix | and &", new String(expression), index - 1);
            } else {
              result = new Node(NodeType.OR);
            }
            result.add(expr);
            expr = null;
            termStart = index;
            break;
          }
          case '(': {
            parens++;
            if (termStart != index - 1 || expr != null)
              throw new BadArgumentException("expression needs & or |", new String(expression), index - 1);
            expr = parse_(expression);
            termStart = index;
            break;
          }
          case ')': {
            parens--;
            Node child = processTerm(termStart, index - 1, expr, expression);
            if (child == null && result == null)
              throw new BadArgumentException("empty expression not allowed", new String(expression), index);
            if (result == null)
              return child;
            if (result.type == child.type)
              for (Node c : child.children)
                result.add(c);
            else
              result.add(child);
            result.end = index - 1;
            return result;
          }
          default: {
            byte c = expression[index - 1];
            if (!Authorizations.isValidAuthChar(c))
              throw new BadArgumentException("bad character (" + c + ")", new String(expression), index - 1);
          }
        }
      }
      Node child = processTerm(termStart, index, expr, expression);
      if (result != null)
        result.add(child);
      else
        result = child;
      if (result.type != NodeType.TERM)
        if (result.children.length < 2)
          throw new BadArgumentException("missing term", new String(expression), index);
      return result;
    }
View Full Code Here

            }
          } else {
            shellState.reader.printString("Not tracing\n");
          }
        } else
          throw new BadArgumentException("Argument must be 'on' or 'off'", fullCommand, fullCommand.indexOf(cl.getArgs()[0]));
      } else if (cl.getArgs().length == 0) {
        shellState.reader.printString(Trace.isTracing() ? "on\n" : "off\n");
      } else {
        printException(new IllegalArgumentException("Expected 0 or 1 argument. There were " + cl.getArgs().length + "."));
        printHelp();
View Full Code Here

     
      if (cl.hasOption(deleteOpt.getOpt())) {
        // delete property from table
        String property = cl.getOptionValue(deleteOpt.getOpt());
        if (property.contains("="))
          throw new BadArgumentException("Invalid '=' operator in delete operation.", fullCommand, fullCommand.indexOf('='));
        if (tableName != null) {
          if (!Property.isValidTablePropertyKey(property))
            log.warn("Invalid per-table property : " + property + ", still removing from zookeeper if its there.");
          shellState.connector.tableOperations().removeProperty(tableName, property);
          log.debug("Successfully deleted table configuration option.");
        } else {
          if (!Property.isValidZooPropertyKey(property))
            log.warn("Invalid per-table property : " + property + ", still removing from zookeeper if its there.");
          shellState.connector.instanceOperations().removeProperty(property);
          log.debug("Successfully deleted system configuration option");
        }
      } else if (cl.hasOption(setOpt.getOpt())) {
        // set property on table
        String property = cl.getOptionValue(setOpt.getOpt()), value = null;
        if (!property.contains("="))
          throw new BadArgumentException("Missing '=' operator in set operation.", fullCommand, fullCommand.indexOf(property));
       
        String pair[] = property.split("=", 2);
        property = pair[0];
        value = pair[1];
       
        if (tableName != null) {
          if (!Property.isValidTablePropertyKey(property))
            throw new BadArgumentException("Invalid per-table property.", fullCommand, fullCommand.indexOf(property));
         
          if (property.equals(Property.TABLE_DEFAULT_SCANTIME_VISIBILITY.getKey()))
            new ColumnVisibility(value); // validate that it is a valid
          // expression
         
          shellState.connector.tableOperations().setProperty(tableName, property, value);
          log.debug("Successfully set table configuration option.");
        } else {
          if (!Property.isValidZooPropertyKey(property))
            throw new BadArgumentException("Property cannot be modified in zookeepr", fullCommand, fullCommand.indexOf(property));
         
          shellState.connector.instanceOperations().setProperty(property, value);
          log.debug("Successfully set system configuration option");
        }
      } else {
View Full Code Here

         
          EscapeTokenizer colToks = new EscapeTokenizer(col, ":");
          Iterator<String> tokIter = colToks.iterator();
          Text cf = null, cq = null;
          if (colToks.count() < 1 || colToks.count() > 2)
            throw new BadArgumentException("column must be in the format cf[:cq]", fullCommand, fullCommand.indexOf(col));
          cf = new Text(tokIter.next());
          if (colToks.count() == 2)
            cq = new Text(tokIter.next());
         
          aggregators.add(new AggregatorConfiguration(cf, cq, className));
View Full Code Here

  public static class DropUserCommand extends Command {
    @Override
    public int execute(String fullCommand, CommandLine cl, Shell shellState) throws AccumuloException, AccumuloSecurityException {
      String user = cl.getArgs()[0];
      if (shellState.connector.whoami().equals(user))
        throw new BadArgumentException("You cannot delete yourself", fullCommand, fullCommand.indexOf(user));
      shellState.connector.securityOperations().dropUser(user);
      log.debug("Deleted user " + user);
      return 0;
    }
View Full Code Here

      if (cl.hasOption(systemOpt.getOpt()) && permission[0].equalsIgnoreCase("System")) {
        try {
          shellState.connector.securityOperations().grantSystemPermission(user, SystemPermission.valueOf(permission[1]));
          log.debug("Granted " + user + " the " + permission[1] + " permission");
        } catch (IllegalArgumentException e) {
          throw new BadArgumentException("No such system permission", fullCommand, fullCommand.indexOf(cl.getArgs()[0]));
        }
      } else if (permission[0].equalsIgnoreCase("Table")) {
        if (cl.hasOption(tableOpt.getOpt())) {
          String tableName = cl.getOptionValue(tableOpt.getOpt());
          try {
            shellState.connector.securityOperations().grantTablePermission(user, tableName, TablePermission.valueOf(permission[1]));
            log.debug("Granted " + user + " the " + permission[1] + " permission on table " + tableName);
          } catch (IllegalArgumentException e) {
            throw new BadArgumentException("No such table permission", fullCommand, fullCommand.indexOf(cl.getArgs()[0]));
          }
        } else if (cl.hasOption(tablePatternOpt.getOpt())) {
          for (String tableName : shellState.connector.tableOperations().list()) {
            if (tableName.matches(cl.getOptionValue(tablePatternOpt.getOpt()))) {
              try {
                shellState.connector.securityOperations().grantTablePermission(user, tableName, TablePermission.valueOf(permission[1]));
                log.debug("Granted " + user + " the " + permission[1] + " permission on table " + tableName);
              } catch (IllegalArgumentException e) {
                throw new BadArgumentException("No such table permission", fullCommand, fullCommand.indexOf(cl.getArgs()[0]));
              }
            }
          }
        } else {
          throw new BadArgumentException("You must provide a table name", fullCommand, fullCommand.indexOf(cl.getArgs()[0]));
        }
      } else {
        throw new BadArgumentException("Unrecognized permission", fullCommand, fullCommand.indexOf(cl.getArgs()[0]));
      }
      return 0;
    }
View Full Code Here

TOP

Related Classes of org.apache.accumulo.core.util.BadArgumentException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.