sylvain 02/02/07 13:53:55 Modified: src/scratchpad/src/org/apache/cocoon/treeprocessor TreeProcessor.java src/scratchpad/src/org/apache/cocoon/treeprocessor/sitemap MountNode.java Log: Fix map:mount bug when a file is specified and not only a directory. Reported by Peter Royal and Giacomo Pati. Revision Changes Path 1.8 +11 -4 xml-cocoon2/src/scratchpad/src/org/apache/cocoon/treeprocessor/TreeProcessor.java Index: TreeProcessor.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/treeprocessor/TreeProcessor.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- TreeProcessor.java 7 Feb 2002 09:07:22 -0000 1.7 +++ TreeProcessor.java 7 Feb 2002 21:53:55 -0000 1.8 @@ -101,7 +101,7 @@ * Interpreted tree-traversal implementation of a pipeline assembly language. * * @author <a href="mailto:[EMAIL PROTECTED]">Sylvain Wallez</a> - * @version CVS $Id: TreeProcessor.java,v 1.7 2002/02/07 09:07:22 cziegeler Exp $ + * @version CVS $Id: TreeProcessor.java,v 1.8 2002/02/07 21:53:55 sylvain Exp $ */ public class TreeProcessor extends AbstractLoggable implements ThreadSafe, Processor, @@ -188,10 +188,17 @@ * @param language the language to be used by the child processor. * @return a new child processor. */ - public TreeProcessor createChildProcessor(ComponentManager manager, String language) throws Exception { + public TreeProcessor createChildProcessor( + ComponentManager manager, + String language, + Source source) + throws Exception { + TreeProcessor child = new TreeProcessor(this, manager, language); child.setLogger(getLogger()); child.initialize(); + // FIXME : make the delay configurable + child.source = new DelayedRefreshSourceWrapper(source, 1000L); return child; } @@ -366,8 +373,8 @@ long startTime = System.currentTimeMillis(); - if (this.rootNode == null) { - // First call : create source + if (this.source == null) { + // Root Processor : create source // FIXME : make the delay configurable this.source = new DelayedRefreshSourceWrapper(env.resolve(this.sourceName), 1000L); 1.4 +10 -4 xml-cocoon2/src/scratchpad/src/org/apache/cocoon/treeprocessor/sitemap/MountNode.java Index: MountNode.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/treeprocessor/sitemap/MountNode.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- MountNode.java 4 Feb 2002 14:39:53 -0000 1.3 +++ MountNode.java 7 Feb 2002 21:53:55 -0000 1.4 @@ -75,7 +75,7 @@ /** * * @author <a href="mailto:[EMAIL PROTECTED]">Sylvain Wallez</a> - * @version CVS $Id: MountNode.java,v 1.3 2002/02/04 14:39:53 cziegeler Exp $ + * @version CVS $Id: MountNode.java,v 1.4 2002/02/07 21:53:55 sylvain Exp $ */ public class MountNode extends AbstractProcessingNode implements Composable { @@ -118,7 +118,7 @@ String resolvedSource = this.source.resolve(mapStack); TreeProcessor processor = (TreeProcessor)processors.get(resolvedSource); if (processor == null) { - processor = getProcessor(resolvedSource); + processor = getProcessor(env, resolvedSource); } String resolvedPrefix = this.prefix.resolve(mapStack); @@ -145,12 +145,18 @@ } } - private synchronized TreeProcessor getProcessor(String source) throws Exception { + private synchronized TreeProcessor getProcessor(Environment env, String source) throws Exception { + TreeProcessor processor = (TreeProcessor)processors.get(source); if (processor == null) { + + if (source.charAt(source.length() - 1) == '/') { + source = source + "sitemap.xmap"; + } - processor = this.parentProcessor.createChildProcessor(this.manager, this.language); + processor = this.parentProcessor.createChildProcessor( + this.manager, this.language, env.resolve(source)); processors.put(source, processor); }
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]