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 2014/03/04 10:06:15 UTC

svn commit: r1573948 - in /hbase/branches/0.98: hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java

Author: mbertozzi
Date: Tue Mar  4 09:06:15 2014
New Revision: 1573948

URL: http://svn.apache.org/r1573948
Log:
HBASE-9708 Improve Snapshot Name Error Message (Esteban Gutierrez)

Modified:
    hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java
    hbase/branches/0.98/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java

Modified: hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java?rev=1573948&r1=1573947&r2=1573948&view=diff
==============================================================================
--- hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java (original)
+++ hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java Tue Mar  4 09:06:15 2014
@@ -39,7 +39,7 @@ public class ClientSnapshotDescriptionUt
   public static void assertSnapshotRequestIsValid(HBaseProtos.SnapshotDescription snapshot)
       throws IllegalArgumentException {
     // make sure the snapshot name is valid
-    TableName.isLegalTableQualifierName(Bytes.toBytes(snapshot.getName()));
+    TableName.isLegalTableQualifierName(Bytes.toBytes(snapshot.getName()), true);
     if(snapshot.hasTable()) {
       // make sure the table name is valid, this will implicitly check validity
       TableName tableName = TableName.valueOf(snapshot.getTable());

Modified: hbase/branches/0.98/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.98/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java?rev=1573948&r1=1573947&r2=1573948&view=diff
==============================================================================
--- hbase/branches/0.98/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java (original)
+++ hbase/branches/0.98/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java Tue Mar  4 09:06:15 2014
@@ -145,11 +145,17 @@ public final class TableName implements 
     return tableName;
   }
 
-  public static byte [] isLegalTableQualifierName(final byte[] qualifierName){
-    isLegalTableQualifierName(qualifierName, 0, qualifierName.length);
+  public static byte [] isLegalTableQualifierName(final byte[] qualifierName) {
+    isLegalTableQualifierName(qualifierName, 0, qualifierName.length, false);
     return qualifierName;
   }
 
+  public static byte [] isLegalTableQualifierName(final byte[] qualifierName, boolean isSnapshot) {
+    isLegalTableQualifierName(qualifierName, 0, qualifierName.length, isSnapshot);
+    return qualifierName;
+  }
+
+
   /**
    * Qualifier names can only contain 'word' characters
    * <code>[a-zA-Z_0-9]</code> or '_', '.' or '-'.
@@ -161,15 +167,23 @@ public final class TableName implements 
    */
   public static void isLegalTableQualifierName(final byte[] qualifierName,
                                                 int start,
-                                                int end){
+                                                int end) {
+      isLegalTableQualifierName(qualifierName, start, end, false);
+  }
+
+  public static void isLegalTableQualifierName(final byte[] qualifierName,
+                                                int start,
+                                                int end,
+                                                boolean isSnapshot) {
     if(end - start < 1) {
-      throw new IllegalArgumentException("Table qualifier must not be empty");
+      throw new IllegalArgumentException(isSnapshot ? "Snapshot" : "Table" + " qualifier must not be empty");
     }
 
     if (qualifierName[start] == '.' || qualifierName[start] == '-') {
       throw new IllegalArgumentException("Illegal first character <" + qualifierName[0] +
-          "> at 0. Namespaces can only start with alphanumeric " +
-          "characters': i.e. [a-zA-Z_0-9]: " + Bytes.toString(qualifierName));
+                                         "> at 0. Namespaces can only start with alphanumeric " +
+                                         "characters': i.e. [a-zA-Z_0-9]: " +
+                                         Bytes.toString(qualifierName));
     }
     for (int i = start; i < end; i++) {
       if (Character.isLetterOrDigit(qualifierName[i]) ||
@@ -179,13 +193,13 @@ public final class TableName implements 
         continue;
       }
       throw new IllegalArgumentException("Illegal character code:" + qualifierName[i] +
-        ", <" + (char) qualifierName[i] + "> at " + i +
-          ". User-space table qualifiers can only contain " +
-        "'alphanumeric characters': i.e. [a-zA-Z_0-9-.]: " +
-          Bytes.toString(qualifierName, start, end));
+                                         ", <" + (char) qualifierName[i] + "> at " + i +
+                                         ". " + (isSnapshot ? "snapshot" : "User-space table") +
+                                         " qualifiers can only contain " +
+                                         "'alphanumeric characters': i.e. [a-zA-Z_0-9-.]: " +
+                                         Bytes.toString(qualifierName, start, end));
     }
   }
-
   public static void isLegalNamespaceName(byte[] namespaceName) {
     isLegalNamespaceName(namespaceName, 0, namespaceName.length);
   }