HDFS-7091. Add forwarding constructor for INodeFile for existing callers. (Arpit Agarwal)

This commit is contained in:
arp 2014-09-18 19:20:25 -07:00
parent 22295b4783
commit e79c98c11f
8 changed files with 21 additions and 10 deletions

View File

@ -57,3 +57,7 @@
HDFS-7084. FsDatasetImpl#copyBlockFiles debug log can be improved. HDFS-7084. FsDatasetImpl#copyBlockFiles debug log can be improved.
(Xiaoyu Yao via Arpit Agarwal) (Xiaoyu Yao via Arpit Agarwal)
HDFS-7091. Add forwarding constructor for INodeFile for existing callers.
(Arpit Agarwal)

View File

@ -787,7 +787,7 @@ public class FSImageFormat {
// Images in the old format will not have the lazyPersist flag so it is // Images in the old format will not have the lazyPersist flag so it is
// safe to pass false always. // safe to pass false always.
final INodeFile file = new INodeFile(inodeId, localName, permissions, final INodeFile file = new INodeFile(inodeId, localName, permissions,
modificationTime, atime, blocks, replication, blockSize, false); modificationTime, atime, blocks, replication, blockSize);
if (underConstruction) { if (underConstruction) {
file.toUnderConstruction(clientName, clientMachine); file.toUnderConstruction(clientName, clientMachine);
} }

View File

@ -151,7 +151,7 @@ public class FSImageSerialization {
// Images in the pre-protobuf format will not have the lazyPersist flag, // Images in the pre-protobuf format will not have the lazyPersist flag,
// so it is safe to pass false always. // so it is safe to pass false always.
INodeFile file = new INodeFile(inodeId, name, perm, modificationTime, INodeFile file = new INodeFile(inodeId, name, perm, modificationTime,
modificationTime, blocks, blockReplication, preferredBlockSize, false); modificationTime, blocks, blockReplication, preferredBlockSize);
file.toUnderConstruction(clientName, clientMachine); file.toUnderConstruction(clientName, clientMachine);
return file; return file;
} }

View File

@ -110,6 +110,13 @@ public class INodeFile extends INodeWithAdditionalFields
private BlockInfo[] blocks; private BlockInfo[] blocks;
INodeFile(long id, byte[] name, PermissionStatus permissions, long mtime,
long atime, BlockInfo[] blklist, short replication,
long preferredBlockSize) {
this(id, name, permissions, mtime, atime, blklist, replication,
preferredBlockSize, false);
}
INodeFile(long id, byte[] name, PermissionStatus permissions, long mtime, INodeFile(long id, byte[] name, PermissionStatus permissions, long mtime,
long atime, BlockInfo[] blklist, short replication, long atime, BlockInfo[] blklist, short replication,
long preferredBlockSize, boolean isLazyPersist) { long preferredBlockSize, boolean isLazyPersist) {

View File

@ -82,7 +82,7 @@ public class CreateEditsLog {
} }
final INodeFile inode = new INodeFile(inodeId.nextValue(), null, final INodeFile inode = new INodeFile(inodeId.nextValue(), null,
p, 0L, 0L, blocks, replication, blockSize, false); p, 0L, 0L, blocks, replication, blockSize);
inode.toUnderConstruction("", ""); inode.toUnderConstruction("", "");
// Append path to filename with information about blockIDs // Append path to filename with information about blockIDs
@ -97,7 +97,7 @@ public class CreateEditsLog {
editLog.logMkDir(currentDir, dirInode); editLog.logMkDir(currentDir, dirInode);
} }
INodeFile fileUc = new INodeFile(inodeId.nextValue(), null, INodeFile fileUc = new INodeFile(inodeId.nextValue(), null,
p, 0L, 0L, BlockInfo.EMPTY_ARRAY, replication, blockSize, false); p, 0L, 0L, BlockInfo.EMPTY_ARRAY, replication, blockSize);
fileUc.toUnderConstruction("", ""); fileUc.toUnderConstruction("", "");
editLog.logOpenFile(filePath, fileUc, false, false); editLog.logOpenFile(filePath, fileUc, false, false);
editLog.logCloseFile(filePath, inode); editLog.logCloseFile(filePath, inode);

View File

