ref #8631: fix ClassCastException for abcd import and NPE in abcd preferences
authorKatja Luther <k.luther@bgbm.org>
Wed, 30 Oct 2019 09:21:49 +0000 (10:21 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 30 Oct 2019 09:21:49 +0000 (10:21 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java

index 6ac2be0150efec6a7285cfaf7bfbae332be9faf4..9517b726b1a8565289b8bbb21c3668e01ffd6cbd 100644 (file)
@@ -66,10 +66,10 @@ import eu.etaxonomy.cdm.io.common.ExportDataWrapper;
 import eu.etaxonomy.cdm.io.common.ExportResult;
 import eu.etaxonomy.cdm.io.common.ExportResultType;
 import eu.etaxonomy.cdm.io.common.ExportType;
+import eu.etaxonomy.cdm.io.common.ImportResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.term.IEnumTerm;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
@@ -800,19 +800,28 @@ public abstract class AbstractUtility {
     }
     public static void updateNameEditors(IRemotingProgressMonitor remotingMonitor){
         List<Taxon> taxaToUpdate = new ArrayList();
-        for (CdmBase object: ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects()){
-            Taxon taxon = null;
-            TaxonNode node = null;
-            if (object instanceof Taxon){
-                taxon = HibernateProxyHelper.deproxy(object, Taxon.class);
+        if (remotingMonitor.getResult() instanceof UpdateResult){
+            for (CdmBase object: ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects()){
+                Taxon taxon = null;
 
+                if (object instanceof Taxon){
+                    taxon = HibernateProxyHelper.deproxy(object, Taxon.class);
 
-            }else if (object instanceof Synonym){
-                Synonym syn = HibernateProxyHelper.deproxy(object, Synonym.class);
-                taxon = syn.getAcceptedTaxon();
+
+                }else if (object instanceof Synonym){
+                    Synonym syn = HibernateProxyHelper.deproxy(object, Synonym.class);
+                    taxon = syn.getAcceptedTaxon();
+                }
+                taxaToUpdate.add(taxon);
+            }
+        }else if (remotingMonitor.getResult() instanceof ImportResult){
+            Map<String, Integer> result = ((ImportResult)remotingMonitor.getResult()).getUpdatedRecords();
+            for (Map.Entry<String, Integer> object: result.entrySet()){
+                //TODO
             }
-            taxaToUpdate.add(taxon);
         }
+
+
         EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, taxaToUpdate);
     }
 
index 2ad4394db109690d553a2f5f02fd8ed8ce1133f8..dfa09c8828ad39adcf29b5899d1031bdee983891 100644 (file)
@@ -1541,7 +1541,7 @@ public class PreferencesUtil implements IPreferenceKeys {
     public static Abcd206ImportConfigurator getLocalAbcdImportConfigurator(boolean skipCheckOverride){
        Abcd206ImportConfigurator config = Abcd206ImportConfigurator.NewInstance(null,null);
        CdmPreference pref = CdmPreferenceCache.instance().get(PreferencePredicate.AbcdImportConfig.getKey());
-       if (pref.isAllowOverride()){
+       if (pref  == null || pref.isAllowOverride()){
        String configString = PreferencesUtil.getStringValue(IPreferenceKeys.LAST_USED_ABCD_CONFIG);
            if (StringUtils.isBlank(configString)){
                configString = getStringValue(PreferencePredicate.AbcdImportConfig.getKey(), skipCheckOverride);