From b95f8dfc5055e6a0db22af2c70b41f172c804c60 Mon Sep 17 00:00:00 2001 From: Jeromy Evans Date: Wed, 20 Feb 2008 02:52:27 +0000 Subject: [PATCH] WW-2498 Minor change to avoid NPE when parseContent attribute is missing on dojo tags or in the context. Defaults to false if null. git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@629326 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/struts2/dojo/components/AbstractRemoteBean.java | 3 ++- .../org/apache/struts2/dojo/components/Autocompleter.java | 5 ++++- .../org/apache/struts2/dojo/components/DateTimePicker.java | 5 ++++- .../java/org/apache/struts2/dojo/components/Submit.java | 7 +++++-- .../org/apache/struts2/dojo/components/TabbedPanel.java | 5 ++++- .../java/org/apache/struts2/dojo/components/TextArea.java | 5 ++++- .../main/java/org/apache/struts2/dojo/components/Tree.java | 7 +++++-- .../java/org/apache/struts2/dojo/components/TreeNode.java | 5 ++++- 8 files changed, 32 insertions(+), 10 deletions(-) diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java index 04095b30e..9068a3753 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java @@ -110,8 +110,9 @@ public abstract class AbstractRemoteBean extends ClosingUIBean implements Remote else addParameter("parseContent", true); + // generate a random ID if not explicitly set and not parsing the content Boolean parseContent = (Boolean)stack.getContext().get(Head.PARSE_CONTENT); - boolean generateId = (parseContent != null ? !parseContent : false); + boolean generateId = (parseContent != null ? !parseContent : true); addParameter("pushId", generateId); if ((this.id == null || this.id.length() == 0) && generateId) { diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java index 39f6ace5f..9236f9cc9 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java @@ -324,7 +324,10 @@ public class Autocompleter extends ComboBox { if (resultsLimit != null) addParameter("searchLimit", findString(resultsLimit)); - boolean generateId = !(Boolean)stack.getContext().get(Head.PARSE_CONTENT); + // generate a random ID if not explicitly set and not parsing the content + Boolean parseContent = (Boolean)stack.getContext().get(Head.PARSE_CONTENT); + boolean generateId = (parseContent != null ? !parseContent : true); + addParameter("pushId", generateId); if ((this.id == null || this.id.length() == 0) && generateId) { // resolves Math.abs(Integer.MIN_VALUE) issue reported by FindBugs diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java index 2c523ddd7..2286f5b7a 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java @@ -264,7 +264,10 @@ public class DateTimePicker extends UIBean { } } - boolean generateId = !(Boolean)stack.getContext().get(Head.PARSE_CONTENT); + // generate a random ID if not explicitly set and not parsing the content + Boolean parseContent = (Boolean)stack.getContext().get(Head.PARSE_CONTENT); + boolean generateId = (parseContent != null ? !parseContent : true); + addParameter("pushId", generateId); if ((this.id == null || this.id.length() == 0) && generateId) { // resolves Math.abs(Integer.MIN_VALUE) issue reported by FindBugs diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java index 983b627a3..8c2607947 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java @@ -236,8 +236,11 @@ public class Submit extends FormButton implements RemoteBean { if (ajaxAfterValidation != null) addParameter("ajaxAfterValidation", findValue(ajaxAfterValidation, Boolean.class)); - - boolean generateId = !(Boolean)stack.getContext().get(Head.PARSE_CONTENT); + + // generate a random ID if not explicitly set and not parsing the content + Boolean parseContent = (Boolean)stack.getContext().get(Head.PARSE_CONTENT); + boolean generateId = (parseContent != null ? !parseContent : true); + addParameter("pushId", generateId); if ((this.id == null || this.id.length() == 0) && generateId) { // resolves Math.abs(Integer.MIN_VALUE) issue reported by FindBugs diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java index d423ecd8b..80a25c7b1 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java @@ -128,7 +128,10 @@ public class TabbedPanel extends ClosingUIBean { addParameter("useSelectedTabCookie", findString(useSelectedTabCookie)); } - boolean generateId = !(Boolean)stack.getContext().get(Head.PARSE_CONTENT); + // generate a random ID if not explicitly set and not parsing the content + Boolean parseContent = (Boolean)stack.getContext().get(Head.PARSE_CONTENT); + boolean generateId = (parseContent != null ? !parseContent : true); + addParameter("pushId", generateId); if ((this.id == null || this.id.length() == 0) && generateId) { // resolves Math.abs(Integer.MIN_VALUE) issue reported by FindBugs diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TextArea.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TextArea.java index 79dc07e81..4b5b0db38 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TextArea.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TextArea.java @@ -47,7 +47,10 @@ public class TextArea extends org.apache.struts2.components.TextArea { public void evaluateExtraParams() { super.evaluateExtraParams(); - boolean generateId = !(Boolean)stack.getContext().get(Head.PARSE_CONTENT); + // generate a random ID if not explicitly set and not parsing the content + Boolean parseContent = (Boolean)stack.getContext().get(Head.PARSE_CONTENT); + boolean generateId = (parseContent != null ? !parseContent : true); + addParameter("pushId", generateId); if ((this.id == null || this.id.length() == 0) && generateId) { // resolves Math.abs(Integer.MIN_VALUE) issue reported by FindBugs diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Tree.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Tree.java index d7aee92f9..1272b6161 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Tree.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Tree.java @@ -253,8 +253,11 @@ public class Tree extends ClosingUIBean { addParameter("href", findString(href)); if (errorNotifyTopics != null) addParameter("errorNotifyTopics", findString(errorNotifyTopics)); - - boolean generateId = !(Boolean)stack.getContext().get(Head.PARSE_CONTENT); + + // generate a random ID if not explicitly set and not parsing the content + Boolean parseContent = (Boolean)stack.getContext().get(Head.PARSE_CONTENT); + boolean generateId = (parseContent != null ? !parseContent : true); + addParameter("pushId", generateId); if ((this.id == null || this.id.length() == 0) && generateId) { // resolves Math.abs(Integer.MIN_VALUE) issue reported by FindBugs diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TreeNode.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TreeNode.java index 06525eb5d..8a24ae946 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TreeNode.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TreeNode.java @@ -115,7 +115,10 @@ public class TreeNode extends ClosingUIBean { protected void evaluateExtraParams() { super.evaluateExtraParams(); - boolean generateId = !(Boolean)stack.getContext().get(Head.PARSE_CONTENT); + // generate a random ID if not explicitly set and not parsing the content + Boolean parseContent = (Boolean)stack.getContext().get(Head.PARSE_CONTENT); + boolean generateId = (parseContent != null ? !parseContent : true); + addParameter("pushId", generateId); if ((this.id == null || this.id.length() == 0) && generateId) { // resolves Math.abs(Integer.MIN_VALUE) issue reported by FindBugs