diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java index c8a67c76cde..6f90fbd17f2 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java @@ -35,6 +35,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -1415,7 +1416,8 @@ private synchronized Credentials getCredentialsInternal() { public synchronized String[] getGroupNames() { ensureInitialized(); try { - List result = groups.getGroups(getShortUserName()); + Set result = new LinkedHashSet + (groups.getGroups(getShortUserName())); return result.toArray(new String[result.size()]); } catch (IOException ie) { LOG.warn("No groups available for user " + getShortUserName()); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java index 442a603a238..31a660e724f 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java @@ -17,6 +17,7 @@ package org.apache.hadoop.security; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.io.Text; import org.apache.hadoop.metrics2.MetricsRecordBuilder; import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod; @@ -33,8 +34,9 @@ import java.io.IOException; import java.io.InputStreamReader; import java.security.PrivilegedExceptionAction; -import java.util.ArrayList; import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.Set; import static org.apache.hadoop.fs.CommonConfigurationKeys.HADOOP_USER_GROUP_METRICS_PERCENTILES_INTERVALS; import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTH_TO_LOCAL; @@ -204,7 +206,7 @@ public void testGetServerSideGroups() throws IOException, System.out.println(userName + ":" + line); - ArrayList groups = new ArrayList (); + Set groups = new LinkedHashSet (); String[] tokens = line.split(Shell.TOKEN_SEPARATOR_REGEX); for(String s: tokens) { groups.add(s);