You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2003/10/06 18:42:39 UTC

cvs commit: cocoon-2.1/src/java/org/apache/cocoon/components/treeprocessor/sitemap MountNode.java

sylvain     2003/10/06 09:42:39

  Modified:    src/java/org/apache/cocoon/components/treeprocessor/sitemap
                        MountNode.java
  Log:
  Fix bug#<don't remember...>
  
  Revision  Changes    Path
  1.7       +14 -6     cocoon-2.1/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java
  
  Index: MountNode.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- MountNode.java	29 Sep 2003 21:06:39 -0000	1.6
  +++ MountNode.java	6 Oct 2003 16:42:39 -0000	1.7
  @@ -63,6 +63,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.excalibur.source.Source;
  +import org.apache.excalibur.source.SourceResolver;
   
   /**
    *
  @@ -106,7 +108,7 @@
           Map objectModel = env.getObjectModel();
   
           String resolvedSource = this.source.resolve(context, objectModel);
  -        TreeProcessor processor = getProcessor(env, resolvedSource);
  +        TreeProcessor processor = getProcessor(resolvedSource);
   
           String resolvedPrefix = this.prefix.resolve(context, objectModel);
   
  @@ -138,7 +140,7 @@
           }
       }
   
  -    private synchronized TreeProcessor getProcessor(Environment env, String source) throws Exception {
  +    private synchronized TreeProcessor getProcessor(String source) throws Exception {
   
           TreeProcessor processor = (TreeProcessor)processors.get(source);
   
  @@ -150,9 +152,15 @@
               } else {
                   actualSource = source;
               }
  -
  -            processor = this.parentProcessor.createChildProcessor(
  -                this.manager, this.language, env.resolveURI(actualSource));
  +            
  +            SourceResolver resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
  +            Source src = resolver.resolveURI(actualSource);
  +            try {
  +                processor = this.parentProcessor.createChildProcessor(this.manager, this.language, src);
  +            } finally {
  +                resolver.release(src);
  +                this.manager.release(resolver);
  +            }
   
               // Associate to the original source
               processors.put(source, processor);