cziegeler 01/11/26 03:34:59 Modified: src/org/apache/cocoon/environment Tag: cocoon_20_branch AbstractEnvironment.java Log: Fixing bug #5051 Revision Changes Path No revision No revision 1.6.2.16 +41 -44 xml-cocoon2/src/org/apache/cocoon/environment/AbstractEnvironment.java Index: AbstractEnvironment.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/environment/AbstractEnvironment.java,v retrieving revision 1.6.2.15 retrieving revision 1.6.2.16 diff -u -r1.6.2.15 -r1.6.2.16 --- AbstractEnvironment.java 2001/10/25 19:31:25 1.6.2.15 +++ AbstractEnvironment.java 2001/11/26 11:34:59 1.6.2.16 @@ -24,7 +24,7 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.6.2.15 $ $Date: 2001/10/25 19:31:25 $ + * @version CVS $Revision: 1.6.2.16 $ $Date: 2001/11/26 11:34:59 $ */ public abstract class AbstractEnvironment extends AbstractLoggable implements Environment { @@ -170,56 +170,53 @@ /** * Adds an prefix to the overall stripped off prefix from the request uri */ - public void changeContext(String prefix, String context) + public void changeContext(String prefix, String newContext) throws MalformedURLException { - String uri = this.uris; - getLogger().debug("Changing Cocoon context(" + context + ") to prefix(" + prefix + ")"); + getLogger().debug("Changing Cocoon context(" + newContext + ") to prefix(" + prefix + ")"); getLogger().debug("\tfrom context(" + this.context.toExternalForm() + ") and prefix(" + this.prefix + ")"); - getLogger().debug("\tat URI " + uri); - if(prefix.length()>=1){ - if (uri.startsWith(prefix)) { - this.prefix.append(prefix); - uri = uri.substring(prefix.length()); - - // check for a slash at the beginning to avoid problems with subsitemaps - if (uri.startsWith("/") == true) { - uri = uri.substring(1); - this.prefix.append('/'); - } - - //if the resource is zipped into a war file (e.g. Weblogic temp deployment) - if (this.context.getProtocol().equals("zip")) { - this.context = new URL(this.context.toString() + context); - - // if we got a absolute context or one with a protocol resolve it - } else { - if (context.charAt(0) == '/') { - this.context = new URL("file:" + context); - } else if (context.indexOf(':') > 1) { - this.context = new URL(context); - } else { - this.context = new URL(this.context, context); - } - File f = new File(this.context.getFile()); - if (f.isFile()) { - this.context = f.getParentFile().toURL(); - } else { - this.context = f.toURL(); - } - } - } else { - getLogger().error("The current URI (" - + uri + ") doesn't start with given prefix (" + getLogger().debug("\tat URI " + this.uris); + if (prefix.length() >= 1 && this.uris.startsWith(prefix) == false) { + this.getLogger().error("The current URI (" + + this.uris + ") doesn't start with given prefix (" + prefix + ")" - ); - throw new RuntimeException("The current URI (" - + uri + ") doesn't start with given prefix (" + ); + throw new RuntimeException("The current URI (" + + this.uris + ") doesn't start with given prefix (" + prefix + ")" - ); + ); + } + if (prefix.length() >= 1) { + this.prefix.append(prefix); + this.uris = this.uris.substring(prefix.length()); + + // check for a slash at the beginning to avoid problems with subsitemaps + if (this.uris.startsWith("/") == true) { + this.uris = this.uris.substring(1); + this.prefix.append('/'); } } + + //if the resource is zipped into a war file (e.g. Weblogic temp deployment) + if (this.context.getProtocol().equals("zip")) { + this.context = new URL(this.context.toString() + newContext); + + // if we got a absolute context or one with a protocol resolve it + } else { + if (newContext.charAt(0) == '/') { + this.context = new URL("file:" + newContext); + } else if (newContext.indexOf(':') > 1) { + this.context = new URL(newContext); + } else { + this.context = new URL(this.context, newContext); + } + File f = new File(this.context.getFile()); + if (f.isFile()) { + this.context = f.getParentFile().toURL(); + } else { + this.context = f.toURL(); + } + } getLogger().debug("New context is " + this.context.toExternalForm()); - this.uris = uri; } /**
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]