You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Cyrille Artho (JIRA)" <ji...@apache.org> on 2015/05/07 08:43:00 UTC

[jira] [Commented] (MATH-1116) NullPointerException not advertized in Javadoc

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

Cyrille Artho commented on MATH-1116:
-------------------------------------

In general, the need to initialize newly constructed objects with more data is now documented, but we have found two cases where a NullPointerException is thrown because of missing data.

The documentation should be updated to reflect this. This is similar to issues report in MATH-1116 but concerns classes that are not going to be deprecated (as far as we can tell).

    org.apache.commons.math3.ode.nonstiff.HighamHall54Integrator var1 = new org.apache.commons.math3.ode.nonstiff.HighamHall54Integrator(0.0d, 0.0d, 0.0d, 0.0d);
    double[] var2 = new double[] { 0.0d };
    var1.computeDerivatives(0.0d, var2, var2); // NPE

    new org.apache.commons.math3.stat.correlation.SpearmansCorrelation().getCorrelationMatrix(); // NPE

> NullPointerException not advertized in Javadoc
> ----------------------------------------------
>
>                 Key: MATH-1116
>                 URL: https://issues.apache.org/jira/browse/MATH-1116
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.2
>         Environment: Mac OS 10.9, Java 6, 7
>            Reporter: Cyrille Artho
>            Priority: Minor
>              Labels: javadoc
>         Attachments: IllegalStateB.java, Report2.java
>
>
> The following statement produces a NullPointerException:
> new org.apache.commons.math3.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer().getWeight();
> The documentation does not seem to indicate that other data must be set before getWeight is used (at least I could not find that information). In this case, weightMatrix is still null because it has not been initialized.
> This call should probably throw an IllegalStateException, which makes it clear that this API usage is incorrect.
> This test uses LevenbergMarquardtOptimizer but any instantiable subclass of MultivariateVectorOptimizer probably works the same way.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)