Index: src/main/java/org/apache/hadoop/hbase/util/Bytes.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/util/Bytes.java (revision 1333239) +++ src/main/java/org/apache/hadoop/hbase/util/Bytes.java (working copy) @@ -343,8 +343,10 @@ */ public static String toStringBinary(final byte [] b, int off, int len) { StringBuilder result = new StringBuilder(); + // Just in case we are passed a 'len' that is > buffer length... + int length = Math.min(len, b.length); try { - String first = new String(b, off, len, "ISO-8859-1"); + String first = new String(b, off, length, "ISO-8859-1"); for (int i = 0; i < first.length() ; ++i ) { int ch = first.charAt(i) & 0xFF; if ( (ch >= '0' && ch <= '9') Index: src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java (revision 1333239) +++ src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java (working copy) @@ -1715,7 +1715,7 @@ * Construct the HLog directory name * * @param serverName Server name formatted as described in {@link ServerName} - * @return the relative HLog directory name, e.g. .logs/1.example.org,6030,12345 + * @return the relative HLog directory name, e.g. .logs/1.example.org,60030,12345 * if serverName passed is 1.example.org,60030,12345 */ public static String getHLogDirectoryName(final String serverName) { Index: src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java (revision 1333239) +++ src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java (working copy) @@ -538,7 +538,7 @@ try { getDataSetWatchSuccess(path, null, Integer.MIN_VALUE); } catch (DeserializationException e1) { - LOG.debug("failed to re-resubmit task " + path + " because of deserialization issue"); + LOG.debug("Failed to re-resubmit task " + path + " because of deserialization issue", e1); task.heartbeatNoDetails(EnvironmentEdgeManager.currentTimeMillis()); return false; }