commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (JIRA)" <j...@apache.org>
Subject [jira] Commented: (MATH-401) Policy concerning "null"
Date Thu, 05 Aug 2010 10:36:17 GMT

    [ https://issues.apache.org/jira/browse/MATH-401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12895641#action_12895641
] 

Phil Steitz commented on MATH-401:
----------------------------------

I am OK with removing the NPE wrapper but against the policy of never checking nulls.   In
particlular, I am -1 on changing the StatUtils and PearsonsCorrelation classes to eliminate
argument guards and jiust allow NPEs to be generated and thrown with no context info when
one of the arguments in null.  I would like to retain the current behavior, where arguments
are checked and an IAE with informative message is thrown when an argument is null.

There is value to checking arguments and throwing IAE when arguments not expected to be null
are null.  This provides more information to the caller than just allowing an NPE to be encountered
by implementation code and propagate.  

> Policy concerning "null"
> ------------------------
>
>                 Key: MATH-401
>                 URL: https://issues.apache.org/jira/browse/MATH-401
>             Project: Commons Math
>          Issue Type: Improvement
>            Reporter: Gilles
>            Assignee: Gilles
>            Priority: Trivial
>             Fix For: 3.0
>
>
> Following the discussion on the "dev" ML, it appears that it would be fine to not check
for {{null}} references within CM. The JVM will do it anyway so that it is redundant and not
necessary most of the time (i.e. when usage is valid). When it happens, the problem is obvious
enough that the standard {{NullPointerException}} fully describes it, without the need for
additional specific and localized detailed messages.
> Hence we could remove all explicit checks for {{null}}. Or when early failure is preferred,
make the check and throw {{NullPointerException}} (without a message argument).
> Since failed checks are currently reported with an {{IllegalArgumentException}}, the
change is not backward-compatible.

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


Mime
View raw message