[
https://issues.apache.org/jira/browse/MATH-1297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Luc Maisonobe resolved MATH-1297.
---------------------------------
Resolution: Fixed
Fixed in git repository, both in MATH_3_X and master branches.
> multistep integrator start failure triggers NPE
> -----------------------------------------------
>
> Key: MATH-1297
> URL: https://issues.apache.org/jira/browse/MATH-1297
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 3.5
> Reporter: Luc Maisonobe
> Assignee: Luc Maisonobe
> Fix For: 3.6
>
>
> Multistep ODE integrators like Adams-Bashforth and Adams-Moulton require a
> starter procedure.
> If the starter integrator is not configured properly, it will not create the
> necessary number of initial points and the multistep integrator will not be
> initialized correctly. This results in NullPointErException when the scaling
> array is referenced later on.
> The following test case (with an intentionally wrong starter configuration)
> shows the problem.
> {code}
> @Test
> public void testStartFailure() {
> TestProblem1 pb = new TestProblem1();
> double minStep = 0.0001 * (pb.getFinalTime() - pb.getInitialTime());
> double maxStep = pb.getFinalTime() - pb.getInitialTime();
> double scalAbsoluteTolerance = 1.0e-6;
> double scalRelativeTolerance = 1.0e-7;
> MultistepIntegrator integ =
> new AdamsBashforthIntegrator(4, minStep, maxStep,
>
> scalAbsoluteTolerance,
>
> scalRelativeTolerance);
> integ.setStarterIntegrator(new DormandPrince853Integrator(0.2 *
> (pb.getFinalTime() - pb.getInitialTime()),
>
> pb.getFinalTime() - pb.getInitialTime(),
> 0.1, 0.1));
> TestProblemHandler handler = new TestProblemHandler(pb, integ);
> integ.addStepHandler(handler);
> integ.integrate(pb,
> pb.getInitialTime(), pb.getInitialState(),
> pb.getFinalTime(), new
> double[pb.getDimension()]);
> }
> {code}
> Failure to start the integrator should be detected and an appropriate
> exception should be triggered.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)