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;