ref #9405 , ref #4944 fix NPE in CacheRelevanceHelper
authorAndreas Müller <a.mueller@bgbm.org>
Mon, 25 Jan 2021 13:24:29 +0000 (14:24 +0100)
committerAndreas Müller <a.mueller@bgbm.org>
Mon, 25 Jan 2021 13:25:19 +0000 (14:25 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CacheRelevanceHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java

index 1e22f726805896fa32fe4a4c635b3837cdeca4f3..a1cacf30153c432ca50357cbad0ffb55e59fa317 100644 (file)
@@ -22,17 +22,21 @@ public class CacheRelevanceHelper {
     public CacheRelevance cacheRelevance() {
         CacheRelevance result = CacheRelevance.NONE;
         for (ToggleableTextElement cache : this.cacheDependencies){
-            if (cache.getState()){
-                result = result.addCacheRelevance(cache.getRelevance());
+            if (cache != null){  //null should not happen anymore but just in case
+                if (cache.getState()){
+                    result = result.addCacheRelevance(cache.getRelevance());
+                }
+                //add recursion for light dependencies
+                result = result.addCacheRelevance(cache.cacheRelevance().getLight());
             }
-            //add recursion for light dependencies
-            result = result.addCacheRelevance(cache.cacheRelevance().getLight());
         }
         return result;
     }
 
     public void addDependsOnCache(ToggleableTextElement toggleElement) {
-        cacheDependencies.add(toggleElement);
+        if (toggleElement != null){
+            cacheDependencies.add(toggleElement);
+        }
     }
 
     /**
index 1acab239b092dd2f34c9de411a3b2983f68ad9fd..ca12af7193df99d24c321706d1f7ab5598b8ff54 100644 (file)
@@ -156,7 +156,9 @@ public abstract class AbstractCdmDetailElement<T>
     protected void registerCacheRelevance(ICacheRelevantFormElement element, ToggleableTextElement... toggleableCaches) {
         if (element != null && toggleableCaches != null) {
              for (ToggleableTextElement toggleableCache : toggleableCaches){
-                 element.addDependsOnCache(toggleableCache);
+                 if (toggleableCache != null){
+                     element.addDependsOnCache(toggleableCache);
+                 }
              }
         }
 //        updateCacheRelevance();