You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2015/02/18 08:40:56 UTC
[2/4] hbase git commit: HBASE-13050 Empty Namespace validation
HBASE-13050 Empty Namespace validation
Signed-off-by: Matteo Bertozzi <ma...@cloudera.com>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0004aeea
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0004aeea
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0004aeea
Branch: refs/heads/branch-1
Commit: 0004aeea80efb62da35da2974fcbab8bc8d57948
Parents: 387e4d2
Author: Abhishek Kumar <ab...@huawei.com>
Authored: Tue Feb 17 18:09:27 2015 +0530
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Wed Feb 18 08:32:55 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/hadoop/hbase/TableName.java | 16 ++++++++--------
.../org/apache/hadoop/hbase/util/TestTableName.java | 15 +++++++++++----
2 files changed, 19 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/0004aeea/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java
index 9925d2c..10c2285 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java
@@ -208,21 +208,21 @@ public final class TableName implements Comparable<TableName> {
/**
* Valid namespace characters are [a-zA-Z_0-9]
*/
- public static void isLegalNamespaceName(byte[] namespaceName, int offset, int length) {
- for (int i = offset; i < length; i++) {
+ public static void isLegalNamespaceName(final byte[] namespaceName,
+ final int start,
+ final int end) {
+ if(end - start < 1) {
+ throw new IllegalArgumentException("Namespace name must not be empty");
+ }
+ for (int i = start; i < end; i++) {
if (Character.isLetterOrDigit(namespaceName[i])|| namespaceName[i] == '_') {
continue;
}
throw new IllegalArgumentException("Illegal character <" + namespaceName[i] +
"> at " + i + ". Namespaces can only contain " +
"'alphanumeric characters': i.e. [a-zA-Z_0-9]: " + Bytes.toString(namespaceName,
- offset, length));
+ start, end));
}
- if(offset == length)
- throw new IllegalArgumentException("Illegal character <" + namespaceName[offset] +
- "> at " + offset + ". Namespaces can only contain " +
- "'alphanumeric characters': i.e. [a-zA-Z_0-9]: " + Bytes.toString(namespaceName,
- offset, length));
}
public byte[] getName() {
http://git-wip-us.apache.org/repos/asf/hbase/blob/0004aeea/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestTableName.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestTableName.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestTableName.java
index 605ee68..69f2d18 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestTableName.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestTableName.java
@@ -23,7 +23,6 @@ import java.util.Map;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.fail;
@@ -52,8 +51,8 @@ public class TestTableName extends TestWatcher {
public TableName getTableName() {
return tableName;
}
-
- String emptyTableNames[] ={"", " "};
+
+ String emptyNames[] ={"", " "};
String invalidNamespace[] = {":a", "%:a"};
String legalTableNames[] = { "foo", "with-dash_under.dot", "_under_start_ok",
"with-dash.with_underscore", "02-01-2012.my_table_01-02", "xyz._mytable_", "9_9_0.table_02"
@@ -73,8 +72,16 @@ public class TestTableName extends TestWatcher {
}
@Test(expected = IllegalArgumentException.class)
+ public void testEmptyNamespaceName() {
+ for (String nn : emptyNames) {
+ TableName.isLegalNamespaceName(Bytes.toBytes(nn));
+ fail("invalid Namespace name " + nn + " should have failed with IllegalArgumentException");
+ }
+ }
+
+ @Test(expected = IllegalArgumentException.class)
public void testEmptyTableName() {
- for (String tn : emptyTableNames) {
+ for (String tn : emptyNames) {
TableName.isLegalFullyQualifiedTableName(Bytes.toBytes(tn));
fail("invalid tablename " + tn + " should have failed with IllegalArgumentException");
}