ref #5710 add reset to TermManager after reconnect
authorAndreas Müller <a.mueller@bgbm.org>
Sat, 11 Jul 2020 08:50:20 +0000 (10:50 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Sat, 11 Jul 2020 08:50:20 +0000 (10:50 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermManager.java

index 1ab8b6e166be2b8bf3dbfda009d00d4cca262a6a..3d551489b0e58c7fda7e8b7e1de8f2e1d4244e1a 100644 (file)
@@ -32,6 +32,7 @@ import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
 import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.init.TermLoader;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
@@ -171,6 +172,7 @@ class CdmStoreConnector extends Job {
 
                         if (!monitor.isCanceled()) {
                             CdmStore.setInstance(applicationController, cdmSource);
+                            CdmStore.getTermManager().reset();
                             monitor.subTask(Messages.CdmStoreConnector_AUTHENTICATING_USER);
                             display.syncExec(()-> {
                                 try {
@@ -179,6 +181,7 @@ class CdmStoreConnector extends Job {
                                     //loginDialog.onComplete();
                                     CdmStore.getContextManager().notifyContextStart();
                                     loginDialog.onComplete();
+                                    //TODO AM: is this necessary to be done on display thread? 
                                     new TermLoader().unloadAllTerms();
                                     Rank.initDefaultTerms();
                                     NomenclaturalStatusType.initDefaultTerms();
index 888c4411f26e5f4a282e2237c84d4a8901349d9c..81e0149cfd76f7c80601f54760054d2a9619ce87 100644 (file)
@@ -42,6 +42,10 @@ public class TermManager {
 
        public TermManager(){
        }
+       
+       public void reset(){
+               cachedTermMap = new HashMap<>();
+       }
 
        public <T extends DefinedTermBase> List<T> getPreferredTerms(TermType termType){
            List<?> terms = cachedTermMap.get(termType);