From: Katja Luther Date: Mon, 6 Apr 2020 08:14:26 +0000 (+0200) Subject: fix #8939: fix getIntValue for preference with no db and no local preference X-Git-Tag: 5.14.0^2~11 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/c6df97c52c7252b0fdd708029155ddfca164ffaf fix #8939: fix getIntValue for preference with no db and no local preference --- diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java index 6397436d0..cd7a8faa4 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java @@ -337,18 +337,7 @@ public class PreferencesUtil implements IPreferenceKeys { result = Integer.parseInt(prefValue); }catch(NumberFormatException e){ logger.debug("Preference value of " + name + " is not a number"); - if (prefValue == null){ - if (pref != null){ - String predicate = pref.getPredicate(); - IPreferencePredicate pred = PreferencePredicate.getByKey(predicate); - Object defaultValue = pred.getDefaultValue(); - if (defaultValue instanceof String){ - result = Integer.valueOf((String)defaultValue); - } else if (defaultValue instanceof Integer){ - result = (Integer)defaultValue; - } - } - } + } String overrideKey = createPreferenceString(createOverridePreferenceString(name)); boolean override = getPreferenceStore().getBoolean(overrideKey); @@ -356,19 +345,27 @@ public class PreferencesUtil implements IPreferenceKeys { String dbSpecific = prefKey(name); if (getPreferenceStore().contains(dbSpecific)){ result = getPreferenceStore().getInt(dbSpecific); - }else{ - if (result == null){ - IPreferencePredicate pred = PreferencePredicate.getByKey(name); - if (pred != null){ - if (pred.getDefaultValue() instanceof Integer){ - return (Integer)pred.getDefaultValue(); - }else if (pred.getDefaultValue() != null){ - return Integer.valueOf(pred.getDefaultValue().toString()); - } + } + } + if (result == null){ + IPreferencePredicate pred = PreferencePredicate.getByKey(name); + if (pred != null){ + if (pred.getDefaultValue() instanceof Integer){ + result = (Integer)pred.getDefaultValue(); + }else if (pred.getDefaultValue() != null){ + try{ + result = Integer.valueOf(pred.getDefaultValue().toString()); + }catch(NumberFormatException e){ + logger.debug("Preference value of " + name + " is not a number"); + result = 0; } - return 0; } } + //if no default value available + if (result == null){ + result = 0; + } + } return result;