HDFS-11648. Lazy construct the IIP pathname. Contributed by Daryn Sharp.

This commit is contained in:
Kihwal Lee 2017-04-12 13:29:24 -05:00
parent 4dd6206547
commit d4c01dde49

View File

@ -238,7 +238,7 @@ public static INodesInPath append(INodesInPath iip, INode child,
}
private final byte[][] path;
private final String pathname;
private volatile String pathname;
/**
* Array with the specified number of INodes resolved for a given path.
@ -268,7 +268,6 @@ private INodesInPath(INode[] inodes, byte[][] path, boolean isRaw,
Preconditions.checkArgument(inodes != null && path != null);
this.inodes = inodes;
this.path = path;
this.pathname = DFSUtil.byteArray2PathString(path);
this.isRaw = isRaw;
this.isSnapshot = isSnapshot;
this.snapshotId = snapshotId;
@ -329,6 +328,9 @@ public byte[] getPathComponent(int i) {
/** @return the full path in string form */
public String getPath() {
if (pathname == null) {
pathname = DFSUtil.byteArray2PathString(path);
}
return pathname;
}