@ -194,7 +194,7 @@ public class TestEditLog {
for (int i = 0; i < numTransactions; i++) { for (int i = 0; i < numTransactions; i++) {
INodeFile inode = new INodeFile(namesystem.allocateNewInodeId(), null, INodeFile inode = new INodeFile(namesystem.allocateNewInodeId(), null,
p, 0L, 0L, BlockInfo.EMPTY_ARRAY, replication, blockSize, false); p, 0L, 0L, BlockInfo.EMPTY_ARRAY, replication, blockSize);
inode.toUnderConstruction("", ""); inode.toUnderConstruction("", "");
editLog.logOpenFile("/filename" + (startIndex + i), inode, false, false); editLog.logOpenFile("/filename" + (startIndex + i), inode, false, false);

View File

@ -423,7 +423,7 @@ public class TestFSPermissionChecker {
FsPermission.createImmutable(perm)); FsPermission.createImmutable(perm));
INodeFile inodeFile = new INodeFile(INodeId.GRANDFATHER_INODE_ID, INodeFile inodeFile = new INodeFile(INodeId.GRANDFATHER_INODE_ID,
name.getBytes("UTF-8"), permStatus, 0L, 0L, null, REPLICATION, name.getBytes("UTF-8"), permStatus, 0L, 0L, null, REPLICATION,
PREFERRED_BLOCK_SIZE, false); PREFERRED_BLOCK_SIZE);
parent.addChild(inodeFile); parent.addChild(inodeFile);
return inodeFile; return inodeFile;
} }

View File

@ -82,7 +82,7 @@ public class TestINodeFile {
INodeFile createINodeFile(short replication, long preferredBlockSize) { INodeFile createINodeFile(short replication, long preferredBlockSize) {
return new INodeFile(INodeId.GRANDFATHER_INODE_ID, null, perm, 0L, 0L, return new INodeFile(INodeId.GRANDFATHER_INODE_ID, null, perm, 0L, 0L,
null, replication, preferredBlockSize, false); null, replication, preferredBlockSize);
} }
/** /**
* Test for the Replication value. Sets a value and checks if it was set * Test for the Replication value. Sets a value and checks if it was set
@ -259,7 +259,7 @@ public class TestINodeFile {
INodeFile[] iNodes = new INodeFile[nCount]; INodeFile[] iNodes = new INodeFile[nCount];
for (int i = 0; i < nCount; i++) { for (int i = 0; i < nCount; i++) {
iNodes[i] = new INodeFile(i, null, perm, 0L, 0L, null, replication, iNodes[i] = new INodeFile(i, null, perm, 0L, 0L, null, replication,
preferredBlockSize, false); preferredBlockSize);
iNodes[i].setLocalName(DFSUtil.string2Bytes(fileNamePrefix + i)); iNodes[i].setLocalName(DFSUtil.string2Bytes(fileNamePrefix + i));
BlockInfo newblock = new BlockInfo(replication); BlockInfo newblock = new BlockInfo(replication);
iNodes[i].addBlock(newblock); iNodes[i].addBlock(newblock);
@ -316,7 +316,7 @@ public class TestINodeFile {
{//cast from INodeFileUnderConstruction {//cast from INodeFileUnderConstruction
final INode from = new INodeFile( final INode from = new INodeFile(
INodeId.GRANDFATHER_INODE_ID, null, perm, 0L, 0L, null, replication, 1024L, false); INodeId.GRANDFATHER_INODE_ID, null, perm, 0L, 0L, null, replication, 1024L);
from.asFile().toUnderConstruction("client", "machine"); from.asFile().toUnderConstruction("client", "machine");
//cast to INodeFile, should success //cast to INodeFile, should success
@ -1079,7 +1079,7 @@ public class TestINodeFile {
public void testFileUnderConstruction() { public void testFileUnderConstruction() {
replication = 3; replication = 3;
final INodeFile file = new INodeFile(INodeId.GRANDFATHER_INODE_ID, null, final INodeFile file = new INodeFile(INodeId.GRANDFATHER_INODE_ID, null,
perm, 0L, 0L, null, replication, 1024L, false); perm, 0L, 0L, null, replication, 1024L);
assertFalse(file.isUnderConstruction()); assertFalse(file.isUnderConstruction());
final String clientName = "client"; final String clientName = "client";