This is an automated email from the git hooks/post-receive script. New commit to branch develop-5.x in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 06b14f294bcc431565566fa548630398018a469e Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 08:52:18 2016 +0100 refs #8863 Bien nettoyer les modèles d'actions à la fin --- .../swing/ui/admin/AdminUILauncher.java | 65 +++++++++++----------- .../application/swing/ui/admin/AdminUIModel.java | 3 + .../swing/ui/admin/report/ReportModel.java | 11 +++- .../admin/synchronize/data/DataSynchroModel.java | 10 ++++ .../referential/legacy/SynchronizeModel.java | 12 +++- .../referential/ng/ReferentialSynchroModel.java | 16 ++++-- .../swing/ui/admin/validate/ValidateModel.java | 4 ++ 7 files changed, 79 insertions(+), 42 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java index 653fb56..43963dc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java @@ -157,10 +157,10 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad log.info("closing dialog " + e.getWindow().getName()); } if (AdminUILauncher.this.ui.getModel().getModelState() - != WizardState.CANCELED) { + != WizardState.CANCELED) { if (log.isInfoEnabled()) { log.info("cancel panel from dialog !" + - e.getWindow().getName()); + e.getWindow().getName()); } AdminUILauncher.this.ui.cancel(); } @@ -216,44 +216,45 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad log.info(this + ", was canceled ? " + wasCanceled); } - ObserveMainUI mainUI = null; - AdminUIModel model = ui.getModel(); - try { - + model.doCloseSource(model.getCentralSource(), false); + model.doCloseSource(model.getLocalSource(), false); - model.doCloseSource(model.getCentralSource(), false); - model.doCloseSource(model.getLocalSource(), false); + model.destroy(); + ui.dispose(); - if (!(parent instanceof ObserveMainUI)) { - JDialog dialog = (JDialog) parent; - if (log.isInfoEnabled()) { - log.info("dispose ui!"); - } - ui.dispose(); - dialog.setVisible(false); - dialog.dispose(); - if (log.isInfoEnabled()) { - log.info("After dispose."); - } - ObserveSwingApplicationContext.get().releaseLock(); - return; + if (!(parent instanceof ObserveMainUI)) { + JDialog dialog = (JDialog) parent; + if (log.isInfoEnabled()) { + log.info("dispose ui!"); + } + dialog.setVisible(false); + dialog.dispose(); + if (log.isInfoEnabled()) { + log.info("After dispose."); } + ObserveSwingApplicationContext.get().releaseLock(); + return; + } - mainUI = (ObserveMainUI) parent; - mainUI.getSynchroWizard().remove(ui); - mainUI.removeContextValue(model.getClass()); + ObserveMainUI mainUI = (ObserveMainUI) parent; + mainUI.getSynchroWizard().remove(ui); + mainUI.removeContextValue(model.getClass()); + System.runFinalization(); + System.gc(); - ObserveSwingDataSource source = model.getPreviousSource(); + ObserveSwingDataSource source = model.getPreviousSource(); - if (source == null) { + if (source == null) { - // pas de service auparavant - mainUI.setMode(ObserveUIMode.NO_DB); - return; - } + // pas de service auparavant + mainUI.setMode(ObserveUIMode.NO_DB); + return; + } + + try { model.doCloseSource(source, false); @@ -267,9 +268,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad // on a pas reussit a reouvrir la base precedente UIHelper.handlingError("Could not close", e); - if (mainUI != null) { - mainUI.setMode(ObserveUIMode.NO_DB); - } + mainUI.setMode(ObserveUIMode.NO_DB); } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java index f001ac4..9067efc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java @@ -845,6 +845,9 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { localSourceModel.destroy(); centralSourceModel.destroy(); selectionDataModel.destroy(); + for (AdminStep adminStep : getOperations()) { + getStepModel(adminStep).destroy(); + } super.destroy(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java index 9c57972..a22a13a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java @@ -35,7 +35,6 @@ import java.net.URL; import java.util.List; import java.util.Map; import java.util.TreeMap; -import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -66,8 +65,6 @@ public class ReportModel extends AdminActionModel { public static final String VALID_PROPERTY_NAME = "valid"; - public static final Pattern REPORT_DEFINITION_PATTERN = Pattern.compile("report.(\\w+).name"); - /** Logger. */ private static final Log log = LogFactory.getLog(ReportModel.class); @@ -112,6 +109,14 @@ public class ReportModel extends AdminActionModel { addPropertyChangeListener(REPORT_FILE_PROPERTY_NAME, evt -> updateReports()); } + @Override + public void destroy() { + super.destroy(); + variables.clear(); + resultModel = null; + reports = null; + } + public List<Report> loadReports(URL resource) throws IOException { ReportBuilder builder = new ReportBuilder(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java index 881dcb8..1551ae1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java @@ -76,6 +76,16 @@ public class DataSynchroModel extends AdminActionModel { } + @Override + public void destroy() { + super.destroy(); + leftSelectionDataModel.destroy(); + rightSelectionDataModel.destroy(); + tasks.clear(); + leftSource = null; + rightSource = null; + } + public ObserveSwingDataSource getLeftSource() { return leftSource; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/legacy/SynchronizeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/legacy/SynchronizeModel.java index cc9b176..2a0a12f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/legacy/SynchronizeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/legacy/SynchronizeModel.java @@ -22,12 +22,12 @@ package fr.ird.observe.application.swing.ui.admin.synchronize.referential.legacy; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; +import fr.ird.observe.application.swing.ui.admin.AdminActionModel; +import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeCallbackResults; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeContext; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeEngine; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeResult; -import fr.ird.observe.application.swing.ui.admin.AdminActionModel; -import fr.ird.observe.application.swing.ui.admin.AdminStep; import jaxx.runtime.swing.model.JaxxDefaultListModel; import javax.swing.DefaultListSelectionModel; @@ -117,8 +117,16 @@ public class SynchronizeModel extends AdminActionModel { return obsoleteReferencesSelectionModel; } + @Override public void destroy() { + super.destroy(); obsoleteReferencesSelectionModel.clearSelection(); obsoleteReferences.clear(); + referentialSynchronizeCallbackResults = null; + referentialSynchronizeResult = null; + centralSource = null; + source = null; + engine = null; + referentialSynchronizeContext = null; } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java index 2c34e99..4b99827 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java @@ -37,8 +37,6 @@ import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine; import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeService; import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeServiceEngine; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import java.util.ArrayList; import java.util.List; @@ -69,8 +67,7 @@ public class ReferentialSynchroModel extends AdminActionModel { public static final String DESACTIVATE_WITH_REPLACE_LEFT_PROPERTY_NAME = "desactivateWithReplaceLeft"; public static final String REVERT_RIGHT_PROPERTY_NAME = "revertRight"; public static final String REVERT_LEFT_PROPERTY_NAME = "revertLeft"; - /** Logger. */ - private static final Log log = LogFactory.getLog(ReferentialSynchroModel.class); + private final ReferentialSynchronizeTaskListModel tasks; private ObserveSwingDataSource leftSource; private ObserveSwingDataSource rightSource; @@ -96,6 +93,17 @@ public class ReferentialSynchroModel extends AdminActionModel { this.tasks = new ReferentialSynchronizeTaskListModel(); } + @Override + public void destroy() { + super.destroy(); + tasks.clear(); + leftSource = null; + rightSource = null; + leftTreeModel = null; + rightTreeModel = null; + engine = null; + } + public ReferentialSynchronizeMode getSynchronizeMode() { return synchronizeMode; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateModel.java index d92b3fa..8f3a393 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateModel.java @@ -103,6 +103,7 @@ public class ValidateModel extends AdminActionModel { messages = new TreeMap<>(); } + /** * @return le nom par defaut du rapport de validation à enregistrer. */ @@ -253,6 +254,9 @@ public class ValidateModel extends AdminActionModel { if (validators != null) { validators = null; } + if (allValidators != null) { + allValidators = null; + } } public ImmutableSet<ValidatorDto> getAllValidators() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.