r3062 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish/simulator/launcher
Author: chatellier Date: 2010-06-17 12:04:36 +0000 (Thu, 17 Jun 2010) New Revision: 3062 Log: Fix dependant simulation execution (before/after order). Modified: isis-fish/trunk/changelog.txt isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java Modified: isis-fish/trunk/changelog.txt =================================================================== --- isis-fish/trunk/changelog.txt 2010-06-17 12:02:34 UTC (rev 3061) +++ isis-fish/trunk/changelog.txt 2010-06-17 12:04:36 UTC (rev 3062) @@ -1,5 +1,7 @@ isis-fish (3.3.0.4) stable; urgency=low + * Fix dependant simulation plans execution (beforeSimulation/afterSimulation) + * Reduce spaces in strategies edition * Fix parameter edition for non primitive types in user script (Double...) * Add simulation parameter cache to not keep simulation prescript on memory Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2010-06-17 12:02:34 UTC (rev 3061) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2010-06-17 12:04:36 UTC (rev 3062) @@ -209,12 +209,16 @@ && param.getUseAnalysePlan() && !param.isIndependentPlan()) { // on est sur un plan d'analyse dependant, il faut generer les // simulation les unes apres les autres - Iterator<SimulationJob> i = new SimulationService.PrepareSimulationJob( + SimulationService.PrepareSimulationJob i = new SimulationService.PrepareSimulationJob( simulationService, this); while (!control.isStopSimulationRequest() && i.hasNext()) { log.info(_("Generate next simulation")); SimulationJob subjob = i.next(); subjob.setLauncher(getLauncher()); + // c'est bloquant seulement le temps du lancement + // (envoie sur caparmor par exemple) + // l'appel peut ensuite passer alors que la simulation + // n'a pas effectivement demarré subjob.run(); // FIXME temp fix les thread des launchers @@ -228,6 +232,13 @@ } while (!subControl.isStopSimulationRequest() && (subControl.getProgress() == 0 || subControl.getProgress() < subControl.getProgressMax()) && !SimulationStorage.exists(subControl.getId())); + + // FIXME on fait manuellement le post simulation pour + // plans dépendant + if (!subControl.isStopSimulationRequest()) { + SimulationStorage simulation = subjob.getLauncher().getSimulationStorage(simulationService, subControl); + i.finished(subjob, simulation); + } } } else { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2010-06-17 12:02:34 UTC (rev 3061) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2010-06-17 12:04:36 UTC (rev 3062) @@ -838,8 +838,7 @@ // appel de tous les plans pour modifier la simulation for (AnalysePlan plan : param.getAnalysePlans()) { result = result - && plan.beforeSimulation(planContext, - sim); + && plan.beforeSimulation(planContext, sim); if (!result) { nextJob = null; break; @@ -856,9 +855,14 @@ nextJob = new SimulationJob(simulationService, job, item, job.getPriority()); nextJob.setLauncher(job.getLauncher()); - nextJob.addPostAction(this); // pour l'appel des after des plans + + // FIXME on retire la post action pour les plan dépendants + // sera appelé directement par le job de preparations + if (param.isIndependentPlan()) { + nextJob.addPostAction(this); // pour l'appel des after des plans + } } - + // close context for plan generator sim.closeStorage();
participants (1)
-
chatellier@users.labs.libre-entreprise.org