utf8 encoding, replace unix newlines for system-dependent newlines, add Serializable to comparator, and avoid Long/Short constructor use when we have a primitive already.
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/e89d6e09 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/e89d6e09 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/e89d6e09 Branch: refs/heads/2292-findbugs Commit: e89d6e09a723a18ceb29a38b6a60d9cac0a49a7a Parents: d266059 Author: Josh Elser <els...@apache.org> Authored: Fri Jan 31 12:36:18 2014 -0500 Committer: Josh Elser <els...@apache.org> Committed: Fri Jan 31 22:18:53 2014 -0500 ---------------------------------------------------------------------- .../core/security/ColumnVisibility.java | 38 ++++++++++---------- .../core/security/VisibilityConstraint.java | 5 +-- .../core/security/VisibilityParseException.java | 4 ++- .../core/trace/InstanceUserPassword.java | 3 +- .../apache/accumulo/core/trace/SpanTree.java | 2 +- .../accumulo/core/trace/ZooTraceClient.java | 2 +- .../core/util/ByteArrayBackedCharSequence.java | 3 +- .../apache/accumulo/core/util/ByteArraySet.java | 4 ++- .../accumulo/core/util/ByteBufferUtil.java | 3 +- .../org/apache/accumulo/core/util/Encoding.java | 5 +-- .../apache/accumulo/core/util/FastFormat.java | 4 ++- .../org/apache/accumulo/core/util/Merge.java | 2 +- .../accumulo/core/util/MetadataTable.java | 6 ++-- .../org/apache/accumulo/core/util/TextUtil.java | 2 +- .../apache/accumulo/core/util/shell/Shell.java | 11 +++--- .../util/shell/commands/AddSplitsCommand.java | 5 +-- .../shell/commands/AuthenticateCommand.java | 3 +- .../util/shell/commands/CreateTableCommand.java | 5 ++- .../util/shell/commands/ExecfileCommand.java | 3 +- .../util/shell/commands/GetSplitsCommand.java | 4 +-- .../core/util/shell/commands/HelpCommand.java | 2 +- .../core/util/shell/commands/HiddenCommand.java | 3 +- 22 files changed, 69 insertions(+), 50 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/security/ColumnVisibility.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/security/ColumnVisibility.java b/core/src/main/java/org/apache/accumulo/core/security/ColumnVisibility.java index 7d7daa2..bd0caba 100644 --- a/core/src/main/java/org/apache/accumulo/core/security/ColumnVisibility.java +++ b/core/src/main/java/org/apache/accumulo/core/security/ColumnVisibility.java @@ -16,6 +16,7 @@ */ package org.apache.accumulo.core.security; +import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -113,8 +114,9 @@ public class ColumnVisibility { } } - public static class NodeComparator implements Comparator<Node> { + public static class NodeComparator implements Comparator<Node>, Serializable { + private static final long serialVersionUID = 1L; byte[] text; public NodeComparator(byte[] text) { @@ -190,7 +192,7 @@ public class ColumnVisibility { */ private static void stringify(Node root, byte[] expression, StringBuilder out) { if (root.type == NodeType.TERM) { - out.append(new String(expression, root.start, root.end - root.start)); + out.append(new String(expression, root.start, root.end - root.start, Constants.UTF8)); } else { String sep = ""; for (Node c : root.children) { @@ -215,7 +217,7 @@ public class ColumnVisibility { Node normRoot = normalize(node, expression); StringBuilder builder = new StringBuilder(expression.length); stringify(normRoot, expression, builder); - return builder.toString().getBytes(); + return builder.toString().getBytes(Constants.UTF8); } private static class ColumnVisibilityParser { @@ -228,10 +230,10 @@ public class ColumnVisibility { if (expression.length > 0) { Node node = parse_(expression); if (node == null) { - throw new BadArgumentException("operator or missing parens", new String(expression), index - 1); + throw new BadArgumentException("operator or missing parens", new String(expression, Constants.UTF8), index - 1); } if (parens != 0) { - throw new BadArgumentException("parenthesis mis-match", new String(expression), index - 1); + throw new BadArgumentException("parenthesis mis-match", new String(expression, Constants.UTF8), index - 1); } return node; } @@ -241,11 +243,11 @@ public class ColumnVisibility { 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); + throw new BadArgumentException("expression needs | or &", new String(expression, Constants.UTF8), start); return new Node(start, end); } if (expr == null) - throw new BadArgumentException("empty term", new String(expression), start); + throw new BadArgumentException("empty term", new String(expression, Constants.UTF8), start); return expr; } @@ -261,7 +263,7 @@ public class ColumnVisibility { 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); + throw new BadArgumentException("cannot mix & and |", new String(expression, Constants.UTF8), index - 1); } else { result = new Node(NodeType.AND); } @@ -275,7 +277,7 @@ public class ColumnVisibility { 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); + throw new BadArgumentException("cannot mix | and &", new String(expression, Constants.UTF8), index - 1); } else { result = new Node(NodeType.OR); } @@ -288,7 +290,7 @@ public class ColumnVisibility { case '(': { parens++; if (termStart != index - 1 || expr != null) - throw new BadArgumentException("expression needs & or |", new String(expression), index - 1); + throw new BadArgumentException("expression needs & or |", new String(expression, Constants.UTF8), index - 1); expr = parse_(expression); termStart = index; termComplete = false; @@ -298,7 +300,7 @@ public class ColumnVisibility { 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); + throw new BadArgumentException("empty expression not allowed", new String(expression, Constants.UTF8), index); if (result == null) return child; if (result.type == child.type) @@ -311,22 +313,22 @@ public class ColumnVisibility { } case '"': { if (termStart != index - 1) - throw new BadArgumentException("expression needs & or |", new String(expression), 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), index - 1); + 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), termStart); + throw new BadArgumentException("unclosed quote", new String(expression, Constants.UTF8), termStart); if (termStart + 1 == index) - throw new BadArgumentException("empty term", new String(expression), termStart); + throw new BadArgumentException("empty term", new String(expression, Constants.UTF8), termStart); index++; @@ -336,11 +338,11 @@ public class ColumnVisibility { } default: { if (termComplete) - throw new BadArgumentException("expression needs & or |", new String(expression), index - 1); + 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), index - 1); + throw new BadArgumentException("bad character (" + c + ")", new String(expression, Constants.UTF8), index - 1); } } } @@ -351,7 +353,7 @@ public class ColumnVisibility { result = child; if (result.type != NodeType.TERM) if (result.children.size() < 2) - throw new BadArgumentException("missing term", new String(expression), index); + throw new BadArgumentException("missing term", new String(expression, Constants.UTF8), index); return result; } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/security/VisibilityConstraint.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/security/VisibilityConstraint.java b/core/src/main/java/org/apache/accumulo/core/security/VisibilityConstraint.java index c8b33ba..94aa1a4 100644 --- a/core/src/main/java/org/apache/accumulo/core/security/VisibilityConstraint.java +++ b/core/src/main/java/org/apache/accumulo/core/security/VisibilityConstraint.java @@ -20,6 +20,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; +import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.constraints.Constraint; import org.apache.accumulo.core.data.ColumnUpdate; import org.apache.accumulo.core.data.Mutation; @@ -54,7 +55,7 @@ public class VisibilityConstraint implements Constraint { byte[] cv = update.getColumnVisibility(); if (cv.length > 0) { String key = null; - if (ok != null && ok.contains(key = new String(cv))) + if (ok != null && ok.contains(key = new String(cv, Constants.UTF8))) continue; try { @@ -63,7 +64,7 @@ public class VisibilityConstraint implements Constraint { ve = new VisibilityEvaluator(env.getAuthorizations()); if (!ve.evaluate(new ColumnVisibility(cv))) - return Collections.singletonList(new Short((short) 2)); + return Collections.singletonList(Short.valueOf((short) 2)); } catch (BadArgumentException bae) { return Collections.singletonList(new Short((short) 1)); http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/security/VisibilityParseException.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/security/VisibilityParseException.java b/core/src/main/java/org/apache/accumulo/core/security/VisibilityParseException.java index 2f46dc9..c61faf5 100644 --- a/core/src/main/java/org/apache/accumulo/core/security/VisibilityParseException.java +++ b/core/src/main/java/org/apache/accumulo/core/security/VisibilityParseException.java @@ -18,13 +18,15 @@ package org.apache.accumulo.core.security; import java.text.ParseException; +import org.apache.accumulo.core.Constants; + public class VisibilityParseException extends ParseException { private static final long serialVersionUID = 1L; private String visibility; public VisibilityParseException(String reason, byte[] visibility, int errorOffset) { super(reason, errorOffset); - this.visibility = new String(visibility); + this.visibility = new String(visibility, Constants.UTF8); } @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/trace/InstanceUserPassword.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/trace/InstanceUserPassword.java b/core/src/main/java/org/apache/accumulo/core/trace/InstanceUserPassword.java index e9cb439..dfda097 100644 --- a/core/src/main/java/org/apache/accumulo/core/trace/InstanceUserPassword.java +++ b/core/src/main/java/org/apache/accumulo/core/trace/InstanceUserPassword.java @@ -16,6 +16,7 @@ */ package org.apache.accumulo.core.trace; +import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.Instance; public class InstanceUserPassword { @@ -26,6 +27,6 @@ public class InstanceUserPassword { public InstanceUserPassword(Instance instance, String username, String password) { this.instance = instance; this.username = username; - this.password = password.getBytes(); + this.password = password.getBytes(Constants.UTF8); } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/trace/SpanTree.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/trace/SpanTree.java b/core/src/main/java/org/apache/accumulo/core/trace/SpanTree.java index 2a5d72e..772a133 100644 --- a/core/src/main/java/org/apache/accumulo/core/trace/SpanTree.java +++ b/core/src/main/java/org/apache/accumulo/core/trace/SpanTree.java @@ -42,7 +42,7 @@ public class SpanTree { public Set<Long> visit(SpanTreeVisitor visitor) { Set<Long> visited = new HashSet<Long>(); - List<Long> root = parentChildren.get(new Long(Span.ROOT_SPAN_ID)); + List<Long> root = parentChildren.get(Long.valueOf(Span.ROOT_SPAN_ID)); if (root == null || root.isEmpty()) return visited; RemoteSpan rootSpan = nodes.get(root.iterator().next()); http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/trace/ZooTraceClient.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/trace/ZooTraceClient.java b/core/src/main/java/org/apache/accumulo/core/trace/ZooTraceClient.java index 43fa464..9fd3e22 100644 --- a/core/src/main/java/org/apache/accumulo/core/trace/ZooTraceClient.java +++ b/core/src/main/java/org/apache/accumulo/core/trace/ZooTraceClient.java @@ -73,7 +73,7 @@ public class ZooTraceClient extends SendSpansViaThrift implements Watcher { List<String> hosts = new ArrayList<String>(); for (String child : children) { byte[] data = zoo.getData(path + "/" + child, null); - hosts.add(new String(data)); + hosts.add(new String(data, Constants.UTF8)); } this.hosts.clear(); this.hosts.addAll(hosts); http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/ByteArrayBackedCharSequence.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/ByteArrayBackedCharSequence.java b/core/src/main/java/org/apache/accumulo/core/util/ByteArrayBackedCharSequence.java index f64b36c..e7fe974 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/ByteArrayBackedCharSequence.java +++ b/core/src/main/java/org/apache/accumulo/core/util/ByteArrayBackedCharSequence.java @@ -16,6 +16,7 @@ */ package org.apache.accumulo.core.util; +import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.data.ByteSequence; public class ByteArrayBackedCharSequence implements CharSequence { @@ -60,7 +61,7 @@ public class ByteArrayBackedCharSequence implements CharSequence { } public String toString() { - return new String(data, offset, len); + return new String(data, offset, len, Constants.UTF8); } public void set(ByteSequence bs) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/ByteArraySet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/ByteArraySet.java b/core/src/main/java/org/apache/accumulo/core/util/ByteArraySet.java index 68f0ae5..8b71e6f 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/ByteArraySet.java +++ b/core/src/main/java/org/apache/accumulo/core/util/ByteArraySet.java @@ -22,6 +22,8 @@ import java.util.Collection; import java.util.List; import java.util.TreeSet; +import org.apache.accumulo.core.Constants; + public class ByteArraySet extends TreeSet<byte[]> { private static final long serialVersionUID = 1L; @@ -38,7 +40,7 @@ public class ByteArraySet extends TreeSet<byte[]> { public static ByteArraySet fromStrings(Collection<String> c) { List<byte[]> lst = new ArrayList<byte[]>(); for (String s : c) - lst.add(s.getBytes()); + lst.add(s.getBytes(Constants.UTF8)); return new ByteArraySet(lst); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/ByteBufferUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/ByteBufferUtil.java b/core/src/main/java/org/apache/accumulo/core/util/ByteBufferUtil.java index 807bc95..01f76b7 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/ByteBufferUtil.java +++ b/core/src/main/java/org/apache/accumulo/core/util/ByteBufferUtil.java @@ -22,6 +22,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; +import org.apache.accumulo.core.Constants; import org.apache.hadoop.io.Text; public class ByteBufferUtil { @@ -60,6 +61,6 @@ public class ByteBufferUtil { } public static String toString(ByteBuffer bytes) { - return new String(bytes.array(), bytes.position(), bytes.remaining()); + return new String(bytes.array(), bytes.position(), bytes.remaining(), Constants.UTF8); } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/Encoding.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/Encoding.java b/core/src/main/java/org/apache/accumulo/core/util/Encoding.java index 1c8cb5d..451d4d6 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/Encoding.java +++ b/core/src/main/java/org/apache/accumulo/core/util/Encoding.java @@ -16,13 +16,14 @@ */ package org.apache.accumulo.core.util; +import org.apache.accumulo.core.Constants; import org.apache.commons.codec.binary.Base64; import org.apache.hadoop.io.Text; public class Encoding { public static String encodeAsBase64FileName(Text data) { - String encodedRow = new String(Base64.encodeBase64(TextUtil.getBytes(data))); + String encodedRow = new String(Base64.encodeBase64(TextUtil.getBytes(data)), Constants.UTF8); encodedRow = encodedRow.replace('/', '_').replace('+', '-'); int index = encodedRow.length() - 1; @@ -39,7 +40,7 @@ public class Encoding { node = node.replace('_', '/').replace('-', '+'); - return Base64.decodeBase64(node.getBytes()); + return Base64.decodeBase64(node.getBytes(Constants.UTF8)); } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java b/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java index 496ca95..8c3e416 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java @@ -16,12 +16,14 @@ */ package org.apache.accumulo.core.util; +import org.apache.accumulo.core.Constants; + public class FastFormat { // this 7 to 8 times faster than String.format("%s%06d",prefix, num) public static byte[] toZeroPaddedString(long num, int width, int radix, byte[] prefix) { byte ret[] = new byte[width + prefix.length]; if (toZeroPaddedString(ret, 0, num, width, radix, prefix) != ret.length) - throw new RuntimeException(" Did not format to expected width " + num + " " + width + " " + radix + " " + new String(prefix)); + throw new RuntimeException(" Did not format to expected width " + num + " " + width + " " + radix + " " + new String(prefix, Constants.UTF8)); return ret; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/Merge.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/Merge.java b/core/src/main/java/org/apache/accumulo/core/util/Merge.java index 5ec7a9a..b6cb07f 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/Merge.java +++ b/core/src/main/java/org/apache/accumulo/core/util/Merge.java @@ -233,7 +233,7 @@ public class Merge { Entry<Key,Value> entry = iterator.next(); Key key = entry.getKey(); if (key.getColumnFamily().equals(Constants.METADATA_DATAFILE_COLUMN_FAMILY)) { - String[] sizeEntries = new String(entry.getValue().get()).split(","); + String[] sizeEntries = new String(entry.getValue().get(), Constants.UTF8).split(","); if (sizeEntries.length == 2) { tabletSize += Long.parseLong(sizeEntries[0]); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/MetadataTable.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/MetadataTable.java b/core/src/main/java/org/apache/accumulo/core/util/MetadataTable.java index e94ef35..fdc7eef 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/MetadataTable.java +++ b/core/src/main/java/org/apache/accumulo/core/util/MetadataTable.java @@ -61,7 +61,7 @@ public class MetadataTable { } public DataFileValue(byte[] encodedDFV) { - String[] ba = new String(encodedDFV).split(","); + String[] ba = new String(encodedDFV, Constants.UTF8).split(","); size = Long.parseLong(ba[0]); numEntries = Long.parseLong(ba[1]); @@ -90,8 +90,8 @@ public class MetadataTable { public byte[] encode() { if (time >= 0) - return ("" + size + "," + numEntries + "," + time).getBytes(); - return ("" + size + "," + numEntries).getBytes(); + return ("" + size + "," + numEntries + "," + time).getBytes(Constants.UTF8); + return ("" + size + "," + numEntries).getBytes(Constants.UTF8); } public boolean equals(Object o) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/TextUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/TextUtil.java b/core/src/main/java/org/apache/accumulo/core/util/TextUtil.java index f78747e..45bbe00 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/TextUtil.java +++ b/core/src/main/java/org/apache/accumulo/core/util/TextUtil.java @@ -43,7 +43,7 @@ public final class TextUtil { Text newText = new Text(); newText.append(text.getBytes(), 0, maxLen); String suffix = "... TRUNCATED"; - newText.append(suffix.getBytes(), 0, suffix.length()); + newText.append(suffix.getBytes(Constants.UTF8), 0, suffix.length()); return newText; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java b/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java index 7efe5e6..656f2ae 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java @@ -16,9 +16,12 @@ */ package org.apache.accumulo.core.util.shell; +import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.util.Arrays; @@ -437,7 +440,7 @@ public class Shell extends ShellOptions { ShellCompletor userCompletor = null; if (execFile != null) { - java.util.Scanner scanner = new java.util.Scanner(new File(execFile)); + java.util.Scanner scanner = new java.util.Scanner(new File(execFile), Constants.UTF8.name()); try { while (scanner.hasNextLine() && !hasExited()) { execCommand(scanner.nextLine(), true, isVerbose()); @@ -542,7 +545,7 @@ public class Shell extends ShellOptions { // Obtain the command from the command table sc = commandFactory.get(command); if (sc == null) { - reader.printString(String.format("Unknown command \"%s\". Enter \"help\" for a list possible commands.\n", command)); + reader.printString(String.format("Unknown command \"%s\". Enter \"help\" for a list possible commands.%n", command)); reader.flushConsole(); return; } @@ -805,7 +808,7 @@ public class Shell extends ShellOptions { PrintWriter writer; public PrintFile(String filename) throws FileNotFoundException { - writer = new PrintWriter(filename); + writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), Constants.UTF8))); } @Override @@ -940,7 +943,7 @@ public class Shell extends ShellOptions { } private final void printHelp(String usage, String description, Options opts, int width) { - PrintWriter pw = new PrintWriter(System.err); + PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.err, Constants.UTF8)); new HelpFormatter().printHelp(pw, width, usage, description, opts, 2, 5, null, true); pw.flush(); if (logErrorsToConsole && writer != null) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AddSplitsCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AddSplitsCommand.java b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AddSplitsCommand.java index 44cbd35..6bd260c 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AddSplitsCommand.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AddSplitsCommand.java @@ -19,6 +19,7 @@ package org.apache.accumulo.core.util.shell.commands; import java.io.File; import java.util.TreeSet; +import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.core.util.shell.Shell; import org.apache.accumulo.core.util.shell.Shell.Command; @@ -42,11 +43,11 @@ public class AddSplitsCommand extends Command { final String f = cl.getOptionValue(optSplitsFile.getOpt()); String line; - java.util.Scanner file = new java.util.Scanner(new File(f)); + java.util.Scanner file = new java.util.Scanner(new File(f), Constants.UTF8.name()); while (file.hasNextLine()) { line = file.nextLine(); if (!line.isEmpty()) { - splits.add(decode ? new Text(Base64.decodeBase64(line.getBytes())) : new Text(line)); + splits.add(decode ? new Text(Base64.decodeBase64(line.getBytes(Constants.UTF8))) : new Text(line)); } } } else { http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java index ae7854b..5266337 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/AuthenticateCommand.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.util.Map; import java.util.Set; +import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.security.tokens.PasswordToken; @@ -37,7 +38,7 @@ public class AuthenticateCommand extends Command { shellState.getReader().printNewline(); return 0; } // user canceled - final byte[] password = p.getBytes(); + final byte[] password = p.getBytes(Constants.UTF8); final boolean valid = shellState.getConnector().securityOperations().authenticateUser(user, new PasswordToken(password)); shellState.getReader().printString((valid ? "V" : "Not v") + "alid\n"); return 0; http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java index c439909..b476ae4 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java @@ -51,7 +51,6 @@ public class CreateTableCommand extends Command { private Option createTableOptEVC; private Option base64Opt; private Option createTableOptFormatter; - public static String testTable; public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, TableExistsException, TableNotFoundException, IOException, ClassNotFoundException { @@ -74,12 +73,12 @@ public class CreateTableCommand extends Command { final String f = cl.getOptionValue(createTableOptSplit.getOpt()); String line; - Scanner file = new Scanner(new File(f)); + Scanner file = new Scanner(new File(f), Constants.UTF8.name()); try { while (file.hasNextLine()) { line = file.nextLine(); if (!line.isEmpty()) - partitions.add(decode ? new Text(Base64.decodeBase64(line.getBytes())) : new Text(line)); + partitions.add(decode ? new Text(Base64.decodeBase64(line.getBytes(Constants.UTF8 ))) : new Text(line)); } } finally { file.close(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ExecfileCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ExecfileCommand.java b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ExecfileCommand.java index a9c409f..5fa5b10 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ExecfileCommand.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ExecfileCommand.java @@ -19,6 +19,7 @@ package org.apache.accumulo.core.util.shell.commands; import java.io.File; import java.util.Scanner; +import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.util.shell.Shell; import org.apache.accumulo.core.util.shell.Shell.Command; import org.apache.commons.cli.CommandLine; @@ -35,7 +36,7 @@ public class ExecfileCommand extends Command { @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { - Scanner scanner = new Scanner(new File(cl.getArgs()[0])); + Scanner scanner = new Scanner(new File(cl.getArgs()[0]), Constants.UTF8.name()); try { while (scanner.hasNextLine()) { shellState.execCommand(scanner.nextLine(), true, cl.hasOption(verboseOption.getOpt())); http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetSplitsCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetSplitsCommand.java b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetSplitsCommand.java index 12c17cb..635d0ff 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetSplitsCommand.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/GetSplitsCommand.java @@ -99,7 +99,7 @@ public class GetSplitsCommand extends Command { return null; } BinaryFormatter.getlength(text.getLength()); - return encode ? new String(Base64.encodeBase64(TextUtil.getBytes(text))) : BinaryFormatter.appendText(new StringBuilder(), text).toString(); + return encode ? new String(Base64.encodeBase64(TextUtil.getBytes(text)), Constants.UTF8) : BinaryFormatter.appendText(new StringBuilder(), text).toString(); } private static String obscuredTabletName(final KeyExtent extent) { @@ -112,7 +112,7 @@ public class GetSplitsCommand extends Command { if (extent.getEndRow() != null && extent.getEndRow().getLength() > 0) { digester.update(extent.getEndRow().getBytes(), 0, extent.getEndRow().getLength()); } - return new String(Base64.encodeBase64(digester.digest())); + return new String(Base64.encodeBase64(digester.digest()), Constants.UTF8); } @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java index 1967dce..765fdc4 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java @@ -91,7 +91,7 @@ public class HelpCommand extends Command { for (String cmd : cl.getArgs()) { final Command c = shellState.commandFactory.get(cmd); if (c == null) { - shellState.getReader().printString(String.format("Unknown command \"%s\". Enter \"help\" for a list possible commands.\n", cmd)); + shellState.getReader().printString(String.format("Unknown command \"%s\". Enter \"help\" for a list possible commands.%n", cmd)); } else { c.printHelp(shellState, numColumns); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/e89d6e09/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java index 0413d73..37b9ec0 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java @@ -19,6 +19,7 @@ package org.apache.accumulo.core.util.shell.commands; import java.security.SecureRandom; import java.util.Random; +import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.util.shell.Shell; import org.apache.accumulo.core.util.shell.Shell.Command; import org.apache.accumulo.core.util.shell.ShellCommandException; @@ -42,7 +43,7 @@ public class HiddenCommand extends Command { shellState.getReader().printString( new String(Base64.decodeBase64(("ICAgICAgIC4tLS4KICAgICAgLyAvXCBcCiAgICAgKCAvLS1cICkKICAgICAuPl8gIF88LgogICAgLyB8ICd8ICcgXAog" + "ICAvICB8Xy58Xy4gIFwKICAvIC98ICAgICAgfFwgXAogfCB8IHwgfFwvfCB8IHwgfAogfF98IHwgfCAgfCB8IHxffAogICAgIC8gIF9fICBcCiAgICAvICAv" - + "ICBcICBcCiAgIC8gIC8gICAgXCAgXF8KIHwvICAvICAgICAgXCB8IHwKIHxfXy8gICAgICAgIFx8X3wK").getBytes()))); + + "ICBcICBcCiAgIC8gIC8gICAgXCAgXF8KIHwvICAvICAgICAgXCB8IHwKIHxfXy8gICAgICAgIFx8X3wK").getBytes()), Constants.UTF8)); shellState.getReader().printNewline(); } else { throw new ShellCommandException(ErrorCode.UNRECOGNIZED_COMMAND, getName());