r3745 - in trunk/src/main: java/fr/ifremer/isisfish java/fr/ifremer/isisfish/datastore java/fr/ifremer/isisfish/simulator java/fr/ifremer/isisfish/simulator/launcher resources/i18n
Author: echatellier Date: 2012-08-30 14:45:25 +0200 (Thu, 30 Aug 2012) New Revision: 3745 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3745 Log: fixes #1435 : Memory leak is still present when reading result during export Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultStorage.java trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationExportResultWrapper.java trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java trunk/src/main/resources/i18n/isis-fish_en_GB.properties trunk/src/main/resources/i18n/isis-fish_fr_FR.properties Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2012-08-27 19:41:06 UTC (rev 3744) +++ trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2012-08-30 12:45:25 UTC (rev 3745) @@ -119,7 +119,7 @@ * migration de donnees demande automatiquement un changement de version * d'application. */ - protected final static Version version = new Version(4, 1, 1, 0); + protected final static Version version = new Version(4, 1, 1, 1); protected final static Version majorVersion = new Version(version.getNumber(0)); protected final static Version databaseVersion = new Version( Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultStorage.java 2012-08-27 19:41:06 UTC (rev 3744) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultStorage.java 2012-08-30 12:45:25 UTC (rev 3745) @@ -37,11 +37,13 @@ import org.apache.commons.collections.map.ReferenceMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.hibernate.HibernateException; import org.nuiton.math.matrix.MatrixFactory; import org.nuiton.math.matrix.MatrixIterator; import org.nuiton.math.matrix.MatrixND; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImpl; import org.nuiton.util.ArrayUtil; import org.nuiton.util.HashList; @@ -357,6 +359,9 @@ } // on fait une copie pour avoir reellement des resultats independant + // FIXME echatellier 20120829 : faire une copie optimiser + // suivant l'implementation du vector plutot qu'un parcourt + // via un iterateur de semantiques (plus couteux) MatrixND newMat = mat.copy(); try { ResultDAO resultPS = IsisFishDAOHelper.getResultDAO(tx); @@ -489,6 +494,11 @@ // donc mettre la matrice et la connexion dans une map // la matrice dans une weak reference. Des que la matrice // est liberer faire un close sur la transaction + } else { + // echatellier 20120829 : vidage du cache hibernate + // sinon on fait trop de lecture que la meme transaction + // et le cache hibernate se remplit sans se vider + tx.clearCache(); } } catch (Exception eee) { if (log.isWarnEnabled()) { @@ -579,6 +589,11 @@ // donc mettre la matrice et la connexion dans une map // la matrice dans une weak reference. Des que la matrice // est liberer faire un close sur la transaction + } else { + // echatellier 20120829 : vidage du cache hibernate + // sinon on fait trop de lecture que la meme transaction + // et le cache hibernate se remplit sans se vider + tx.clearCache(); } } catch (TopiaException eee) { if (log.isWarnEnabled()) { Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationExportResultWrapper.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationExportResultWrapper.java 2012-08-27 19:41:06 UTC (rev 3744) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationExportResultWrapper.java 2012-08-30 12:45:25 UTC (rev 3745) @@ -25,6 +25,7 @@ package fr.ifremer.isisfish.simulator; +import static org.nuiton.i18n.I18n._; import java.io.File; import java.util.ArrayList; import java.util.List; @@ -66,9 +67,10 @@ SimulationStorage simulation = context.getSimulationStorage(); SimulationParameter parameters = simulation.getParameter(); File rootDirectory = simulation.getDirectory(); + SimulationControl control = context.getSimulationControl(); // Ici on contantene les 2 listes d'exports - + // first, make export instances based on export // names List<Export> allExports = new ArrayList<Export>(); @@ -95,6 +97,7 @@ // make exports if (!allExports.isEmpty()) { + control.setText(_("isisfish.message.export.export")); File exportDir = SimulationStorage .getResultExportDirectory(rootDirectory); exportDir.mkdirs(); Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2012-08-27 19:41:06 UTC (rev 3744) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2012-08-30 12:45:25 UTC (rev 3745) @@ -48,7 +48,6 @@ import org.nuiton.util.FileUtil; import org.nuiton.util.ObjectUtil; import org.nuiton.util.StringUtil; -import org.nuiton.util.ZipUtil; import fr.ifremer.isisfish.IsisConfig; import fr.ifremer.isisfish.IsisFish; Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2012-08-27 19:41:06 UTC (rev 3744) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2012-08-30 12:45:25 UTC (rev 3745) @@ -189,7 +189,7 @@ // common args List<String> command = new ArrayList<String>(); command.add(java); - command.add("-Xmx1024M"); + command.add("-Xmx2048M"); // jri args String libraryPath = System.getProperty("java.library.path"); Modified: trunk/src/main/resources/i18n/isis-fish_en_GB.properties =================================================================== --- trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2012-08-27 19:41:06 UTC (rev 3744) +++ trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2012-08-30 12:45:25 UTC (rev 3745) @@ -544,6 +544,7 @@ isisfish.message.directory.not.exists= isisfish.message.evaluation.finished=evaluation finished isisfish.message.export.done=export done +isisfish.message.export.export=Exporting results isisfish.message.file.already.exists=File %s already exists, do you want overwrite it ? isisfish.message.file.overwrite=File exists, do you want overwrite it ? isisfish.message.import=Import %1$s Modified: trunk/src/main/resources/i18n/isis-fish_fr_FR.properties =================================================================== --- trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2012-08-27 19:41:06 UTC (rev 3744) +++ trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2012-08-30 12:45:25 UTC (rev 3745) @@ -544,6 +544,7 @@ isisfish.message.directory.not.exists= isisfish.message.evaluation.finished=évaluation terminée isisfish.message.export.done=Export terminé +isisfish.message.export.export=Export des résultats isisfish.message.file.already.exists=Le fichier %s existe, voulez-vous l'écraser ? isisfish.message.file.overwrite=Le fichier existe, voulez-vous l'écraser ? isisfish.message.import=Importer %1$s
participants (1)
-
echatellier@users.forge.codelutin.com