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);
  
  
  

Reply via email to