r4017 - trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
Author: echatellier Date: 2014-06-16 18:04:46 +0200 (Mon, 16 Jun 2014) New Revision: 4017 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4017 Log: fixes #5244: Les plans de simulations continuent alors que la simulation n'a pas encore ?\195?\169t?\195?\169 t?\195?\169l?\195?\169charg?\195?\169es depuis caparmor Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2014-06-16 15:21:40 UTC (rev 4016) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2014-06-16 16:04:46 UTC (rev 4017) @@ -356,8 +356,7 @@ // make sure user is connected try { getSSHSession(); - } - catch(JSchException e) { + } catch(JSchException e) { throw new RemoteException("Can't connect", e); } @@ -399,7 +398,6 @@ // MD5 + SIMULATION zip file // FIXME echatellier 20140402 check not yet existing md5ControlFile and simulation ended - // simulation result will never be downloaded try { File md5ControlFile = downloadResultsMD5File(sshSession, control.getId()); @@ -434,8 +432,7 @@ // control need to be read before, otherwize, setText // in clearSimulationFiles will erase file :( clearSimulationFiles(sshSession, control); - } - else { + } else { if (log.isWarnEnabled()) { log.warn("Simulation zip download failed"); } @@ -444,8 +441,7 @@ // remove temp file md5ControlFile.delete(); } - } - catch(SSHException e) { + } catch(SSHException e) { if (log.isDebugEnabled()) { log.debug(t("Can't download archive : %s", e.getMessage())); } Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2014-06-16 15:21:40 UTC (rev 4016) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2014-06-16 16:04:46 UTC (rev 4017) @@ -527,8 +527,7 @@ if (control.isStopSimulationRequest()) { launcher.simulationStopRequest(job); simulationEnded = true; - } - else { + } else { launcher.updateControl(service, control); // by default, Progress = ProgressMax = 0 @@ -536,18 +535,20 @@ // and set by end of // fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher#localSimulateSameThread(SimulationControl, SimulationStorage) - File simulationRoot = SimulationStorage.getSimulationDirectory(control.getId()); + File localControlFile = SimulationStorage.getSimulationControlFile(control.getId()); // si la simulation n'est pas localement presente, c'est pas fini - if (simulationRoot.isDirectory()) { + // la simulation peut être finie, mais non téléchargées + // en testant le fichier de controle, on s'assure que la simulation est physiquement + // présente en local + if (localControlFile.isFile()) { // cas d'une simulation terminée if (control.getProgress() > 0 && control.getProgress() >= control.getProgressMax()) { simulationEnded = true; - } - else { - + } else { // cas d'une simulation arretee par exception + File simulationRoot = SimulationStorage.getSimulationDirectory(control.getId()); File informationFile = SimulationStorage.getSimulationInformationFile(simulationRoot); SimulationInformation information = new SimulationInformation(informationFile); if (StringUtils.isNotEmpty(information.getException())) {
participants (1)
-
echatellier@users.forge.codelutin.com