Browse Source

HDFS-7029. Archival Storage: fix TestDFSInotifyEventInputStream and TestDistributedFileSystem. Contributed by Tsz Wo Nicholas Sze.

Jing Zhao 10 years ago
parent
commit
867f0f141c

+ 15 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/BlockStoragePolicy.java

@@ -55,6 +55,17 @@ public class BlockStoragePolicy {
   public static final int ID_MAX = (1 << ID_BIT_LENGTH) - 1;
   public static final int ID_MAX = (1 << ID_BIT_LENGTH) - 1;
   public static final byte ID_UNSPECIFIED = 0;
   public static final byte ID_UNSPECIFIED = 0;
 
 
+  private static final Suite DEFAULT_SUITE = createDefaultSuite();
+
+  private static Suite createDefaultSuite() {
+    final BlockStoragePolicy[] policies = new BlockStoragePolicy[1 << ID_BIT_LENGTH];
+    final StorageType[] storageTypes = {StorageType.DISK};
+    final byte defaultPolicyId = 12;
+    policies[defaultPolicyId] = new BlockStoragePolicy(defaultPolicyId, "HOT",
+        storageTypes, StorageType.EMPTY_ARRAY, StorageType.EMPTY_ARRAY);
+    return new Suite(defaultPolicyId, policies);
+  }
+
   /** A block storage policy suite. */
   /** A block storage policy suite. */
   public static class Suite {
   public static class Suite {
     private final byte defaultPolicyID;
     private final byte defaultPolicyID;
@@ -342,6 +353,10 @@ public class BlockStoragePolicy {
   public static Suite readBlockStorageSuite(Configuration conf) {
   public static Suite readBlockStorageSuite(Configuration conf) {
     final BlockStoragePolicy[] policies = new BlockStoragePolicy[1 << ID_BIT_LENGTH];
     final BlockStoragePolicy[] policies = new BlockStoragePolicy[1 << ID_BIT_LENGTH];
     final String[] values = conf.getStrings(DFS_BLOCK_STORAGE_POLICIES_KEY);
     final String[] values = conf.getStrings(DFS_BLOCK_STORAGE_POLICIES_KEY);
+    if (values == null) {
+      // conf property is missing, use default suite.
+      return DEFAULT_SUITE;
+    }
     byte firstID = -1;
     byte firstID = -1;
     for(String v : values) {
     for(String v : values) {
       v = v.trim();
       v = v.trim();

+ 1 - 1
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSInotifyEventInputStream.java

@@ -64,7 +64,7 @@ public class TestDFSInotifyEventInputStream {
    */
    */
   @Test
   @Test
   public void testOpcodeCount() {
   public void testOpcodeCount() {
-    Assert.assertTrue(FSEditLogOpCodes.values().length == 46);
+    Assert.assertTrue(FSEditLogOpCodes.values().length == 47);
   }
   }