Author: echatellier Date: 2011-12-19 15:38:07 +0100 (Mon, 19 Dec 2011) New Revision: 3567 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3567 Log: #609: Les plans de simulations sont reinstanci?\195?\169s durant une simulation Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2011-12-16 15:47:53 UTC (rev 3566) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2011-12-19 14:38:07 UTC (rev 3567) @@ -847,6 +847,7 @@ protected SimulationControl control; protected SimulationParameter param; protected int done = 0; + protected List<SimulationPlan> simulationPlan; public PrepareSimulationJob(SimulationService simulationService, SimulationJob job) { @@ -855,11 +856,15 @@ id = job.getItem().getControl().getId(); control = job.getItem().getControl(); param = job.getItem().getParameter(); + // take a copy of simulation paln list + // because they a freed during simulation (soft reference) + // is there is not enought memory available + simulationPlan = param.getSimulationPlans(); this.planContext = new SimulationPlanContext(control.getId(), param); try { // appel de init sur chaque plan - for (SimulationPlan plan : param.getSimulationPlans()) { + for (SimulationPlan plan : simulationPlan) { plan.init(planContext); } } catch (Exception eee) { @@ -985,7 +990,7 @@ sim.getParameter().setSimulationPlanNumber(planNumber); // appel de tous les plans pour modifier la simulation - for (SimulationPlan plan : param.getSimulationPlans()) { + for (SimulationPlan plan : simulationPlan) { result = result && plan.beforeSimulation(planContext, sim); if (!result) { @@ -1060,7 +1065,7 @@ // appel de tous les plans pour modifier la simulation // EC20090716 : use param.getSimulationPlans() instances, // not sim.getParameters().getSimulationPlans() not sames !!! - for (SimulationPlan plan : param.getSimulationPlans()) { + for (SimulationPlan plan : simulationPlan) { try { boolean result = plan.afterSimulation(planContext, sim); doNext = doNext && result;
participants (1)
-
echatellier@users.forge.codelutin.com