Explorar el Código

HDFS-12958. Ozone: remove setAllocatedBytes method in ContainerInfo. Contributed by Chen Liang.

Nanda kumar hace 7 años
padre
commit
87b7774488

+ 0 - 4
hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/container/common/helpers/ContainerInfo.java

@@ -100,10 +100,6 @@ public class ContainerInfo
     return allocatedBytes;
   }
 
-  public void setAllocatedBytes(long allocatedBytes) {
-    this.allocatedBytes = allocatedBytes;
-  }
-
   public long getUsedBytes() {
     return usedBytes;
   }

+ 10 - 2
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java

@@ -480,8 +480,16 @@ public class ContainerMapping implements Mapping {
           OzoneProtos.SCMContainerInfo oldInfoProto =
               OzoneProtos.SCMContainerInfo.PARSER.parseFrom(containerBytes);
           ContainerInfo oldInfo = ContainerInfo.fromProtobuf(oldInfoProto);
-          oldInfo.setAllocatedBytes(info.getAllocatedBytes());
-          containerStore.put(dbKey, oldInfo.getProtobuf().toByteArray());
+          ContainerInfo newInfo = new ContainerInfo.Builder()
+              .setAllocatedBytes(info.getAllocatedBytes())
+              .setContainerName(oldInfo.getContainerName())
+              .setNumberOfKeys(oldInfo.getNumberOfKeys())
+              .setOwner(oldInfo.getOwner())
+              .setPipeline(oldInfo.getPipeline())
+              .setState(oldInfo.getState())
+              .setUsedBytes(oldInfo.getUsedBytes())
+              .build();
+          containerStore.put(dbKey, newInfo.getProtobuf().toByteArray());
         } else {
           LOG.debug("Container state manager has container {} but not found " +
               "in container store, a deleted container?",