Author: cziegeler Date: Sat Jan 29 09:58:57 2005 New Revision: 149053 URL: http://svn.apache.org/viewcvs?view=rev&rev=149053 Log: <action dev="CZ" type="fix" fixes-bug="33178" due-to="Jean-Baptiste Quenot" due-to-email="[EMAIL PROTECTED]"> Fixing uri handling when the pass-through feature for mounting sitemaps is used. </action>
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java cocoon/branches/BRANCH_2_1_X/status.xml Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java?view=diff&rev=149053&p1=cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java&r1=149052&p2=cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java&r2=149053 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java Sat Jan 29 09:58:57 2005 @@ -30,6 +30,8 @@ import org.apache.cocoon.components.treeprocessor.TreeProcessor; import org.apache.cocoon.components.treeprocessor.variables.VariableResolver; import org.apache.cocoon.environment.Environment; +import org.apache.cocoon.environment.wrapper.EnvironmentWrapper; +import org.apache.cocoon.environment.wrapper.MutableEnvironmentFacade; import org.apache.commons.lang.BooleanUtils; /** @@ -99,7 +101,8 @@ String oldContext = env.getContext(); Object oldPassThrough = env.getAttribute(COCOON_PASS_THROUGH); env.setAttribute(COCOON_PASS_THROUGH, BooleanUtils.toBooleanObject(passThrough)); - + boolean overwriteLastContext = false; + try { env.changeContext(resolvedPrefix, resolvedSource); @@ -110,6 +113,7 @@ context.setProcessingPipeline( pp ); return true; } else { + overwriteLastContext = true; return false; } } else { @@ -119,6 +123,17 @@ } finally { // Restore context env.setContext(oldPrefix, oldURI, oldContext); + if ( overwriteLastContext ) { + EnvironmentWrapper wrapper = null; + if ( env instanceof EnvironmentWrapper ) { + wrapper = (EnvironmentWrapper)env; + } else if ( env instanceof MutableEnvironmentFacade ) { + wrapper = ((MutableEnvironmentFacade)env).getDelegate(); + } + if ( wrapper != null ) { + wrapper.changeLastContextToCurrent(); + } + } if (oldPassThrough != null) { env.setAttribute(COCOON_PASS_THROUGH, oldPassThrough); } else { Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java?view=diff&rev=149053&p1=cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java&r1=149052&p2=cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java&r2=149053 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java Sat Jan 29 09:58:57 2005 @@ -435,6 +435,12 @@ this.lastURI = this.uris; } + public void changeLastContextToCurrent() { + this.lastContext = this.context; + this.lastPrefix = this.prefix.toString(); + this.lastURI = this.uris; + } + /** * Change the current context to the last one set by changeContext() * and return last processor Modified: cocoon/branches/BRANCH_2_1_X/status.xml Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/status.xml?view=diff&rev=149053&p1=cocoon/branches/BRANCH_2_1_X/status.xml&r1=149052&p2=cocoon/branches/BRANCH_2_1_X/status.xml&r2=149053 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/status.xml (original) +++ cocoon/branches/BRANCH_2_1_X/status.xml Sat Jan 29 09:58:57 2005 @@ -202,6 +202,9 @@ <changes> <release version="@version@" date="@date@"> + <action dev="CZ" type="fix" fixes-bug="33178" due-to="Jean-Baptiste Quenot" due-to-email="[EMAIL PROTECTED]"> + Fixing uri handling when the pass-through feature for mounting sitemaps is used. + </action> <action dev="CZ" type="add" fixes-bug="33287" due-to="Jens Maukisch" due-to-email="[EMAIL PROTECTED]"> Portal Block: Add portal tools framework contribution. </action>