Index: org/apache/commons/jelly/tags/xml/TransformTag.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/jelly/jelly-tags/xml/src/java/org/apache/commons/jelly/tags/xml/TransformTag.java,v retrieving revision 1.5 diff -u -r1.5 TransformTag.java --- org/apache/commons/jelly/tags/xml/TransformTag.java 9 Sep 2004 12:24:40 -0000 1.5 +++ org/apache/commons/jelly/tags/xml/TransformTag.java 13 Oct 2004 04:26:44 -0000 @@ -47,6 +47,7 @@ import org.apache.commons.jelly.impl.ScriptBlock; import org.apache.commons.jelly.impl.StaticTagScript; import org.apache.commons.jelly.impl.TagScript; +import org.apache.commons.jelly.impl.WeakReferenceWrapperScript; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.dom4j.Document; @@ -357,7 +358,11 @@ private void doNestedParamTag(XMLOutput output) throws JellyTagException { // find any nested param tags and run them Script bodyScript = this.getBody(); - if (bodyScript instanceof ScriptBlock) { + + if (bodyScript instanceof WeakReferenceWrapperScript) { + WeakReferenceWrapperScript wrws = (WeakReferenceWrapperScript) bodyScript; + wrws.invokeNestedTagsOfType(ParamTag.class,context,output); + }else if (bodyScript instanceof ScriptBlock) { ScriptBlock scriptBlock = (ScriptBlock) bodyScript; List scriptList = scriptBlock.getScriptList(); for (Iterator iter = scriptList.iterator(); iter.hasNext(); ) { @@ -487,11 +492,18 @@ * xml parser, i.e. its only text) to generate SAX events or not * * @return True if tag body should be parsed or false if invoked only + * @throws JellyTagException */ - private boolean shouldParseBody() { + private boolean shouldParseBody() throws JellyTagException { boolean result = false; // check to see if we need to parse the body or just invoke it Script bodyScript = this.tag.getBody(); + + if (bodyScript instanceof WeakReferenceWrapperScript) { + WeakReferenceWrapperScript wrws = (WeakReferenceWrapperScript) bodyScript; + return wrws.containsScriptType(StaticTagScript.class); + } + if (bodyScript instanceof ScriptBlock) { ScriptBlock scriptBlock = (ScriptBlock) bodyScript; List scriptList = scriptBlock.getScriptList();