ref #8634: fix NPE and biocase provider for dna search
authorKatja Luther <k.luther@bgbm.org>
Tue, 5 Nov 2019 08:55:06 +0000 (09:55 +0100)
committerKatja Luther <k.luther@bgbm.org>
Tue, 5 Nov 2019 10:34:35 +0000 (11:34 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbcdImportPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ListComponent.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java

index 8e4b8437be97ff24b45aabf5d7ba49aa19b1a439..9b69bdc9e1051d92321377fe12cda2e2d62193a0 100755 (executable)
@@ -238,9 +238,17 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
         Label labelRef = new Label(composite, SWT.NONE);
         labelRef.setText("Biocase provider for associated DNA");
         textDNAProviderString = new Combo(composite, SWT.BORDER);
-        CdmPreference biocaseProvider = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.BioCaseProvider);
+        String biocaseProvider = null;
+        CdmPreference pref = null;
+
+        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.BioCaseProvider);
+        biocaseProvider =  pref!= null? pref.getValue():null;
+
+        if (!isAdminPreference && ((pref != null && pref.isAllowOverride()) || pref == null) ){
+            biocaseProvider = PreferencesUtil.getStringValue(PreferencePredicate.BioCaseProvider.getKey(), true);
+        }
         if (biocaseProvider != null){
-            String items[] = biocaseProvider.getValue().split(";");
+            String items[] = biocaseProvider.split(";");
             textDNAProviderString.setItems(items);
         }
 
index ca9ba7995b6062974a302f84ddb02cde97078e95..8a6f4730682552b9ccc14a6d257ada97a547dd97 100755 (executable)
@@ -56,6 +56,7 @@ public class ListComponent implements ModifyListener
     boolean isAdmin = false;
     CdmPreferencePage preferencePage;
     CdmPreference providerListPreference;
+    String providerList;
 
 
     public CdmPreference getProviderListPreference() {
@@ -71,6 +72,7 @@ public class ListComponent implements ModifyListener
     public ListComponent(Composite parent, int style, boolean isAdmin, CdmPreferencePage parentPage) {
         this.isAdmin= isAdmin;
         this.preferencePage = parentPage;
+
         providerListPreference = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.BioCaseProvider);
         if (!isAdmin && providerListPreference != null && !providerListPreference.isAllowOverride()){
             Label editingNotAllowed = new Label(parent, style);
@@ -88,24 +90,26 @@ public class ListComponent implements ModifyListener
         list.setBounds (clientArea.x, clientArea.y, 50, 500);
 
 
-        String allProviderString = ""; //$NON-NLS-1$
+        providerList = null; //$NON-NLS-1$
         String allProviderStringDB = "";
 
-        if (!isAdmin && (providerListPreference != null && providerListPreference.isAllowOverride())){
-            allProviderString = PreferencesUtil.getStringValue(PreferencePredicate.BioCaseProvider.getKey(), true);
+        if (!isAdmin && ((providerListPreference != null && providerListPreference.isAllowOverride()) || providerListPreference == null)){
+            providerList = PreferencesUtil.getStringValue(PreferencePredicate.BioCaseProvider.getKey(), true);
 
         }else{
             if (providerListPreference != null){
-                allProviderString  = providerListPreference.getValue();
+                providerList  = providerListPreference.getValue();
             }
         }
 
         //the string is structured like this: http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=DNA_Bank;http:...;
-        String[] providerArray = allProviderString.split(";"); //$NON-NLS-1$
-        for (String providerString : providerArray){
-            if (!StringUtils.isBlank(providerString)){
-                list.add(providerString);
+        if (providerList != null){
+            String[] providerArray = providerList.split(";"); //$NON-NLS-1$
+            for (String providerString : providerArray){
+                if (!StringUtils.isBlank(providerString)){
+                    list.add(providerString);
 
+                }
             }
         }
 
index 81b5935d790ac4c9ae6fdad457b3d0450ad8f848..0b5edb3c1f3ecae2b30d48f56b6246568dd16dc9 100644 (file)
@@ -985,6 +985,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         getPreferenceStore().setDefault(createPreferenceString(prefOverrideKey(PreferencePredicate.SearchForIdentifierAsDefault.getKey())), false);
         getPreferenceStore().setDefault(createPreferenceString(prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey())), false);
         getPreferenceStore().setDefault(createPreferenceString(prefOverrideKey(PreferencePredicate.ShowModifier.getKey())), false);
+        getPreferenceStore().setDefault(createPreferenceString(prefOverrideKey(PreferencePredicate.DistributionEditorActivated.getKey())), false);
 
     }