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:28:49 UTC
svn commit: r1573962 - in
/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase:
HTableDescriptor.java client/HBaseAdmin.java
snapshot/SnapshotDescriptionUtils.java
Author: mbertozzi
Date: Tue Mar 4 09:28:48 2014
New Revision: 1573962
URL: http://svn.apache.org/r1573962
Log:
HBASE-9708 Improve Snapshot Name Error Message (Esteban Gutierrez)
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java?rev=1573962&r1=1573961&r2=1573962&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java Tue Mar 4 09:28:48 2014
@@ -383,6 +383,10 @@ public class HTableDescriptor implements
// A non-capture group so that this can be embedded.
public static final String VALID_USER_TABLE_REGEX = "(?:[a-zA-Z_0-9][a-zA-Z_0-9.-]*)";
+ public static byte [] isLegalTableName(final byte [] tableName) {
+ return isLegalTableName(tableName, false);
+ }
+
/**
* Check passed byte buffer, "tableName", is legal user-space table name.
* @return Returns passed <code>tableName</code> param
@@ -391,23 +395,25 @@ public class HTableDescriptor implements
* that is made of other than 'word' characters or underscores: i.e.
* <code>[a-zA-Z_0-9].
*/
- public static byte [] isLegalTableName(final byte [] tableName) {
+ public static byte [] isLegalTableName(final byte [] tableName, boolean isSnapshot) {
if (tableName == null || tableName.length <= 0) {
throw new IllegalArgumentException("Name is null or empty");
}
if (tableName[0] == '.' || tableName[0] == '-') {
throw new IllegalArgumentException("Illegal first character <" + tableName[0] +
- "> at 0. User-space table names can only start with 'word " +
- "characters': i.e. [a-zA-Z_0-9]: " + Bytes.toString(tableName));
+ "> at 0. " + (isSnapshot ? "snapshot" : "User-space table") +
+ " can only start with 'word characters': i.e. [a-zA-Z_0-9]: " +
+ Bytes.toString(tableName));
}
for (int i = 0; i < tableName.length; i++) {
- if (Character.isLetterOrDigit(tableName[i]) || tableName[i] == '_' ||
- tableName[i] == '-' || tableName[i] == '.') {
+ if (Character.isLetterOrDigit(tableName[i]) || tableName[i] == '_' ||
+ tableName[i] == '-' || tableName[i] == '.') {
continue;
}
throw new IllegalArgumentException("Illegal character <" + tableName[i] +
- "> at " + i + ". User-space table names can only contain " +
- "'word characters': i.e. [a-zA-Z_0-9-.]: " + Bytes.toString(tableName));
+ "> at " + i + ". " + (isSnapshot ? "snapshot" : "User-space table") +
+ " can only contain 'word characters': i.e. [a-zA-Z_0-9-.]: " +
+ Bytes.toString(tableName));
}
return tableName;
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1573962&r1=1573961&r2=1573962&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Tue Mar 4 09:28:48 2014
@@ -2336,7 +2336,7 @@ public class HBaseAdmin implements Abort
*/
public void deleteSnapshot(final byte[] snapshotName) throws IOException {
// make sure the snapshot is possibly valid
- HTableDescriptor.isLegalTableName(snapshotName);
+ HTableDescriptor.isLegalTableName(snapshotName, true);
// do the delete
SnapshotDescription snapshot = SnapshotDescription.newBuilder()
.setName(Bytes.toString(snapshotName)).build();
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java?rev=1573962&r1=1573961&r2=1573962&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java Tue Mar 4 09:28:48 2014
@@ -137,7 +137,7 @@ public class SnapshotDescriptionUtils {
throw new IllegalArgumentException(".META. and -ROOT- snapshots are not allowed");
}
// make sure the snapshot name is valid
- HTableDescriptor.isLegalTableName(Bytes.toBytes(snapshot.getName()));
+ HTableDescriptor.isLegalTableName(Bytes.toBytes(snapshot.getName()), true);
// make sure the table name is valid
HTableDescriptor.isLegalTableName(Bytes.toBytes(snapshot.getTable()));
}