Revert "HADOOP-15852. Refactor QuotaUsage. Contributed by Beluga Behr."

This reverts commit fb9deed41d6b9f242474b474a5acde0c858e28f6.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/aa89492f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/aa89492f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/aa89492f

Branch: refs/heads/HDFS-12943
Commit: aa89492f29fafa471f99ff225602752bdb9b5c8f
Parents: e89941f
Author: Giovanni Matteo Fumarola <gif...@apache.org>
Authored: Tue Dec 4 12:57:28 2018 -0800
Committer: Giovanni Matteo Fumarola <gif...@apache.org>
Committed: Tue Dec 4 12:57:28 2018 -0800

----------------------------------------------------------------------
 .../java/org/apache/hadoop/fs/QuotaUsage.java   | 108 +++++++++----------
 1 file changed, 53 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/aa89492f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/QuotaUsage.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/QuotaUsage.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/QuotaUsage.java
index 4e42e5b..3472362 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/QuotaUsage.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/QuotaUsage.java
@@ -40,12 +40,14 @@ public class QuotaUsage {
   /** Builder class for QuotaUsage. */
   public static class Builder {
     public Builder() {
-      this.quota = -1L;
-      this.spaceQuota = -1L;
+      this.quota = -1;
+      this.spaceQuota = -1;
 
       typeConsumed = new long[StorageType.values().length];
       typeQuota = new long[StorageType.values().length];
-      Arrays.fill(typeQuota, -1L);
+      for (int i = 0; i < typeQuota.length; i++) {
+        typeQuota[i] = -1;
+      }
     }
 
     public Builder fileAndDirectoryCount(long count) {
@@ -69,8 +71,9 @@ public class QuotaUsage {
     }
 
     public Builder typeConsumed(long[] typeConsumed) {
-      System.arraycopy(typeConsumed, 0, this.typeConsumed, 0,
-          typeConsumed.length);
+      for (int i = 0; i < typeConsumed.length; i++) {
+        this.typeConsumed[i] = typeConsumed[i];
+      }
       return this;
     }
 
@@ -85,8 +88,9 @@ public class QuotaUsage {
     }
 
     public Builder typeQuota(long[] typeQuota) {
-      System.arraycopy(typeQuota, 0, this.typeQuota, 0,
-          typeQuota.length);
+      for (int i = 0; i < typeQuota.length; i++) {
+        this.typeQuota[i] = typeQuota[i];
+      }
       return this;
     }
 
@@ -149,12 +153,22 @@ public class QuotaUsage {
 
   /** Return storage type quota. */
   public long getTypeQuota(StorageType type) {
-    return (typeQuota != null) ? typeQuota[type.ordinal()] : -1L;
+    return (typeQuota != null) ? typeQuota[type.ordinal()] : -1;
   }
 
   /** Return storage type consumed. */
   public long getTypeConsumed(StorageType type) {
-    return (typeConsumed != null) ? typeConsumed[type.ordinal()] : 0L;
+    return (typeConsumed != null) ? typeConsumed[type.ordinal()] : 0;
+  }
+
+  /** Return storage type quota. */
+  private long[] getTypesQuota() {
+    return typeQuota;
+  }
+
+  /** Return storage type quota. */
+  private long[] getTypesConsumed() {
+    return typeConsumed;
   }
 
   /** Return true if any storage type quota has been set. */
@@ -163,7 +177,7 @@ public class QuotaUsage {
       return false;
     }
     for (StorageType t : StorageType.getTypesSupportingQuota()) {
-      if (typeQuota[t.ordinal()] > 0L) {
+      if (typeQuota[t.ordinal()] > 0) {
         return true;
       }
     }
@@ -176,7 +190,7 @@ public class QuotaUsage {
       return false;
     }
     for (StorageType t : StorageType.getTypesSupportingQuota()) {
-      if (typeConsumed[t.ordinal()] > 0L) {
+      if (typeConsumed[t.ordinal()] > 0) {
         return true;
       }
     }
@@ -184,50 +198,33 @@ public class QuotaUsage {
   }
 
   @Override
-  public int hashCode() {
-    final int prime = 31;
-    int result = 1;
-    result = prime * result
-        + (int) (fileAndDirectoryCount ^ (fileAndDirectoryCount >>> 32));
-    result = prime * result + (int) (quota ^ (quota >>> 32));
-    result = prime * result + (int) (spaceConsumed ^ (spaceConsumed >>> 32));
-    result = prime * result + (int) (spaceQuota ^ (spaceQuota >>> 32));
-    result = prime * result + Arrays.hashCode(typeConsumed);
-    result = prime * result + Arrays.hashCode(typeQuota);
-    return result;
+  public boolean equals(Object to) {
+    return (this == to || (to instanceof QuotaUsage &&
+        getFileAndDirectoryCount() ==
+        ((QuotaUsage) to).getFileAndDirectoryCount() &&
+        getQuota() == ((QuotaUsage) to).getQuota() &&
+        getSpaceConsumed() == ((QuotaUsage) to).getSpaceConsumed() &&
+        getSpaceQuota() == ((QuotaUsage) to).getSpaceQuota() &&
+        Arrays.equals(getTypesQuota(), ((QuotaUsage) to).getTypesQuota()) &&
+        Arrays.equals(getTypesConsumed(),
+        ((QuotaUsage) to).getTypesConsumed())));
   }
 
   @Override
-  public boolean equals(Object obj) {
-    if (this == obj) {
-      return true;
-    }
-    if (obj == null) {
-      return false;
-    }
-    if (getClass() != obj.getClass()) {
-      return false;
-    }
-    QuotaUsage other = (QuotaUsage) obj;
-    if (fileAndDirectoryCount != other.fileAndDirectoryCount) {
-      return false;
-    }
-    if (quota != other.quota) {
-      return false;
-    }
-    if (spaceConsumed != other.spaceConsumed) {
-      return false;
-    }
-    if (spaceQuota != other.spaceQuota) {
-      return false;
-    }
-    if (!Arrays.equals(typeConsumed, other.typeConsumed)) {
-      return false;
+  public int hashCode() {
+    long result = (getFileAndDirectoryCount() ^ getQuota() ^
+        getSpaceConsumed() ^ getSpaceQuota());
+    if (getTypesQuota() != null) {
+      for (long quota : getTypesQuota()) {
+        result ^= quota;
+      }
     }
-    if (!Arrays.equals(typeQuota, other.typeQuota)) {
-      return false;
+    if (getTypesConsumed() != null) {
+      for (long consumed : getTypesConsumed()) {
+        result ^= consumed;
+      }
     }
-    return true;
+    return (int)result;
   }
 
   /**
@@ -295,11 +292,11 @@ public class QuotaUsage {
     String spaceQuotaStr = QUOTA_NONE;
     String spaceQuotaRem = QUOTA_INF;
 
-    if (quota > 0L) {
+    if (quota > 0) {
       quotaStr = formatSize(quota, hOption);
       quotaRem = formatSize(quota-fileAndDirectoryCount, hOption);
     }
-    if (spaceQuota >= 0L) {
+    if (spaceQuota >= 0) {
       spaceQuotaStr = formatSize(spaceQuota, hOption);
       spaceQuotaRem = formatSize(spaceQuota - spaceConsumed, hOption);
     }
@@ -310,7 +307,7 @@ public class QuotaUsage {
 
   protected String getTypesQuotaUsage(boolean hOption,
       List<StorageType> types) {
-    StringBuilder content = new StringBuilder();
+    StringBuffer content = new StringBuffer();
     for (StorageType st : types) {
       long typeQuota = getTypeQuota(st);
       long typeConsumed = getTypeConsumed(st);
@@ -335,12 +332,13 @@ public class QuotaUsage {
    * @return storage header string
    */
   public static String getStorageTypeHeader(List<StorageType> storageTypes) {
-    StringBuilder header = new StringBuilder();
+    StringBuffer header = new StringBuffer();
+
     for (StorageType st : storageTypes) {
       /* the field length is 13/17 for quota and remain quota
        * as the max length for quota name is ARCHIVE_QUOTA
         * and remain quota name REM_ARCHIVE_QUOTA */
-      final String storageName = st.toString();
+      String storageName = st.toString();
       header.append(String.format(STORAGE_TYPE_SUMMARY_FORMAT,
           storageName + "_QUOTA", "REM_" + storageName + "_QUOTA"));
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to