HBASE-19549 Change path comparison in CommonFSUtils
Also change makeQualified(FileSystem fs) to makeQualified(URI defaultUri, Path workingDir) Signed-off-by: Michael Stack <stack@apache.org>
This commit is contained in:
parent
b4056d267a
commit
abae90787f
|
@ -356,7 +356,7 @@ public abstract class CommonFSUtils {
|
||||||
public static Path getRootDir(final Configuration c) throws IOException {
|
public static Path getRootDir(final Configuration c) throws IOException {
|
||||||
Path p = new Path(c.get(HConstants.HBASE_DIR));
|
Path p = new Path(c.get(HConstants.HBASE_DIR));
|
||||||
FileSystem fs = p.getFileSystem(c);
|
FileSystem fs = p.getFileSystem(c);
|
||||||
return p.makeQualified(fs);
|
return p.makeQualified(fs.getUri(), fs.getWorkingDirectory());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setRootDir(final Configuration c, final Path root) throws IOException {
|
public static void setRootDir(final Configuration c, final Path root) throws IOException {
|
||||||
|
@ -384,7 +384,7 @@ public abstract class CommonFSUtils {
|
||||||
return getRootDir(c);
|
return getRootDir(c);
|
||||||
}
|
}
|
||||||
FileSystem fs = p.getFileSystem(c);
|
FileSystem fs = p.getFileSystem(c);
|
||||||
return p.makeQualified(fs);
|
return p.makeQualified(fs.getUri(), fs.getWorkingDirectory());
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
@ -399,8 +399,10 @@ public abstract class CommonFSUtils {
|
||||||
|
|
||||||
private static boolean isValidWALRootDir(Path walDir, final Configuration c) throws IOException {
|
private static boolean isValidWALRootDir(Path walDir, final Configuration c) throws IOException {
|
||||||
Path rootDir = getRootDir(c);
|
Path rootDir = getRootDir(c);
|
||||||
if (!walDir.equals(rootDir)) {
|
FileSystem fs = walDir.getFileSystem(c);
|
||||||
if (walDir.toString().startsWith(rootDir.toString() + "/")) {
|
Path qualifiedWalDir = walDir.makeQualified(fs.getUri(), fs.getWorkingDirectory());
|
||||||
|
if (!qualifiedWalDir.equals(rootDir)) {
|
||||||
|
if (qualifiedWalDir.toString().startsWith(rootDir.toString() + "/")) {
|
||||||
throw new IllegalStateException("Illegal WAL directory specified. " +
|
throw new IllegalStateException("Illegal WAL directory specified. " +
|
||||||
"WAL directories are not permitted to be under the root directory if set.");
|
"WAL directories are not permitted to be under the root directory if set.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -965,7 +965,7 @@ public class TableMapReduceUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG.debug(String.format("For class %s, using jar %s", my_class.getName(), jar));
|
LOG.debug(String.format("For class %s, using jar %s", my_class.getName(), jar));
|
||||||
return new Path(jar).makeQualified(fs);
|
return new Path(jar).makeQualified(fs.getUri(), fs.getWorkingDirectory());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue