Skip to content

Commit

Permalink
HDFS-12269. Better to return a Map rather than HashMap in getErasureC…
Browse files Browse the repository at this point in the history
…odingCodecs. Contributed by Huafeng Wang.
  • Loading branch information
aajisaka committed Aug 17, 2017
1 parent ab051bd commit 08aaa4b
Show file tree
Hide file tree
Showing 11 changed files with 18 additions and 20 deletions.
Expand Up @@ -176,7 +176,7 @@ public RawErasureCoderFactory getCoderByName(
* @return a map of all codec names, and their corresponding code list
* separated by ','.
*/
public HashMap<String, String> getCodec2CoderCompactMap() {
public Map<String, String> getCodec2CoderCompactMap() {
return coderNameCompactMap;
}
}
Expand Up @@ -2764,7 +2764,7 @@ public ErasureCodingPolicy[] getErasureCodingPolicies() throws IOException {
}
}

public HashMap<String, String> getErasureCodingCodecs() throws IOException {
public Map<String, String> getErasureCodingCodecs() throws IOException {
checkOpen();
try (TraceScope ignored = tracer.newScope("getErasureCodingCodecs")) {
return namenode.getErasureCodingCodecs();
Expand Down
Expand Up @@ -26,7 +26,6 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -2585,7 +2584,7 @@ public Collection<ErasureCodingPolicy> getAllErasureCodingPolicies()
* @return all erasure coding codecs and coders supported by this file system.
* @throws IOException
*/
public HashMap<String, String> getAllErasureCodingCodecs()
public Map<String, String> getAllErasureCodingCodecs()
throws IOException {
return dfs.getErasureCodingCodecs();
}
Expand Down
Expand Up @@ -19,8 +19,8 @@

import java.io.IOException;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
Expand Down Expand Up @@ -1601,7 +1601,7 @@ AddECPolicyResponse[] addErasureCodingPolicies(
* @throws IOException
*/
@Idempotent
HashMap<String, String> getErasureCodingCodecs() throws IOException;
Map<String, String> getErasureCodingCodecs() throws IOException;

/**
* Get the information about the EC policy for the path.
Expand Down
Expand Up @@ -26,6 +26,7 @@

import com.google.common.collect.Lists;

import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

Expand Down Expand Up @@ -1760,11 +1761,11 @@ public ErasureCodingPolicy[] getErasureCodingPolicies() throws IOException {
}

@Override
public HashMap<String, String> getErasureCodingCodecs() throws IOException {
public Map<String, String> getErasureCodingCodecs() throws IOException {
try {
GetErasureCodingCodecsResponseProto response = rpcProxy
.getErasureCodingCodecs(null, VOID_GET_EC_CODEC_REQUEST);
HashMap<String, String> ecCodecs = new HashMap<String, String>();
Map<String, String> ecCodecs = new HashMap<>();
for (CodecProto codec : response.getCodecList()) {
ecCodecs.put(codec.getCodec(), codec.getCoders());
}
Expand Down
Expand Up @@ -21,7 +21,6 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -1664,7 +1663,7 @@ public GetErasureCodingCodecsResponseProto getErasureCodingCodecs(
RpcController controller, GetErasureCodingCodecsRequestProto request)
throws ServiceException {
try {
HashMap<String, String> codecs = server.getErasureCodingCodecs();
Map<String, String> codecs = server.getErasureCodingCodecs();
GetErasureCodingCodecsResponseProto.Builder resBuilder =
GetErasureCodingCodecsResponseProto.newBuilder();
for (Map.Entry<String, String> codec : codecs.entrySet()) {
Expand Down
Expand Up @@ -25,8 +25,8 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import com.google.common.base.Preconditions;
Expand Down Expand Up @@ -344,7 +344,7 @@ static ErasureCodingPolicy[] getErasureCodingPolicies(final FSNamesystem fsn)
* @param fsn namespace
* @return {@link java.util.HashMap} array
*/
static HashMap<String, String> getErasureCodingCodecs(final FSNamesystem fsn)
static Map<String, String> getErasureCodingCodecs(final FSNamesystem fsn)
throws IOException {
assert fsn.hasReadLock();
return CodecRegistry.getInstance().getCodec2CoderCompactMap();
Expand Down
Expand Up @@ -7255,14 +7255,14 @@ ErasureCodingPolicy[] getErasureCodingPolicies() throws IOException {
/**
* Get available erasure coding codecs and corresponding coders.
*/
HashMap<String, String> getErasureCodingCodecs() throws IOException {
Map<String, String> getErasureCodingCodecs() throws IOException {
final String operationName = "getErasureCodingCodecs";
boolean success = false;
checkOperation(OperationCategory.READ);
readLock();
try {
checkOperation(OperationCategory.READ);
final HashMap<String, String> ret =
final Map<String, String> ret =
FSDirErasureCodingOp.getErasureCodingCodecs(this);
success = true;
return ret;
Expand Down
Expand Up @@ -37,9 +37,9 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Callable;

Expand Down Expand Up @@ -2278,7 +2278,7 @@ public ErasureCodingPolicy[] getErasureCodingPolicies() throws IOException {
}

@Override // ClientProtocol
public HashMap<String, String> getErasureCodingCodecs() throws IOException {
public Map<String, String> getErasureCodingCodecs() throws IOException {
checkNNStartup();
return namesystem.getErasureCodingCodecs();
}
Expand Down
Expand Up @@ -33,7 +33,6 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -441,7 +440,7 @@ public int run(Configuration conf, List<String> args) throws IOException {

final DistributedFileSystem dfs = AdminHelper.getDFS(conf);
try {
HashMap<String, String> codecs =
Map<String, String> codecs =
dfs.getAllErasureCodingCodecs();
if (codecs.isEmpty()) {
System.out.println("No erasure coding codecs are supported on the " +
Expand Down
Expand Up @@ -50,8 +50,8 @@
import java.security.PrivilegedExceptionAction;
import java.util.Collection;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
import static org.junit.Assert.*;
Expand Down Expand Up @@ -647,7 +647,7 @@ public void testEnforceAsReplicatedFile() throws Exception {

@Test
public void testGetAllErasureCodingCodecs() throws Exception {
HashMap<String, String> allECCodecs = fs
Map<String, String> allECCodecs = fs
.getAllErasureCodingCodecs();
assertTrue("At least 3 system codecs should be enabled",
allECCodecs.size() >= 3);
Expand Down

0 comments on commit 08aaa4b

Please sign in to comment.