This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 6387a7f632ee491ce076401aa13d27771e27dd95 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 +++++++++++----------- .../swing/ui/admin/report/ReportModel.java | 11 +++- .../admin/synchronize/data/DataSynchroModel.java | 15 +++-- .../referential/legacy/SynchronizeModel.java | 12 +++- .../referential/ng/ReferentialSynchroModel.java | 16 ++++-- .../swing/ui/admin/validate/ValidateModel.java | 4 ++ 6 files changed, 79 insertions(+), 44 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 62e9061..a8293b4 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 @@ -2,7 +2,7 @@ * #%L * ObServe :: Application Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -158,10 +158,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(); } @@ -221,40 +221,43 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad AdminUIModel model = ui.getModel(); - try { - + ConfigModel.doCloseSource(model.getConfigModel().getCentralSource()); + ConfigModel.doCloseSource(model.getConfigModel().getLocalSource()); - ConfigModel.doCloseSource(model.getConfigModel().getCentralSource()); - ConfigModel.doCloseSource(model.getConfigModel().getLocalSource()); + 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.getConfigModel().getPreviousSource(); + ObserveSwingDataSource source = model.getPreviousSource(); - if (source == null) { + if (source == null) { - // pas de service auparavant - mainUI.getModel().setMode(ObserveUIMode.NO_DB); - return; - } + // pas de service auparavant + mainUI.getModel().setMode(ObserveUIMode.NO_DB); + return; + } + + try { ConfigModel.doCloseSource(source); @@ -268,9 +271,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.getModel().setMode(ObserveUIMode.NO_DB); - } + mainUI.setMode(ObserveUIMode.NO_DB); } } } 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 a6de627..ed0bbc5 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 @@ -42,7 +42,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; import static fr.ird.observe.application.swing.ui.admin.AdminUIModel.SELECTED_TRIP_PROPERTY_NAME; @@ -76,8 +75,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); @@ -123,6 +120,14 @@ public class ReportModel extends AdminActionModel { } + @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 b5f5342..05bd5c2 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 @@ -25,15 +25,12 @@ package fr.ird.observe.application.swing.ui.admin.synchronize.data; 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.application.swing.ui.admin.AdminUI; -import fr.ird.observe.application.swing.ui.admin.config.ConfigUI; import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.DataSynchronizeTaskSupport; -import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; +import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.DefaultListModel; -import javax.swing.border.TitledBorder; /** * Created on 02/08/16. @@ -85,6 +82,16 @@ public class DataSynchroModel extends AdminActionModel { } + @Override + public void destroy() { + super.destroy(); + leftSelectionDataModel.destroy(); + rightSelectionDataModel.destroy(); + tasks.clear(); + leftSource = null; + rightSource = null; + } + public void setLeftSelectionDataModel(SelectionTreeModel leftSelectionDataModel) { this.leftSelectionDataModel = leftSelectionDataModel; } 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 5410c75..54a6d85 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 @@ -2,7 +2,7 @@ * #%L * ObServe :: Application Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -23,6 +23,8 @@ 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.AdminUIModel; +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; @@ -119,9 +121,17 @@ 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; } public boolean validate(AdminUIModel uiModel, AdminStep step) { 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 4606e91..d7bee06 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 @@ -39,8 +39,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.beans.PropertyChangeListener; import java.util.ArrayList; @@ -74,8 +72,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; @@ -101,6 +98,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 d25676f..003c83b 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 @@ -102,6 +102,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 void start(AdminUIModel uiModel) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.