You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mb...@apache.org on 2017/12/19 13:36:37 UTC

svn commit: r1818667 - /ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java

Author: mbrohl
Date: Tue Dec 19 13:36:37 2017
New Revision: 1818667

URL: http://svn.apache.org/viewvc?rev=1818667&view=rev
Log:
Fixed: Potential Nullpointer in ContentWorker.checkConditions()
(OFBIZ-10051)

Thanks Dennis Balkir for reporting and providing the patch.

Modified:
    ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java

Modified: ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java?rev=1818667&r1=1818666&r2=1818667&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java Tue Dec 19 13:36:37 2017
@@ -1233,37 +1233,39 @@ public class ContentWorker implements or
     public static void checkConditions(Delegator delegator, Map<String, Object> trailNode, Map<String, Object> contentAssoc, Map<String, Object> whenMap) {
         Map<String, Object> context = new HashMap<String, Object>();
         GenericValue content = (GenericValue)trailNode.get("value");
-        if (contentAssoc == null && content != null && (content.getEntityName().indexOf("Assoc") >= 0)) {
-            contentAssoc = delegator.makeValue("ContentAssoc");
+        if (content != null) {
+            context.put("content", content);
+            List<Object> purposes = getPurposes(content);
+            context.put("purposes", purposes);
+            List<Object> sections = getSections(content);
+            context.put("sections", sections);
+            List<Object> topics = getTopics(content);
+            context.put("topics", topics);
+            String contentTypeId = (String)content.get("contentTypeId");
+            List<String> contentTypeAncestry = new LinkedList<String>();
             try {
-                // TODO: locale needs to be gotten correctly
-                SimpleMapProcessor.runSimpleMapProcessor("component://content/minilang/ContentManagementMapProcessors.xml", "contentAssocIn", content, contentAssoc, new LinkedList<Object>(), Locale.getDefault());
-                context.put("contentAssocTypeId", contentAssoc.get("contentAssocTypeId"));
-                context.put("contentAssocPredicateId", contentAssoc.get("contentAssocPredicateId"));
-                context.put("mapKey", contentAssoc.get("mapKey"));
-            } catch (MiniLangException e) {
+                getContentTypeAncestry(delegator, contentTypeId, contentTypeAncestry);
+            } catch (GenericEntityException e) {
                 Debug.logError(e.getMessage(), module);
             }
-        } else {
-            context.put("contentAssocTypeId", null);
-            context.put("contentAssocPredicateId", null);
-            context.put("mapKey", null);
-        }
-        context.put("content", content);
-        List<Object> purposes = getPurposes(content);
-        context.put("purposes", purposes);
-        List<Object> sections = getSections(content);
-        context.put("sections", sections);
-        List<Object> topics = getTopics(content);
-        context.put("topics", topics);
-        String contentTypeId = (String)content.get("contentTypeId");
-        List<String> contentTypeAncestry = new LinkedList<String>();
-        try {
-            getContentTypeAncestry(delegator, contentTypeId, contentTypeAncestry);
-        } catch (GenericEntityException e) {
-            Debug.logError(e.getMessage(), module);
+            context.put("typeAncestry", contentTypeAncestry);
+            if (contentAssoc == null && (content.getEntityName().indexOf("Assoc") >= 0)) {
+                contentAssoc = delegator.makeValue("ContentAssoc");
+                try {
+                    // TODO: locale needs to be gotten correctly
+                    SimpleMapProcessor.runSimpleMapProcessor("component://content/minilang/ContentManagementMapProcessors.xml", "contentAssocIn", content, contentAssoc, new LinkedList<Object>(), Locale.getDefault());
+                    context.put("contentAssocTypeId", contentAssoc.get("contentAssocTypeId"));
+                    context.put("contentAssocPredicateId", contentAssoc.get("contentAssocPredicateId"));
+                    context.put("mapKey", contentAssoc.get("mapKey"));
+                } catch (MiniLangException e) {
+                    Debug.logError(e.getMessage(), module);
+                }
+            } else {
+                context.put("contentAssocTypeId", null);
+                context.put("contentAssocPredicateId", null);
+                context.put("mapKey", null);
+            }
         }
-        context.put("typeAncestry", contentTypeAncestry);
         boolean isReturnBefore = checkWhen(context, (String)whenMap.get("returnBeforePickWhen"), false);
         trailNode.put("isReturnBefore", Boolean.valueOf(isReturnBefore));
         boolean isPick = checkWhen(context, (String)whenMap.get("pickWhen"), true);