You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by sa...@apache.org on 2010/07/17 10:49:07 UTC

svn commit: r965033 - in /click/trunk/click: extras/src/org/apache/click/extras/control/ framework/src/org/apache/click/control/ framework/src/org/apache/click/element/

Author: sabob
Date: Sat Jul 17 08:49:06 2010
New Revision: 965033

URL: http://svn.apache.org/viewvc?rev=965033&view=rev
Log:
fixed concurrentModificationExceptions when rendering controls and elements. CLK-712

Modified:
    click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java
    click/trunk/click/framework/src/org/apache/click/control/FieldSet.java
    click/trunk/click/framework/src/org/apache/click/control/Form.java
    click/trunk/click/framework/src/org/apache/click/element/CssImport.java
    click/trunk/click/framework/src/org/apache/click/element/JsImport.java

Modified: click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java
URL: http://svn.apache.org/viewvc/click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java?rev=965033&r1=965032&r2=965033&view=diff
==============================================================================
--- click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java (original)
+++ click/trunk/click/extras/src/org/apache/click/extras/control/PickList.java Sat Jul 17 08:49:06 2010
@@ -837,14 +837,10 @@ public class PickList extends Field {
         HtmlStringBuffer attributesBuffer = new HtmlStringBuffer();
 
         // Add the CSS class 'picklist' to buffer
-        String cssClass = null;
         if (hasAttribute("class")) {
-            cssClass = getAttribute("class");
+            String cssClass = getAttribute("class");
             attributesBuffer.append("class=\"");
             if (cssClass != null) {
-                // If class attribute exists, temporarily remove it
-                setAttribute("class", null);
-
                 attributesBuffer.append(cssClass).append(" ");
             }
             attributesBuffer.append("picklist\"");
@@ -853,12 +849,13 @@ public class PickList extends Field {
         }
 
         if (hasAttributes()) {
-            attributesBuffer.appendAttributes(getAttributes());
-        }
-
-        // Restore class attribute
-        if (cssClass != null) {
-            setAttribute("class", cssClass);
+            Map<String, String> localAttributes = getAttributes();
+            for (String attrName : localAttributes.keySet()) {
+                if (!attrName.equals("id") && !attrName.equals("class")) {
+                    Object attrValue = localAttributes.get(attrName);
+                    attributesBuffer.appendAttributeEscaped(attrName, attrValue);
+                }
+            }
         }
 
         Map<String, Object> model = new HashMap<String, Object>();

Modified: click/trunk/click/framework/src/org/apache/click/control/FieldSet.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/src/org/apache/click/control/FieldSet.java?rev=965033&r1=965032&r2=965033&view=diff
==============================================================================
--- click/trunk/click/framework/src/org/apache/click/control/FieldSet.java (original)
+++ click/trunk/click/framework/src/org/apache/click/control/FieldSet.java Sat Jul 17 08:49:06 2010
@@ -1052,17 +1052,12 @@ public class FieldSet extends Field impl
                     }
 
                     if (label.hasAttributes()) {
-                        //Temporarily remove the style attribute
-                        String tempStyle = null;
-                        if (label.hasAttribute("style")) {
-                            tempStyle = label.getAttribute("style");
-                            label.setAttribute("style", null);
-                        }
-                        buffer.appendAttributes(label.getAttributes());
-
-                        //Put style back in attribute map
-                        if (tempStyle != null) {
-                            label.setAttribute("style", tempStyle);
+                        Map<String, String> labelAttributes = label.getAttributes();
+                        for (String labelAttrName : labelAttributes.keySet()) {
+                            if (!labelAttrName.equals("id") && !labelAttrName.equals("style")) {
+                                Object labelAttrValue = labelAttributes.get(labelAttrName);
+                                buffer.appendAttributeEscaped(labelAttrName, labelAttrValue);
+                            }
                         }
                     }
                     buffer.append(">");

Modified: click/trunk/click/framework/src/org/apache/click/control/Form.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/src/org/apache/click/control/Form.java?rev=965033&r1=965032&r2=965033&view=diff
==============================================================================
--- click/trunk/click/framework/src/org/apache/click/control/Form.java (original)
+++ click/trunk/click/framework/src/org/apache/click/control/Form.java Sat Jul 17 08:49:06 2010
@@ -2509,17 +2509,12 @@ public class Form extends AbstractContai
                     }
 
                     if (label.hasAttributes()) {
-                        //Temporarily remove the style attribute
-                        String tempStyle = null;
-                        if (label.hasAttribute("style")) {
-                            tempStyle = label.getAttribute("style");
-                            label.setAttribute("style", null);
-                        }
-                        buffer.appendAttributes(label.getAttributes());
-
-                        //Put style back in attribute map
-                        if (tempStyle != null) {
-                            label.setAttribute("style", tempStyle);
+                        Map<String, String> labelAttributes = label.getAttributes();
+                        for (String labelAttrName : labelAttributes.keySet()) {
+                            if (!labelAttrName.equals("id") && !labelAttrName.equals("style")) {
+                                Object labelAttrValue = labelAttributes.get(labelAttrName);
+                                buffer.appendAttributeEscaped(labelAttrName, labelAttrValue);
+                            }
                         }
                     }
                     buffer.append(">");

Modified: click/trunk/click/framework/src/org/apache/click/element/CssImport.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/src/org/apache/click/element/CssImport.java?rev=965033&r1=965032&r2=965033&view=diff
==============================================================================
--- click/trunk/click/framework/src/org/apache/click/element/CssImport.java (original)
+++ click/trunk/click/framework/src/org/apache/click/element/CssImport.java Sat Jul 17 08:49:06 2010
@@ -18,6 +18,7 @@
  */
 package org.apache.click.element;
 
+import java.util.Map;
 import org.apache.click.Context;
 import org.apache.click.util.ClickUtils;
 import org.apache.click.util.HtmlStringBuffer;
@@ -216,13 +217,13 @@ public class CssImport extends ResourceE
         String href = getHref();
         renderResourcePath(buffer, "href", href);
 
-        // Temporarily remove href attribute while other attributes are rendered
-        setAttribute("href", null);
-
-        appendAttributes(buffer);
-
-        // Restore href attribute
-        setAttribute("href", href);
+        Map<String, String> localAttributes = getAttributes();
+        for (String name : localAttributes.keySet()) {
+            if (!name.equals("id") && !name.equals("href")) {
+                Object value = localAttributes.get(name);
+                buffer.appendAttributeEscaped(name, value);
+            }
+        }
 
         buffer.elementEnd();
 

Modified: click/trunk/click/framework/src/org/apache/click/element/JsImport.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/src/org/apache/click/element/JsImport.java?rev=965033&r1=965032&r2=965033&view=diff
==============================================================================
--- click/trunk/click/framework/src/org/apache/click/element/JsImport.java (original)
+++ click/trunk/click/framework/src/org/apache/click/element/JsImport.java Sat Jul 17 08:49:06 2010
@@ -18,6 +18,7 @@
  */
 package org.apache.click.element;
 
+import java.util.Map;
 import org.apache.click.Context;
 import org.apache.click.util.ClickUtils;
 import org.apache.click.util.HtmlStringBuffer;
@@ -215,13 +216,13 @@ public class JsImport extends ResourceEl
         String src = getSrc();
         renderResourcePath(buffer, "src", src);
 
-        // Temporarily remove src attribute while other attributes are rendered
-        setAttribute("src", null);
-
-        appendAttributes(buffer);
-
-        // Restore src attribute
-        setAttribute("src", src);
+        Map<String, String> localAttributes = getAttributes();
+        for (String name : localAttributes.keySet()) {
+            if (!name.equals("id") && !name.equals("src")) {
+                Object value = localAttributes.get(name);
+                buffer.appendAttributeEscaped(name, value);
+            }
+        }
 
         buffer.closeTag();