[
https://issues.apache.org/jira/browse/MAPREDUCE-2317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13020629#comment-13020629
]
Devaraj K commented on MAPREDUCE-2317:
--------------------------------------
Sorry for late reply.
parents is assigning to justDirs and justDirs used in the for loop only. When
null gets added to parents loop ends because i reaches to deepest.depth().
If we move parents.add(parent); inside null check or if we keep outside also
doesnot give any functionality difference.
> 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