[
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.