Skip to content

Commit 100ec8e

Browse files
authored
HADOOP-17009: Embrace Immutability of Java Collections
1 parent 3472c3e commit 100ec8e

20 files changed

+55
-65
lines changed

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/AbstractFileSystem.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.lang.reflect.InvocationTargetException;
2424
import java.net.URI;
2525
import java.net.URISyntaxException;
26-
import java.util.ArrayList;
2726
import java.util.Collection;
2827
import java.util.Collections;
2928
import java.util.EnumSet;
@@ -1032,7 +1031,7 @@ public String getCanonicalServiceName() {
10321031
*/
10331032
@InterfaceAudience.LimitedPrivate( { "HDFS", "MapReduce" })
10341033
public List<Token<?>> getDelegationTokens(String renewer) throws IOException {
1035-
return new ArrayList<Token<?>>(0);
1034+
return Collections.emptyList();
10361035
}
10371036

10381037
/**

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/Stat.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020
import java.io.BufferedReader;
2121
import java.io.FileNotFoundException;
2222
import java.io.IOException;
23-
import java.util.HashMap;
24-
import java.util.Map;
23+
import java.util.Collections;
2524
import java.util.NoSuchElementException;
2625
import java.util.StringTokenizer;
2726

@@ -65,9 +64,7 @@ public Stat(Path path, long blockSize, boolean deref, FileSystem fs)
6564
this.blockSize = blockSize;
6665
this.dereference = deref;
6766
// LANG = C setting
68-
Map<String, String> env = new HashMap<String, String>();
69-
env.put("LANG", "C");
70-
setEnvironment(env);
67+
setEnvironment(Collections.singletonMap("LANG", "C"));
7168
}
7269

7370
public FileStatus getFileStatus() throws IOException {

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/Delete.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import java.io.FileNotFoundException;
2222
import java.io.IOException;
23+
import java.util.Collections;
2324
import java.util.LinkedList;
2425
import java.util.List;
2526

@@ -97,7 +98,7 @@ protected List<PathData> expandArgument(String arg) throws IOException {
9798
throw e;
9899
}
99100
// prevent -f on a non-existent glob from failing
100-
return new LinkedList<PathData>();
101+
return Collections.emptyList();
101102
}
102103
}
103104

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919

2020
import java.io.IOException;
2121
import java.io.PrintStream;
22-
import java.util.ArrayList;
2322
import java.util.Arrays;
2423
import java.util.Collection;
24+
import java.util.Collections;
2525
import java.util.Map;
2626

2727
import org.apache.commons.cli.Options;
@@ -107,8 +107,7 @@ protected HAAdmin(Configuration conf) {
107107
protected abstract HAServiceTarget resolveTarget(String string);
108108

109109
protected Collection<String> getTargetIds(String targetNodeToActivate) {
110-
return new ArrayList<String>(
111-
Arrays.asList(new String[]{targetNodeToActivate}));
110+
return Collections.singleton(targetNodeToActivate);
112111
}
113112

114113
protected String getUsageString() {
@@ -188,8 +187,10 @@ private int transitionToActive(final CommandLine cmd)
188187
private boolean isOtherTargetNodeActive(String targetNodeToActivate, boolean forceActive)
189188
throws IOException {
190189
Collection<String> targetIds = getTargetIds(targetNodeToActivate);
191-
targetIds.remove(targetNodeToActivate);
192-
for(String targetId : targetIds) {
190+
for (String targetId : targetIds) {
191+
if (targetNodeToActivate.equals(targetId)) {
192+
continue;
193+
}
193194
HAServiceTarget target = resolveTarget(targetId);
194195
if (!checkManualStateManagementOK(target)) {
195196
return true;

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/lib/StaticUserWebFilter.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
import java.io.IOException;
2121
import java.security.Principal;
22-
import java.util.HashMap;
22+
import java.util.Collections;
2323

2424
import javax.servlet.FilterChain;
2525
import javax.servlet.FilterConfig;
@@ -121,14 +121,10 @@ public void init(FilterConfig conf) throws ServletException {
121121

122122
@Override
123123
public void initFilter(FilterContainer container, Configuration conf) {
124-
HashMap<String, String> options = new HashMap<String, String>();
125-
126124
String username = getUsernameFromConf(conf);
127-
options.put(HADOOP_HTTP_STATIC_USER, username);
128125

129-
container.addFilter("static_user_filter",
130-
StaticUserFilter.class.getName(),
131-
options);
126+
container.addFilter("static_user_filter", StaticUserFilter.class.getName(),
127+
Collections.singletonMap(HADOOP_HTTP_STATIC_USER, username));
132128
}
133129

134130
/**

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/MBeans.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
package org.apache.hadoop.metrics2.util;
1919

2020
import java.lang.management.ManagementFactory;
21-
import java.util.HashMap;
21+
import java.util.Collections;
2222
import java.util.Map;
2323
import java.util.regex.Matcher;
2424
import java.util.regex.Pattern;
@@ -70,8 +70,7 @@ private MBeans() {
7070
*/
7171
static public ObjectName register(String serviceName, String nameName,
7272
Object theMbean) {
73-
return register(serviceName, nameName, new HashMap<String, String>(),
74-
theMbean);
73+
return register(serviceName, nameName, Collections.emptyMap(), theMbean);
7574
}
7675

7776
/**

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/CachedDNSToSwitchMapping.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,7 @@ public List<String> resolve(List<String> names) {
130130
*/
131131
@Override
132132
public Map<String, String> getSwitchMap() {
133-
Map<String, String > switchMap = new HashMap<String, String>(cache);
134-
return switchMap;
133+
return new HashMap<>(cache);
135134
}
136135

137136

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,8 @@ public List<Node> getDatanodesInRack(String loc) {
196196
loc = loc.substring(1);
197197
}
198198
InnerNode rack = (InnerNode) clusterMap.getLoc(loc);
199-
if (rack == null) {
200-
return null;
201-
}
202-
return new ArrayList<Node>(rack.getChildren());
199+
return (rack == null) ? new ArrayList<>(0)
200+
: new ArrayList<>(rack.getChildren());
203201
} finally {
204202
netlock.readLock().unlock();
205203
}

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/TableMapping.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.nio.file.Files;
2626
import java.nio.file.Paths;
2727
import java.util.ArrayList;
28+
import java.util.Collections;
2829
import java.util.HashMap;
2930
import java.util.List;
3031
import java.util.Map;
@@ -130,7 +131,7 @@ public synchronized List<String> resolve(List<String> names) {
130131
if (map == null) {
131132
LOG.warn("Failed to read topology table. " +
132133
NetworkTopology.DEFAULT_RACK + " will be used for all nodes.");
133-
map = new HashMap<String, String>();
134+
map = Collections.emptyMap();
134135
}
135136
}
136137
List<String> results = new ArrayList<String>(names.size());

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/CompositeGroupsMapping.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.io.IOException;
2121
import java.util.ArrayList;
22+
import java.util.Collections;
2223
import java.util.Iterator;
2324
import java.util.List;
2425
import java.util.Map;
@@ -69,26 +70,24 @@ public class CompositeGroupsMapping
6970
public synchronized List<String> getGroups(String user) throws IOException {
7071
Set<String> groupSet = new TreeSet<String>();
7172

72-
List<String> groups = null;
7373
for (GroupMappingServiceProvider provider : providersList) {
74+
List<String> groups = Collections.emptyList();
7475
try {
7576
groups = provider.getGroups(user);
7677
} catch (Exception e) {
7778
LOG.warn("Unable to get groups for user {} via {} because: {}",
7879
user, provider.getClass().getSimpleName(), e.toString());
7980
LOG.debug("Stacktrace: ", e);
8081
}
81-
if (groups != null && ! groups.isEmpty()) {
82+
if (!groups.isEmpty()) {
8283
groupSet.addAll(groups);
8384
if (!combined) break;
8485
}
8586
}
8687

87-
List<String> results = new ArrayList<String>(groupSet.size());
88-
results.addAll(groupSet);
89-
return results;
88+
return new ArrayList<>(groupSet);
9089
}
91-
90+
9291
/**
9392
* Caches groups, no need to do that for this provider
9493
*/

0 commit comments

Comments
 (0)