[ https://issues.apache.org/jira/browse/MAPREDUCE-2317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13021385#comment-13021385 ]
Tsz Wo (Nicholas), SZE commented on MAPREDUCE-2317: --------------------------------------------------- Hi Devaraj, thanks for the explanation of the codes. I really like the following comment in the codes. {code} // this is tricky {code} Still, how about moving {{parents.add(parent)}} inside null check for easing future maintenance? Since the 0.23 have this part of codes. let's also commit it. > HadoopArchives throwing NullPointerException while creating hadoop archives > (.har files) > ---------------------------------------------------------------------------------------- > > Key: MAPREDUCE-2317 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-2317 > Project: Hadoop Map/Reduce > Issue Type: Bug > Components: harchive > Affects Versions: 0.20.3 > Environment: windows > Reporter: Devaraj K > Assignee: Devaraj K > Priority: Minor > Fix For: 0.20.3 > > Attachments: MAPREDUCE-2317.patch > > > 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 > {code:xml} > 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) > {code} > I see the code flow to handle this feature in windows also, > {code:title=Path.java|borderStyle=solid} > /** 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); > } > {code} -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira