HADOOP-17059. ArrayIndexOfboundsException in ViewFileSystem#listStatus. Contributed by hemanthboyina
This commit is contained in:
parent
ac307fe20d
commit
543075b845
@ -1221,7 +1221,7 @@ public FileStatus[] listStatus(Path f) throws AccessControlException,
|
|||||||
} else {
|
} else {
|
||||||
result[i++] = new FileStatus(0, true, 0, 0,
|
result[i++] = new FileStatus(0, true, 0, 0,
|
||||||
creationTime, creationTime, PERMISSION_555,
|
creationTime, creationTime, PERMISSION_555,
|
||||||
ugi.getShortUserName(), ugi.getGroupNames()[0],
|
ugi.getShortUserName(), ugi.getPrimaryGroupName(),
|
||||||
new Path(inode.fullPath).makeQualified(
|
new Path(inode.fullPath).makeQualified(
|
||||||
myUri, null));
|
myUri, null));
|
||||||
}
|
}
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
import org.apache.hadoop.fs.RemoteIterator;
|
import org.apache.hadoop.fs.RemoteIterator;
|
||||||
import org.apache.hadoop.fs.FileContextTestHelper.fileType;
|
import org.apache.hadoop.fs.FileContextTestHelper.fileType;
|
||||||
import org.apache.hadoop.fs.FileStatus;
|
import org.apache.hadoop.fs.FileStatus;
|
||||||
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
import org.apache.hadoop.fs.FsConstants;
|
import org.apache.hadoop.fs.FsConstants;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
import org.apache.hadoop.fs.UnresolvedLinkException;
|
import org.apache.hadoop.fs.UnresolvedLinkException;
|
||||||
@ -69,6 +70,7 @@
|
|||||||
import org.apache.hadoop.security.UserGroupInformation;
|
import org.apache.hadoop.security.UserGroupInformation;
|
||||||
import org.apache.hadoop.security.token.Token;
|
import org.apache.hadoop.security.token.Token;
|
||||||
import org.apache.hadoop.test.GenericTestUtils;
|
import org.apache.hadoop.test.GenericTestUtils;
|
||||||
|
import org.apache.hadoop.test.LambdaTestUtils;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@ -1001,4 +1003,24 @@ static AbstractFileSystem getMockFs(URI uri) {
|
|||||||
return mockFs;
|
return mockFs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testListStatusWithNoGroups() throws Exception {
|
||||||
|
final UserGroupInformation userUgi = UserGroupInformation
|
||||||
|
.createUserForTesting("user@HADOOP.COM", new String[] {});
|
||||||
|
userUgi.doAs(new PrivilegedExceptionAction<Object>() {
|
||||||
|
@Override
|
||||||
|
public Object run() throws Exception {
|
||||||
|
String clusterName = Constants.CONFIG_VIEWFS_DEFAULT_MOUNT_TABLE;
|
||||||
|
URI viewFsUri =
|
||||||
|
new URI(FsConstants.VIEWFS_SCHEME, clusterName, "/", null, null);
|
||||||
|
FileSystem vfs = FileSystem.get(viewFsUri, conf);
|
||||||
|
LambdaTestUtils.intercept(IOException.class,
|
||||||
|
"There is no primary group for UGI", () -> vfs
|
||||||
|
.listStatus(new Path(viewFsUri.toString() + "internalDir")));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user