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:
Peter Somogyi 2017-12-18 13:39:25 +01:00 committed by Michael Stack
parent b4056d267a
commit abae90787f
No known key found for this signature in database
GPG Key ID: 9816C7FC8ACC93D2
2 changed files with 7 additions and 5 deletions

View File

@ -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.");
} }

View File

@ -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());
} }
/** /**