This is an automated email from the ASF dual-hosted git repository.
jleroux pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/trunk by this push:
new cfb5de4 Improved: Fix some bugs Spotbugs reports (OFBIZ-12386)
cfb5de4 is described below
commit cfb5de424619991c81283adb5c3b103883847d7a
Author: Jacques Le Roux <[email protected]>
AuthorDate: Mon Nov 29 14:00:09 2021 +0100
Improved: Fix some bugs Spotbugs reports (OFBIZ-12386)
Fixes possible null dereferencings
---
.../apache/ofbiz/product/config/ProductConfigWrapper.java | 10 ++++++----
.../org/apache/ofbiz/widget/model/ModelScreenCondition.java | 5 ++++-
.../main/java/org/apache/ofbiz/widget/model/ModelTree.java | 13 +++++++++----
.../apache/ofbiz/widget/renderer/html/HtmlTreeRenderer.java | 4 ++--
.../ofbiz/widget/renderer/macro/MacroTreeRenderer.java | 5 +++--
5 files changed, 24 insertions(+), 13 deletions(-)
diff --git
a/applications/product/src/main/java/org/apache/ofbiz/product/config/ProductConfigWrapper.java
b/applications/product/src/main/java/org/apache/ofbiz/product/config/ProductConfigWrapper.java
index e1ba46b..7307391 100644
---
a/applications/product/src/main/java/org/apache/ofbiz/product/config/ProductConfigWrapper.java
+++
b/applications/product/src/main/java/org/apache/ofbiz/product/config/ProductConfigWrapper.java
@@ -30,8 +30,8 @@ import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
-
import java.util.stream.Collectors;
+
import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.GeneralException;
import org.apache.ofbiz.base.util.UtilMisc;
@@ -703,9 +703,11 @@ public class ProductConfigWrapper implements Serializable {
&& otherOptions.size() != mineOptions.size()) {
return false;
}
- for (int i = 0; i < mineOptions.size(); i++) {
- if (!mineOptions.get(i).equals(otherOptions.get(i))) {
- return false;
+ if (mineOptions != null) {
+ for (int i = 0; i < mineOptions.size(); i++) {
+ if (!mineOptions.get(i).equals(otherOptions.get(i))) {
+ return false;
+ }
}
}
return true;
diff --git
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelScreenCondition.java
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelScreenCondition.java
index beb0151..31ca852 100644
---
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelScreenCondition.java
+++
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelScreenCondition.java
@@ -64,7 +64,10 @@ public final class ModelScreenCondition {
public boolean eval(Map<String, Object> context) {
Object obj = context.get("sections");
Map<String, Object> sectionsMap = (obj instanceof Map) ?
UtilGenerics.cast(obj) : null;
- return
!sectionsMap.containsKey(this.sectionExdr.expandString(context));
+ if (sectionsMap != null) {
+ return
!sectionsMap.containsKey(this.sectionExdr.expandString(context));
+ }
+ return false;
}
public FlexibleStringExpander getSectionExdr() {
diff --git
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelTree.java
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelTree.java
index 4ae9f2e..be72c0a 100644
---
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelTree.java
+++
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelTree.java
@@ -680,7 +680,9 @@ public class ModelTree extends ModelWidget {
} else {
id = (String) context.get(pkName);
}
- currentNodeTrail.add(id);
+ if (currentNodeTrail != null) {
+ currentNodeTrail.add(id);
+ }
treeStringRenderer.renderNodeBegin(writer, context, this,
depth);
try {
String screenName = null;
@@ -737,9 +739,12 @@ public class ModelTree extends ModelWidget {
throw new RuntimeException(errMsg);
}
treeStringRenderer.renderNodeEnd(writer, context, this);
- int removeIdx = currentNodeTrail.size() - 1;
- if (removeIdx >= 0) {
- currentNodeTrail.remove(removeIdx);
+ int removeIdx = 0;
+ if (currentNodeTrail != null) {
+ removeIdx = currentNodeTrail.size() - 1;
+ if (removeIdx >= 0) {
+ currentNodeTrail.remove(removeIdx);
+ }
}
}
}
diff --git
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/html/HtmlTreeRenderer.java
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/html/HtmlTreeRenderer.java
index 9584134..b6645c8 100644
---
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/html/HtmlTreeRenderer.java
+++
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/html/HtmlTreeRenderer.java
@@ -38,8 +38,8 @@ import org.apache.ofbiz.widget.model.ModelTree;
import org.apache.ofbiz.widget.model.ModelWidget;
import org.apache.ofbiz.widget.renderer.ScreenRenderer;
import org.apache.ofbiz.widget.renderer.ScreenStringRenderer;
-import org.apache.ofbiz.widget.renderer.VisualTheme;
import org.apache.ofbiz.widget.renderer.TreeStringRenderer;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
import org.apache.ofbiz.widget.renderer.macro.MacroScreenRenderer;
import freemarker.template.TemplateException;
@@ -87,7 +87,7 @@ public class HtmlTreeRenderer extends HtmlWidgetRenderer
implements TreeStringRe
String targetEntityId = null;
Object obj1 = context.get("targetNodeTrail");
List<String> targetNodeTrail = (obj1 instanceof List) ?
UtilGenerics.cast(obj1) : null;
- if (depth < targetNodeTrail.size()) {
+ if (targetNodeTrail != null && depth < targetNodeTrail.size()) {
targetEntityId = targetNodeTrail.get(depth);
}
// FIXME: Using a widget model in this way is an ugly hack.
diff --git
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroTreeRenderer.java
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroTreeRenderer.java
index 27db602..8871e25 100644
---
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroTreeRenderer.java
+++
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroTreeRenderer.java
@@ -29,7 +29,6 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import com.google.common.collect.ImmutableList;
import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.StringUtil;
import org.apache.ofbiz.base.util.UtilGenerics;
@@ -46,6 +45,8 @@ import org.apache.ofbiz.widget.renderer.ScreenRenderer;
import org.apache.ofbiz.widget.renderer.ScreenStringRenderer;
import org.apache.ofbiz.widget.renderer.TreeStringRenderer;
+import com.google.common.collect.ImmutableList;
+
import freemarker.core.Environment;
import freemarker.template.Template;
import freemarker.template.TemplateException;
@@ -157,7 +158,7 @@ public class MacroTreeRenderer implements
TreeStringRenderer {
String targetEntityId = null;
Object obj1 = context.get("targetNodeTrail");
List<String> targetNodeTrail = (obj1 instanceof List) ?
UtilGenerics.cast(obj1) : null;
- if (depth < targetNodeTrail.size()) {
+ if (targetNodeTrail != null && depth < targetNodeTrail.size()) {
targetEntityId = targetNodeTrail.get(depth);
}