Details
Description
While we are trying to run hadoop archive tool in widows using this way, it is giving the below exception.
java org.apache.hadoop.tools.HadoopArchives -archiveName temp.har D:/test/in E:/temp
java.lang.NullPointerException at org.apache.hadoop.tools.HadoopArchives.writeTopLevelDirs(HadoopArchives.java:320) at org.apache.hadoop.tools.HadoopArchives.archive(HadoopArchives.java:386) at org.apache.hadoop.tools.HadoopArchives.run(HadoopArchives.java:725) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) at org.apache.hadoop.tools.HadoopArchives.main(HadoopArchives.java:739)
I see the code flow to handle this feature in windows also,
Path.java
/** Returns the parent of a path or null if at root. */ public Path getParent() { String path = uri.getPath(); int lastSlash = path.lastIndexOf('/'); int start = hasWindowsDrive(path, true) ? 3 : 0; if ((path.length() == start) || // empty path (lastSlash == start && path.length() == start+1)) { // at root return null; } String parent; if (lastSlash==-1) { parent = CUR_DIR; } else { int end = hasWindowsDrive(path, true) ? 3 : 0; parent = path.substring(0, lastSlash==end?end+1:lastSlash); } return new Path(uri.getScheme(), uri.getAuthority(), parent); }