You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2010/08/05 12:36:17 UTC
[jira] Commented: (MATH-401) Policy concerning "null"
[ 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.