commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From S├ębastien Brisard <>
Subject Re: [Math] About "NullArgumentException"
Date Tue, 18 Sep 2012 19:02:04 GMT

2012/9/17 Gilles Sadowski <>:
> On Fri, Sep 14, 2012 at 11:29:41AM -0700, Phil Steitz wrote:
>> OK, I give up.  Lets do option 2.  Just warn users in the User Guide
>> somewhere that our APIs are in general not null-safe and unless the
>> javadoc explicitly allows nulls, they can expect NPE when passing nulls.
> Thanks, Phil; we are making progress, and I hope that you'll be convinced of
> that at some point.
> Another decision still needs to be made.
> I think that everybody now agrees that wherever an argument will be directly
> used (i.e. "dereferenced") inside the body of the method[1], it is safe to
> not check for null (since the JVM will throw an NPE).
> But, whenever an argument is passed for _later_ use (e.g. stored by a
> constructor or passed to another method), we also all expressed that it is
> better to fail early if the object is supposed to be non-null. In those
> cases, checks are not mandatory (since the JVM will throw NPE at some
> point), but we must agree on how optional checks are to be implemented.
> 1. The current state of affairs was to throw "NullArgumentException"; in 4.0
>    this exception will become a subclass of NPE and we can continue to use
>    it in the same way as now (i.e. possibly providing additional localizable
>    error messages).
> 2. The alternative is to directly throw a standard NPE, but without any
>    message, since it wouldn't be localizable with the support of CM's
>    "context".
> So, which of those alternatives do people want to settle on?
> Regards,
> Gilles
> [1] As opposed to being passed on to another method.
I have another question: are we going to little by little remove all
null checks that we feel are not absolutely necessary? I would not
mind going through this cleaning phase while working on MATH-854.

Best regards,

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message