Author: apetrelli
Date: Wed Feb 11 13:22:13 2009
New Revision: 743332

URL: http://svn.apache.org/viewvc?rev=743332&view=rev
Log:
TILESSB-4
Fixed bugs in setCurrentContainer, PutListAttributeModel and AddAttributeModel.

Modified:
    
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
    
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
    
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java
    
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java

Modified: 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java?rev=743332&r1=743331&r2=743332&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
 Wed Feb 11 13:22:13 2009
@@ -81,9 +81,8 @@
     public static void setCurrentContainer(Environment env, String key) {
         TilesContainer container = getContainer(env, key);
         if (container != null) {
-            getServletContextHashModel(env).getServlet().getServletContext()
-                    .setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME,
-                            container);
+            getRequestHashModel(env).getRequest().setAttribute(
+                    ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
         } else {
             throw new NoSuchContainerException("The container with the key '"
                     + key + "' cannot be found");

Modified: 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java?rev=743332&r1=743331&r2=743332&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
 Wed Feb 11 13:22:13 2009
@@ -27,7 +27,7 @@
         Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
         Stack<Object> composeStack = FreeMarkerUtil.getComposeStack(env);
         model.start(composeStack, 
FreeMarkerUtil.getAsString(parms.get("role")),
-                FreeMarkerUtil.getAsBoolean(parms.get("role"), false));
+                FreeMarkerUtil.getAsBoolean(parms.get("inherit"), false));
         FreeMarkerUtil.evaluateBody(body);
         model.end(FreeMarkerUtil.getCurrentContainer(env), composeStack,
                 FreeMarkerUtil.getAsString(parms.get("name")), FreeMarkerUtil

Modified: 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java?rev=743332&r1=743331&r2=743332&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java
 Wed Feb 11 13:22:13 2009
@@ -19,7 +19,7 @@
         Attribute attribute = (Attribute) composeStack.pop();
         if(value != null) {
             attribute.setValue(value);
-        } else if (body != null) {
+        } else if (attribute.getValue() == null && body != null) {
             attribute.setValue(body);
         }
         if (expression != null) {

Modified: 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java?rev=743332&r1=743331&r2=743332&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
 Wed Feb 11 13:22:13 2009
@@ -3,6 +3,7 @@
 import java.util.Stack;
 
 import org.apache.tiles.AttributeContext;
+import org.apache.tiles.Definition;
 import org.apache.tiles.ListAttribute;
 import org.apache.tiles.TilesContainer;
 
@@ -18,8 +19,16 @@
     public void end(TilesContainer container,
             Stack<Object> composeStack, String name, boolean cascade, 
Object... requestItems) {
         ListAttribute listAttribute = (ListAttribute) composeStack.pop();
-        AttributeContext attributeContext = container
-                .getAttributeContext(requestItems);
+        AttributeContext attributeContext = null;
+        if (!composeStack.isEmpty()) {
+            Object obj = composeStack.peek();
+            if (obj instanceof Definition) {
+                attributeContext = (AttributeContext) obj;
+            }
+        }
+        if (attributeContext == null) {
+            attributeContext = container.getAttributeContext(requestItems);
+        }
         attributeContext.putAttribute(name, listAttribute, cascade);
     }
 }


Reply via email to