sylvain     2003/08/07 02:49:51

  Modified:    src/blocks/databases/samples/tutorial sitemap.xmap
               src/java/org/apache/cocoon/components/treeprocessor/sitemap
                        ActTypeNode.java
  Log:
  Fix bug #9835 again !
  
  Revision  Changes    Path
  1.4       +2 -2      
cocoon-2.1/src/blocks/databases/samples/tutorial/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/databases/samples/tutorial/sitemap.xmap,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- sitemap.xmap      7 Aug 2003 08:42:20 -0000       1.3
  +++ sitemap.xmap      7 Aug 2003 09:49:50 -0000       1.4
  @@ -78,7 +78,7 @@
     <map:act set="process">
       <map:parameter name="descriptor" 
value="context://samples/databases/tutorial/docs/department-form.xml"/>
       <map:generate type="serverpages" src="docs/confirm-dept.xsp"/>
  -    <map:transform src="stylesheets/apache.xsl"/>
  +    <map:transform src="apache.xsl"/>
       <map:serialize/>
     </map:act>
     <map:generate type="serverpages" src="docs/{1}-dept.xsp"/>
  @@ -91,7 +91,7 @@
     <map:act set="process">
       <map:parameter name="descriptor" 
value="context://samples/databases/tutorial/docs/employee-form.xml"/>
       <map:generate type="serverpages" src="docs/confirm-empl.xsp"/>
  -    <map:transform src="stylesheets/apache.xsl"/>
  +    <map:transform src="apache.xsl"/>
       <map:serialize/>
     </map:act>
     <map:generate type="serverpages" src="docs/{1}-empl.xsp"/>
  
  
  
  1.3       +20 -2     
cocoon-2.1/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ActTypeNode.java
  
  Index: ActTypeNode.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ActTypeNode.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ActTypeNode.java  7 Aug 2003 08:42:20 -0000       1.2
  +++ ActTypeNode.java  7 Aug 2003 09:49:51 -0000       1.3
  @@ -130,6 +130,22 @@
           Parameters     resolvedParams = 
VariableResolver.buildParameters(this.parameters, context, objectModel);
   
           Map actionResult;
  +        
  +        // If in action set, merge parameters
  +        if (inActionSet) {
  +            Parameters callerParams = 
(Parameters)env.getAttribute(ActionSetNode.CALLER_PARAMETERS);
  +            if (resolvedParams == Parameters.EMPTY_PARAMETERS) {
  +                // Just swap
  +                resolvedParams = callerParams;
  +            } else if (callerParams != Parameters.EMPTY_PARAMETERS) {
  +                // Build a new Parameters object since the both we hare are 
read-only
  +                Parameters newParams = new Parameters();
  +                // And merge both
  +                newParams.merge(resolvedParams);
  +                newParams.merge(callerParams);
  +                resolvedParams = newParams;
  +            }
  +        }
   
           // If action is ThreadSafe, avoid select() and try/catch block 
(faster !)
           if (this.threadSafeAction != null) {
  @@ -163,7 +179,9 @@
                       // Merge child action results, if any
                       Map childMap = 
(Map)env.getAttribute(ActionSetNode.ACTION_RESULTS);
                       if (childMap != null) {
  -                        childMap.putAll(actionResult);
  +                        Map newResults = new HashMap(childMap);
  +                        newResults.putAll(actionResult);
  +                        env.setAttribute(ActionSetNode.ACTION_RESULTS, 
newResults);
                       } else {
                           // No previous results
                           env.setAttribute(ActionSetNode.ACTION_RESULTS, 
actionResult);
  
  
  

Reply via email to