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 699c30e  Improved:  Fix some bugs Spotbugs reports (OFBIZ-12386)
699c30e is described below

commit 699c30ed85fabaad960a09f08113a224f644c0b9
Author: Jacques Le Roux <jacques.le.r...@les7arts.com>
AuthorDate: Tue Nov 30 19:03:24 2021 +0100

    Improved:  Fix some bugs Spotbugs reports (OFBIZ-12386)
    
    Fixes possible null dereferencings
    
    For FormRenderer.java it was accidentally removed for OFBIZ-12422
---
 .../apache/ofbiz/content/data/DataResourceWorker.java   |  9 +++++++--
 .../main/java/org/apache/ofbiz/base/util/UtilMisc.java  |  3 ++-
 .../org/apache/ofbiz/minilang/SimpleServiceEngine.java  | 17 ++++++++++-------
 .../org/apache/ofbiz/widget/renderer/FormRenderer.java  |  4 ++--
 4 files changed, 21 insertions(+), 12 deletions(-)

diff --git 
a/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java
 
b/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java
index 528b1b7..b3221af 100644
--- 
a/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java
+++ 
b/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java
@@ -821,8 +821,13 @@ public class DataResourceWorker implements 
org.apache.ofbiz.widget.content.DataR
                     }
                     String formrenderer = 
modelTheme.getFormRendererLocation("screen");
                     MacroFormRenderer renderer = new 
MacroFormRenderer(formrenderer, request, response);
-                    FormRenderer formRenderer = new FormRenderer(modelForm, 
renderer);
-                    formRenderer.render(out, context);
+                    FormRenderer formRenderer = null;
+                    if (modelForm != null) {
+                        formRenderer = new FormRenderer(modelForm, renderer);
+                        formRenderer.render(out, context);
+                    } else {
+                        throw new GeneralException("Error rendering Screen 
template");
+                    }
                 } catch (TemplateException e) {
                     throw new GeneralException("Error creating Screen 
renderer", e);
                 } catch (Exception e) {
diff --git 
a/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilMisc.java 
b/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilMisc.java
index 5c724f9..878f222 100644
--- a/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilMisc.java
+++ b/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilMisc.java
@@ -611,8 +611,9 @@ public final class UtilMisc {
         List<String> hostHeadersAllowed = null;
         if (UtilValidate.isNotEmpty(hostHeadersAllowedString)) {
             hostHeadersAllowed = StringUtil.split(hostHeadersAllowedString, 
",");
+            hostHeadersAllowed = 
Collections.unmodifiableList(hostHeadersAllowed);
         }
-        return Collections.unmodifiableList(hostHeadersAllowed);
+        return hostHeadersAllowed;
     }
 
     /**
diff --git 
a/framework/minilang/src/main/java/org/apache/ofbiz/minilang/SimpleServiceEngine.java
 
b/framework/minilang/src/main/java/org/apache/ofbiz/minilang/SimpleServiceEngine.java
index d597cdf..b82cad9 100644
--- 
a/framework/minilang/src/main/java/org/apache/ofbiz/minilang/SimpleServiceEngine.java
+++ 
b/framework/minilang/src/main/java/org/apache/ofbiz/minilang/SimpleServiceEngine.java
@@ -74,14 +74,17 @@ public final class SimpleServiceEngine extends 
GenericAsyncEngine {
         ClassLoader classLoader = null;
         if (dctx != null) {
             classLoader = dctx.getClassLoader();
-        }
-        // if the classLoader is null, no big deal, SimpleMethod will use the
-        // current thread's ClassLoader by default if null passed in
-        try {
-            return 
SimpleMethod.runSimpleService(this.getLocation(modelService), 
modelService.getInvoke(), dctx, context, classLoader);
-        } catch (MiniLangException e) {
+            // if the classLoader is null, no big deal, SimpleMethod will use 
the
+            // current thread's ClassLoader by default if null passed in
+            try {
+                return 
SimpleMethod.runSimpleService(this.getLocation(modelService), 
modelService.getInvoke(), dctx, context, classLoader);
+            } catch (MiniLangException e) {
+                throw new GenericServiceException("Error running simple method 
[" + modelService.getInvoke() + "] in XML file ["
+                        + modelService.getLocation() + "]: ", e);
+            }
+        } else {
             throw new GenericServiceException("Error running simple method [" 
+ modelService.getInvoke() + "] in XML file ["
-                    + modelService.getLocation() + "]: ", e);
+                    + modelService.getLocation() + "]");
         }
     }
 }
diff --git 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormRenderer.java
 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormRenderer.java
index 7d68b34..eef4a91 100644
--- 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormRenderer.java
+++ 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormRenderer.java
@@ -1232,7 +1232,7 @@ public class FormRenderer {
         }
         int itemIndex = -1;
         if (iter instanceof EntityListIterator) {
-            EntityListIterator eli = (EntityListIterator) iter;
+            EntityListIterator eli = (EntityListIterator) iter; // INFO 
Spotbugs reports here "'eli' is never closed" but that's on purpose
             try {
                 if (eli.getResultsSizeAfterPartialList() > 0) {
                     itemIndex++;
@@ -1240,7 +1240,7 @@ public class FormRenderer {
             } catch (GenericEntityException gee) {
                 Debug.logError(gee, MODULE);
             }
-        } else {
+        } else if (iter != null) {
             while (iter.hasNext()) {
                 itemIndex++;
                 break;

Reply via email to