hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Philip Zeyliger (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-5687) Hadoop NameNode throws NPE if fs.default.name is the default value
Date Thu, 16 Apr 2009 20:38:14 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-5687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12699848#action_12699848

Philip Zeyliger commented on HADOOP-5687:

Hi Konstantin,

Thanks for taking a look at this.

bq. I think NPE related to authority = null should be handled in NetUtils.createSocketAddr().
This is a general problem not just name-node's.

The best I could do in createSocketAddr() is throw IllegalArgumentException, instead of NPE.
 (For readability, I like Preconditions.checkNotNull() from http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/base/Preconditions.html#checkNotNull(T)
(Google's Collections Library), but "if (x == null) { throw new IllegalArgumentException("...");
}" is the same.  That's reasonable, but not terribly useful by itself.  What I'd like to do
is to give the user a good error message.

Would you prefer that I add the check to throw IllegalArgumentException in NetUtils?  I feel
like I'd have to keep an if statement (or catch the IllegalArgumentException) in NameNode
to keep the nice error message.

bq. Checking that URI has the hdfs scheme is basically an assert, otherwise this would not
be called.

I don't think Hadoop checks for "hdfs" higher in the stack; I set fs.default.name to hdXXXXfs://doorstop.local/,
and the check I proposed in the patch was triggered.  I take the view that assertions should
be statements that the programmer feels must be true if the program has no bugs.  Just like
a compiler doesn't throw an assertion for a syntax error in your program, Hadoop shouldn't
assert for a configuration error.  (I'm thinking of the first definition in http://c2.com/cgi/wiki?WhatAreAssertions).


Sure; done.

bq.  and place it in FSContants rather than DistributedFileSystem

Sure; done.

> Hadoop NameNode throws NPE if fs.default.name is the default value
> ------------------------------------------------------------------
>                 Key: HADOOP-5687
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5687
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: dfs
>            Reporter: Philip Zeyliger
>            Priority: Minor
>         Attachments: HADOOP-5687.patch, HADOOP-5687.patch
> Throwing NPE is confusing; instead, an exception with a useful string description could
be thrown instead.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message