dims        01/04/12 05:30:36

  Modified:    src/org/apache/cocoon Tag: xml-cocoon2 Cocoon.java
               src/org/apache/cocoon/components/language/markup Tag:
                        xml-cocoon2 AbstractMarkupLanguage.java
               src/org/apache/cocoon/components/language/markup/xsp/java
                        Tag: xml-cocoon2 util.xsl
               src/org/apache/cocoon/components/pipeline Tag: xml-cocoon2
                        AbstractEventPipeline.java
                        NonCachingStreamPipeline.java
               src/org/apache/cocoon/generation Tag: xml-cocoon2
                        DirectoryGenerator.java HTMLGenerator.java
                        PhpGenerator.java ScriptGenerator.java
                        VelocityGenerator.java
               src/org/apache/cocoon/reading Tag: xml-cocoon2
                        ResourceReader.java
               src/org/apache/cocoon/sitemap Tag: xml-cocoon2 Handler.java
               src/org/apache/cocoon/transformation Tag: xml-cocoon2
                        I18nTransformer.java XIncludeTransformer.java
                        XTTransformer.java
  Log:
  Cleaning up manager.lookup/manager.release for Components.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.4.2.71  +25 -17    xml-cocoon/src/org/apache/cocoon/Cocoon.java
  
  Index: Cocoon.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/Cocoon.java,v
  retrieving revision 1.4.2.70
  retrieving revision 1.4.2.71
  diff -u -r1.4.2.70 -r1.4.2.71
  --- Cocoon.java       2001/04/11 15:51:38     1.4.2.70
  +++ Cocoon.java       2001/04/12 12:30:32     1.4.2.71
  @@ -50,7 +50,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a> 
(Apache Software Foundation, Exoffice Technologies)
    * @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
  - * @version CVS $Revision: 1.4.2.70 $ $Date: 2001/04/11 15:51:38 $
  + * @version CVS $Revision: 1.4.2.71 $ $Date: 2001/04/12 12:30:32 $
    */
   public class Cocoon extends AbstractLoggable implements Component, 
Initializable, Disposable, Modifiable, Processor, Contextualizable {
       /** The application context */
  @@ -249,14 +249,16 @@
        */
       public void generateSitemap(Environment environment)
       throws Exception {
  -        URLFactory urlFactory = (URLFactory) 
this.componentManager.lookup(Roles.URL_FACTORY);
  -        File sourceFile = new 
File(urlFactory.getURL(environment.resolveEntity(null, 
sitemapFileName).getSystemId()).getFile());
  -        String markupLanguage = "sitemap";
  -        String programmingLanguage = "java";
  -
  -        getLogger().debug("Sitemap regeneration begin:" + sitemapFileName);
  +        ProgramGenerator programGenerator = null;
  +        URLFactory urlFactory = null;
           try {
  -            ProgramGenerator programGenerator = (ProgramGenerator) 
this.componentManager.lookup(Roles.PROGRAM_GENERATOR);
  +            programGenerator = (ProgramGenerator) 
this.componentManager.lookup(Roles.PROGRAM_GENERATOR);
  +            urlFactory = (URLFactory) 
this.componentManager.lookup(Roles.URL_FACTORY);
  +            File sourceFile = new 
File(urlFactory.getURL(environment.resolveEntity(null, 
sitemapFileName).getSystemId()).getFile());
  +            String markupLanguage = "sitemap";
  +            String programmingLanguage = "java";
  +
  +            getLogger().debug("Sitemap regeneration begin:" + 
sitemapFileName);
               CompiledComponent smap = (CompiledComponent) 
programGenerator.load(sourceFile, markupLanguage, programmingLanguage, 
environment);
               getLogger().debug("Sitemap regeneration complete");
   
  @@ -265,11 +267,12 @@
               } else {
                   getLogger().debug("Main: No errors, but the sitemap has not 
been set.");
               }
  -
  -            this.componentManager.release((Component) programGenerator);
           } catch (Exception e) {
               getLogger().error("Main: Error compiling sitemap", e);
               throw e;
  +        } finally {
  +            if (programGenerator != null) 
this.componentManager.release((Component) programGenerator);
  +            if (urlFactory != null) 
this.componentManager.release((Component) urlFactory);
           }
       }
   
  @@ -278,15 +281,17 @@
        */
       public void generateXSP(String fileName, Environment environment)
       throws Exception {
  -        getLogger().debug("XSP generation begin:" + fileName);
  +        ProgramGenerator programGenerator = null;
  +        URLFactory urlFactory = null;
  +        try {
  +            getLogger().debug("XSP generation begin:" + fileName);
   
  -        URLFactory urlFactory = (URLFactory) 
this.componentManager.lookup(Roles.URL_FACTORY);
  -        File sourceFile = new 
File(urlFactory.getURL(environment.resolveEntity(null, 
fileName).getSystemId()).getFile());
  -        String markupLanguage = "xsp";
  -        String programmingLanguage = "java";
  +            programGenerator = (ProgramGenerator) 
this.componentManager.lookup(Roles.PROGRAM_GENERATOR);
  +            urlFactory = (URLFactory) 
this.componentManager.lookup(Roles.URL_FACTORY);
  +            File sourceFile = new 
File(urlFactory.getURL(environment.resolveEntity(null, 
fileName).getSystemId()).getFile());
  +            String markupLanguage = "xsp";
  +            String programmingLanguage = "java";
   
  -        try {
  -            ProgramGenerator programGenerator = (ProgramGenerator) 
this.componentManager.lookup(Roles.PROGRAM_GENERATOR);
               CompiledComponent xsp = (CompiledComponent) 
programGenerator.load(sourceFile, markupLanguage, programmingLanguage, 
environment);
               getLogger().debug("XSP generation complete:" + xsp);
   
  @@ -294,6 +299,9 @@
           } catch (Exception e) {
               getLogger().error("Main: Error compiling XSP", e);
               throw e;
  +        } finally {
  +            if (programGenerator != null) 
this.componentManager.release((Component) programGenerator);
  +            if (urlFactory != null) 
this.componentManager.release((Component) urlFactory);
           }
       }
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.30  +16 -9     
xml-cocoon/src/org/apache/cocoon/components/language/markup/Attic/AbstractMarkupLanguage.java
  
  Index: AbstractMarkupLanguage.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/language/markup/Attic/AbstractMarkupLanguage.java,v
  retrieving revision 1.1.2.29
  retrieving revision 1.1.2.30
  diff -u -r1.1.2.29 -r1.1.2.30
  --- AbstractMarkupLanguage.java       2001/04/02 20:18:45     1.1.2.29
  +++ AbstractMarkupLanguage.java       2001/04/12 12:30:33     1.1.2.30
  @@ -47,7 +47,7 @@
    * Base implementation of <code>MarkupLanguage</code>. This class uses
    * logicsheets as the only means of code generation. Code generation should 
be decoupled from this context!!!
    * @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a>
  - * @version CVS $Revision: 1.1.2.29 $ $Date: 2001/04/02 20:18:45 $
  + * @version CVS $Revision: 1.1.2.30 $ $Date: 2001/04/12 12:30:33 $
    */
   public abstract class AbstractMarkupLanguage extends AbstractLoggable 
implements MarkupLanguage, Composer, Configurable {
       /** The supported language table */
  @@ -163,11 +163,16 @@
               logicsheet.setLogger(getLogger());
           }
   
  -        URLFactory urlFactory = (URLFactory) 
this.manager.lookup(Roles.URL_FACTORY);
  -
  -        logicsheetURL = urlFactory.getURL(logicsheetLocation);
  -
  -        this.manager.release((Component) urlFactory);
  +        URLFactory urlFactory = null;
  +        try {
  +            urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY);
  +            logicsheetURL = urlFactory.getURL(logicsheetLocation);
  +        } catch (Exception e){
  +            getLogger().warn("URL Error: " + e.getMessage(), e);
  +            throw e;
  +        } finally {
  +            if (urlFactory!=null) this.manager.release((Component) 
urlFactory);
  +        }
   
           logicsheet.setInputSource(new 
InputSource(logicsheetURL.openStream()));
   
  @@ -278,13 +283,15 @@
               }
   
               URL url = null;
  +            URLFactory urlFactory = null;
               try {
  -                Component urlFactory = 
this.manager.lookup(Roles.URL_FACTORY);
  -                url = ((URLFactory) urlFactory).getURL(logicsheetLocation);
  -                this.manager.release(urlFactory);
  +                urlFactory = 
(URLFactory)this.manager.lookup(Roles.URL_FACTORY);
  +                url = urlFactory.getURL(logicsheetLocation);
               } catch (Exception e) {
                   getLogger().error("cannot get logicsheet at " + 
logicsheetLocation);
                   new SAXException ("cannot get logicsheet at " + 
logicsheetLocation, e);
  +            } finally {
  +                if(urlFactory != null) 
this.manager.release((Component)urlFactory);
               }
               getLogger().debug("Logicsheet Used:" + url.toExternalForm());
               inputSource = new InputSource(url.openStream());
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.9   +4 -4      
xml-cocoon/src/org/apache/cocoon/components/language/markup/xsp/java/Attic/util.xsl
  
  Index: util.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/language/markup/xsp/java/Attic/util.xsl,v
  retrieving revision 1.1.2.8
  retrieving revision 1.1.2.9
  diff -u -r1.1.2.8 -r1.1.2.9
  --- util.xsl  2001/03/23 19:38:12     1.1.2.8
  +++ util.xsl  2001/04/12 12:30:33     1.1.2.9
  @@ -146,8 +146,8 @@
             } catch (Exception e) {
                 getLogger().error("Could not include page", e);
             } finally {
  -              this.manager.release((Component) factory);
  -              this.manager.release((Component) newParser);
  +              if (factory != null) this.manager.release((Component) factory);
  +              if (newParser != null) this.manager.release((Component) 
newParser);
             }
         }
       } </xsp:logic>
  @@ -185,7 +185,7 @@
               } catch (Exception e) {
                 getLogger().error("Could not include page", e);
               } finally {
  -              this.manager.release((Component) newParser);
  +              if (newParser != null) this.manager.release((Component) 
newParser);
               }
          }
        </xsp:logic>
  @@ -219,7 +219,7 @@
             } catch (Exception e) {
                 getLogger().error("Could not include page", e);
             } finally {
  -              this.manager.release((Component) newParser);
  +              if (newParser != null) this.manager.release((Component) 
newParser);
             }
         }
       </xsp:logic>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +5 -1      
xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/AbstractEventPipeline.java
  
  Index: AbstractEventPipeline.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/AbstractEventPipeline.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- AbstractEventPipeline.java        2001/04/11 10:52:31     1.1.2.1
  +++ AbstractEventPipeline.java        2001/04/12 12:30:34     1.1.2.2
  @@ -37,7 +37,7 @@
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
    * @author <a href="mailto:[EMAIL PROTECTED] Ziegeler">Carsten Ziegeler</a>
  - * @version CVS $Revision: 1.1.2.1 $ $Date: 2001/04/11 10:52:31 $
  + * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/04/12 12:30:34 $
    */
   public abstract class AbstractEventPipeline
   extends AbstractXMLProducer
  @@ -77,6 +77,7 @@
           }
           ComponentSelector selector = (ComponentSelector) 
this.manager.lookup(Roles.GENERATORS);
           this.generator = (Generator) selector.select(role);
  +        this.manager.release((Component)selector);
           this.generatorSource = source;
           this.generatorParam = param;
       }
  @@ -85,6 +86,7 @@
       throws Exception {
           ComponentSelector selector = (ComponentSelector) 
this.manager.lookup(Roles.TRANSFORMERS);
           this.transformers.add ((Transformer)selector.select(role));
  +        this.manager.release((Component)selector);
           this.transformerSources.add (source);
           this.transformerParams.add (param);
       }
  @@ -240,6 +242,8 @@
               while ( itt.hasNext() ) {
                   transformerSelector.release((Component)itt.next());
               }
  +            this.manager.release((Component)transformerSelector);
  +
               this.transformers.clear();
               this.transformerParams.clear();
               this.transformerSources.clear();
  
  
  
  1.1.2.3   +4 -1      
xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/NonCachingStreamPipeline.java
  
  Index: NonCachingStreamPipeline.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/NonCachingStreamPipeline.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- NonCachingStreamPipeline.java     2001/04/11 12:41:21     1.1.2.2
  +++ NonCachingStreamPipeline.java     2001/04/12 12:30:34     1.1.2.3
  @@ -10,6 +10,7 @@
   import java.io.IOException;
   import java.io.OutputStream;
   
  +import org.apache.avalon.Component;
   import org.apache.avalon.ComponentManager;
   import org.apache.avalon.component.ComponentException;
   import org.apache.avalon.ComponentSelector;
  @@ -36,7 +37,7 @@
    * resource
    * </UL>
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/04/11 12:41:21 $
  + * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/04/12 12:30:34 $
    */
   public class NonCachingStreamPipeline extends AbstractLoggable implements 
StreamPipeline {
       private EventPipeline eventPipeline;
  @@ -102,6 +103,7 @@
           this.readerParam = param;
           this.readerMimeType = mimeType;
           this.sitemapReaderMimeType = selector.getMimeTypeForRole(role);
  +        this.manager.release((Component)selector);
       }
   
       public void setSerializer (String role, String source, Parameters param)
  @@ -120,6 +122,7 @@
           this.serializerParam = param;
           this.serializerMimeType = mimeType;
           this.sitemapSerializerMimeType = selector.getMimeTypeForRole(role);
  +        this.manager.release((Component)selector);
       }
   
       public void addTransformer (String role, String source, Parameters 
param) throws Exception {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.22  +14 -9     
xml-cocoon/src/org/apache/cocoon/generation/Attic/DirectoryGenerator.java
  
  Index: DirectoryGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/DirectoryGenerator.java,v
  retrieving revision 1.1.2.21
  retrieving revision 1.1.2.22
  diff -u -r1.1.2.21 -r1.1.2.22
  --- DirectoryGenerator.java   2001/03/19 21:20:32     1.1.2.21
  +++ DirectoryGenerator.java   2001/04/12 12:30:34     1.1.2.22
  @@ -21,6 +21,7 @@
   import org.xml.sax.SAXException;
   import org.xml.sax.helpers.AttributesImpl;
   
  +import org.apache.avalon.Component;
   import org.apache.avalon.configuration.Parameters;
   import org.apache.avalon.Poolable;
   
  @@ -67,7 +68,7 @@
    *         (Apache Software Foundation, Exoffice Technologies)
    * @author <a href="mailto:[EMAIL PROTECTED]">Conny Krappatsch</a>
    *         (SMB GmbH) for Virbus AG
  - * @version CVS $Revision: 1.1.2.21 $ $Date: 2001/03/19 21:20:32 $ */
  + * @version CVS $Revision: 1.1.2.22 $ $Date: 2001/04/12 12:30:34 $ */
   
   public class DirectoryGenerator extends ComposerGenerator implements 
Poolable {
   
  @@ -185,15 +186,19 @@
           File path;
   
           input = resolver.resolveEntity(null,super.source);
  -            try {
  -                url = 
((URLFactory)manager.lookup(Roles.URL_FACTORY)).getURL(input.getSystemId());
  -            } catch (Exception e) {
  -                getLogger().error("cannot obtain the URLFactory");
  -                throw new SAXException ("cannot obtain the URLFactory", e);
  -            }
  -            path = new File(url.getFile());
  +        URLFactory urlFactory = null;
  +        try {
  +            urlFactory = (URLFactory)manager.lookup(Roles.URL_FACTORY);
  +            url = urlFactory.getURL(input.getSystemId());
  +        } catch (Exception e) {
  +            getLogger().error("cannot obtain the URLFactory");
  +            throw new SAXException ("cannot obtain the URLFactory", e);
  +        } finally {
  +            if (urlFactory != null) manager.release((Component)urlFactory);
  +        }
  +        path = new File(url.getFile());
   
  -            if (!path.isDirectory()) {
  +        if (!path.isDirectory()) {
                   throw new IOException("Cannot read directory from "
                         + url.toString() + "\"");
           }
  
  
  
  1.1.2.16  +7 -4      
xml-cocoon/src/org/apache/cocoon/generation/Attic/HTMLGenerator.java
  
  Index: HTMLGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/HTMLGenerator.java,v
  retrieving revision 1.1.2.15
  retrieving revision 1.1.2.16
  diff -u -r1.1.2.15 -r1.1.2.16
  --- HTMLGenerator.java        2001/02/27 10:29:51     1.1.2.15
  +++ HTMLGenerator.java        2001/04/12 12:30:34     1.1.2.16
  @@ -30,7 +30,7 @@
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
  - * @version CVS $Revision: 1.1.2.15 $ $Date: 2001/02/27 10:29:51 $
  + * @version CVS $Revision: 1.1.2.16 $ $Date: 2001/04/12 12:30:34 $
    */
   public class HTMLGenerator extends ComposerGenerator implements Poolable {
   
  @@ -39,6 +39,7 @@
        */
       public void generate()
       throws IOException, SAXException, ProcessingException {
  +        URLFactory urlFactory = null;
           try
           {
               // Setup an instance of Tidy.
  @@ -46,10 +47,10 @@
               tidy.setXmlOut(true);
               tidy.setXHTML(true);
   
  +            urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY);
  +            URL url = urlFactory.getURL(this.source);
  +
               // Extract the document using JTidy and stream it.
  -            Component urlFactory = this.manager.lookup(Roles.URL_FACTORY);
  -            URL url = ((URLFactory) urlFactory).getURL(this.source);
  -            this.manager.release(urlFactory);
               org.w3c.dom.Document doc = tidy.parseDOM(new 
BufferedInputStream(url.openStream()), null);
               DOMStreamer streamer = new 
DOMStreamer(this.contentHandler,this.lexicalHandler);
               streamer.stream(doc);
  @@ -62,6 +63,8 @@
           } catch (Exception e){
               getLogger().error("Could not get parser", e);
               throw new ProcessingException("Exception in 
HTMLGenerator.generate()",e);
  +        } finally {
  +            this.manager.release((Component)urlFactory);
           }
       }
   }
  
  
  
  1.1.2.17  +6 -2      
xml-cocoon/src/org/apache/cocoon/generation/Attic/PhpGenerator.java
  
  Index: PhpGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/PhpGenerator.java,v
  retrieving revision 1.1.2.16
  retrieving revision 1.1.2.17
  diff -u -r1.1.2.16 -r1.1.2.17
  --- PhpGenerator.java 2001/04/09 15:56:51     1.1.2.16
  +++ PhpGenerator.java 2001/04/12 12:30:34     1.1.2.17
  @@ -18,6 +18,7 @@
   import org.apache.cocoon.components.parser.Parser;
   
   import org.apache.avalon.Poolable;
  +import org.apache.avalon.Component;
   import org.apache.cocoon.Roles;
   
   import org.xml.sax.InputSource;
  @@ -29,7 +30,7 @@
    * results into SAX events.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Sam Ruby</a>
  - * @version CVS $Revision: 1.1.2.16 $ $Date: 2001/04/09 15:56:51 $
  + * @version CVS $Revision: 1.1.2.17 $ $Date: 2001/04/12 12:30:34 $
    */
   public class PhpGenerator extends ServletGenerator implements Poolable {
   
  @@ -117,6 +118,7 @@
           if (!systemId.startsWith("file:/"))
               throw new IOException("protocol not supported: " + systemId);
   
  +        Parser parser = null;
           try {
               // construct both ends of the pipe
               PipedInputStream input = new PipedInputStream();
  @@ -131,7 +133,7 @@
               new Thread(php).start();
   
               // pipe the results into the parser
  -            Parser parser=(Parser)this.manager.lookup(Roles.PARSER);
  +            parser = (Parser)this.manager.lookup(Roles.PARSER);
               parser.setContentHandler(this.contentHandler);
               parser.setLexicalHandler(this.lexicalHandler);
               parser.parse(new InputSource(input));
  @@ -147,6 +149,8 @@
           } catch (Exception e) {
               getLogger().debug("PhpGenerator.generate()", e);
               throw new IOException(e.toString());
  +        } finally {
  +            if (parser != null) this.manager.release((Component)parser);
           }
       }
   }
  
  
  
  1.1.2.3   +6 -2      
xml-cocoon/src/org/apache/cocoon/generation/Attic/ScriptGenerator.java
  
  Index: ScriptGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/ScriptGenerator.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- ScriptGenerator.java      2001/03/12 04:38:52     1.1.2.2
  +++ ScriptGenerator.java      2001/04/12 12:30:34     1.1.2.3
  @@ -16,6 +16,7 @@
   
   // Avalon imports
   
  +import org.apache.avalon.Component;
   import org.apache.avalon.configuration.Configurable;
   import org.apache.avalon.configuration.Configuration;
   import org.apache.avalon.configuration.ConfigurationException;
  @@ -43,7 +44,7 @@
    * and additional interpreter (Rhino, Jython, etc.) as a Cocoon Generator
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason Foster</a>
  - * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/03/12 04:38:52 $
  + * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/04/12 12:30:34 $
    */
   public class ScriptGenerator extends ComposerGenerator {
       
  @@ -53,6 +54,7 @@
       }
   
       public void generate() throws ProcessingException {
  +        Parser parser = null;
           try {
               // Figure out what file to open and do so
   
  @@ -96,7 +98,7 @@
   
               InputSource xmlInput =
                       new InputSource(new StringReader(output.toString()));
  -            Parser parser = (Parser)(this.manager.lookup(Roles.PARSER));
  +            parser = (Parser)(this.manager.lookup(Roles.PARSER));
               parser.setContentHandler(this.contentHandler);
               parser.setLexicalHandler(this.lexicalHandler);
               parser.parse(xmlInput);
  @@ -109,6 +111,8 @@
           } catch (Exception e) {
               throw new ProcessingException(
                       "Exception in ScriptGenerator.generate()", e);
  +        } finally {
  +            if (parser != null) this.manager.release((Component)parser);
           }
       }
   }
  
  
  
  1.1.2.2   +2 -2      
xml-cocoon/src/org/apache/cocoon/generation/Attic/VelocityGenerator.java
  
  Index: VelocityGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/VelocityGenerator.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- VelocityGenerator.java    2001/04/11 20:08:23     1.1.2.1
  +++ VelocityGenerator.java    2001/04/12 12:30:34     1.1.2.2
  @@ -28,7 +28,7 @@
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
  - * @version CVS $Revision: 1.1.2.1 $ $Date: 2001/04/11 20:08:23 $
  + * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/04/12 12:30:34 $
    */
   public class VelocityGenerator extends ServletGenerator implements Poolable {
   
  @@ -93,7 +93,7 @@
               getLogger().error("Could not get parser", e);
               throw new ProcessingException("Exception in 
VelocityGenerator.generate()",e);
           } finally {
  -            this.manager.release((Component) parser);
  +            if (parser != null) this.manager.release((Component) parser);
           }
       }
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.26  +9 -10     
xml-cocoon/src/org/apache/cocoon/reading/Attic/ResourceReader.java
  
  Index: ResourceReader.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/reading/Attic/ResourceReader.java,v
  retrieving revision 1.1.2.25
  retrieving revision 1.1.2.26
  diff -u -r1.1.2.25 -r1.1.2.26
  --- ResourceReader.java       2001/03/30 17:14:35     1.1.2.25
  +++ ResourceReader.java       2001/04/12 12:30:35     1.1.2.26
  @@ -37,7 +37,7 @@
   /**
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.25 $ $Date: 2001/03/30 17:14:35 $
  + * @version CVS $Revision: 1.1.2.26 $ $Date: 2001/04/12 12:30:35 $
    *
    * The <code>ResourceReader</code> component is used to serve binary data
    * in a sitemap pipeline. It makes use of HTTP Headers to determine if
  @@ -67,14 +67,6 @@
       public void generate() throws IOException, ProcessingException {
           Request request = (Request) 
objectModel.get(Constants.REQUEST_OBJECT);
           Response response = (Response) 
objectModel.get(Constants.RESPONSE_OBJECT);
  -        URLFactory urlFactory = null;
  -
  -        try {
  -            urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY);
  -        } catch (Exception e) {
  -            getLogger().error("cannot obtain the URLFactory", e);
  -            throw new ProcessingException ("cannot obtain the URLFactory", 
e);
  -        }
   
           if (response == null) {
              throw new ProcessingException ("Missing a Response object in the 
objectModel");
  @@ -91,7 +83,14 @@
           InputStream is = null;
           long len = 0;
   
  +        URLFactory urlFactory = null;
           try {
  +            try {
  +                urlFactory = (URLFactory) 
this.manager.lookup(Roles.URL_FACTORY);
  +            } catch (Exception e) {
  +                getLogger().error("cannot obtain the URLFactory", e);
  +                throw new ProcessingException ("cannot obtain the 
URLFactory", e);
  +            }
               if(this.source.indexOf(":/") != -1) {
                   src = this.source;
                   url = urlFactory.getURL (src);
  @@ -124,7 +123,7 @@
               throw new ResourceNotFoundException ("ResourceReader: malformed 
source \""
                   +src+"\". ", mue);
           } finally {
  -            this.manager.release((Component) urlFactory);
  +            if(urlFactory != null) this.manager.release((Component) 
urlFactory);
           }
   
           try {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.21  +4 -4      
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Handler.java
  
  Index: Handler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Handler.java,v
  retrieving revision 1.1.2.20
  retrieving revision 1.1.2.21
  diff -u -r1.1.2.20 -r1.1.2.21
  --- Handler.java      2001/03/12 05:55:23     1.1.2.20
  +++ Handler.java      2001/04/12 12:30:35     1.1.2.21
  @@ -40,7 +40,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
  - * @version CVS $Revision: 1.1.2.20 $ $Date: 2001/03/12 05:55:23 $
  + * @version CVS $Revision: 1.1.2.21 $ $Date: 2001/04/12 12:30:35 $
    */
   public class Handler extends AbstractLoggable implements Runnable, 
Configurable, Composer, Contextualizable, Processor {
       private Context context;
  @@ -168,8 +168,9 @@
           String markupLanguage = "sitemap";
           String programmingLanguage = "java";
   
  +        ProgramGenerator programGenerator = null;
           try {
  -            ProgramGenerator programGenerator = (ProgramGenerator) 
this.manager.lookup(Roles.PROGRAM_GENERATOR);
  +            programGenerator = (ProgramGenerator) 
this.manager.lookup(Roles.PROGRAM_GENERATOR);
               smap = (Sitemap) programGenerator.load(this.sourceFile, 
markupLanguage, programmingLanguage, environment);
   
               if (this.sitemap != null) {
  @@ -184,8 +185,6 @@
               } else {
                   getLogger().debug("No errors, but the sitemap has not been 
set.");
               }
  -
  -            this.manager.release((Component) programGenerator);
           } catch (Throwable t) {
               getLogger().error("Error compiling sitemap", t);
   
  @@ -193,6 +192,7 @@
                 this.exception = (Exception) t;
               }
           } finally {
  +            if(programGenerator != null) this.manager.release((Component) 
programGenerator);
               this.regeneration = null;
               this.environment = null;
               this.isRegenerationRunning = false;
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.12  +39 -27    
xml-cocoon/src/org/apache/cocoon/transformation/Attic/I18nTransformer.java
  
  Index: I18nTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/transformation/Attic/I18nTransformer.java,v
  retrieving revision 1.1.2.11
  retrieving revision 1.1.2.12
  diff -u -r1.1.2.11 -r1.1.2.12
  --- I18nTransformer.java      2001/03/19 21:20:46     1.1.2.11
  +++ I18nTransformer.java      2001/04/12 12:30:36     1.1.2.12
  @@ -17,6 +17,7 @@
   
   import org.apache.avalon.Poolable;
   import org.apache.avalon.ComponentManager;
  +import org.apache.avalon.ComponentManagerException;
   import org.apache.avalon.Composer;
   import org.apache.avalon.Component;
   import org.apache.avalon.configuration.Parameters;
  @@ -147,14 +148,15 @@
           String translations_file = parameters.getParameter("src", null);
   
           URL tr = null;
  +        URLFactory urlFactory = null;
           try {
  -            Component urlFactory = this.manager.lookup(Roles.URL_FACTORY);
  -            tr = ((URLFactory) urlFactory)
  -                .getURL(resolver.resolveEntity(null, 
translations_file).getSystemId());
  -            this.manager.release(urlFactory);
  +            urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY);
  +            tr = urlFactory.getURL(resolver.resolveEntity(null, 
translations_file).getSystemId());
           } catch (Exception e) {
               getLogger().error("cannot obtain the URLFactory", e);
               throw new SAXException("cannot obtain the URLFactory", e);
  +        } finally {
  +            if (urlFactory != null) 
this.manager.release((Component)urlFactory);
           }
           initialiseDictionary(tr);
       }
  @@ -308,31 +310,41 @@
   
           Object object = url.getContent();
           Parser parser = null;
  -        try {
  +
  +        try 
  +        {
               parser = (Parser)(manager.lookup(Roles.PARSER));
  +            InputSource input;
  +            if (object instanceof Loggable) {
  +                ((Loggable)object).setLogger(getLogger());
  +            }
  +            if (object instanceof Reader) {
  +                input = new InputSource(new 
BufferedReader((Reader)(object)));
  +            } else if (object instanceof InputStream) {
  +                input = new InputSource(new 
BufferedInputStream((InputStream)(object)));
  +            } else {
  +                throw new SAXException("Unknown object type: " + object);
  +            }
   
  -        } catch (Exception e) {
  -            getLogger().error("Could not find component", e);
  -            return;
  +            // How this could be cached?
  +            dictionary = new Hashtable();
  +            I18nContentHandler i18n_handler = new I18nContentHandler();
  +            parser.setContentHandler(i18n_handler);
  +            parser.parse(input);
  +        } catch(SAXException e) {
  +            getLogger().error("Error in initialiseDictionary", e);
  +            throw e;
  +        } catch(MalformedURLException e) {
  +            getLogger().error("Error in initialiseDictionary", e);
  +            throw e;
  +        } catch(IOException e) {
  +            getLogger().error("Error in initialiseDictionary", e);
  +            throw e;
  +        } catch(ComponentManagerException e) {
  +            getLogger().error("Error in initialiseDictionary", e);
  +            throw new SAXException("ComponentManagerException in 
initialiseDictionary");
  +        } finally {
  +            if(parser != null) this.manager.release((Component) parser);
           }
  -        InputSource input;
  -        if (object instanceof Loggable) {
  -            ((Loggable)object).setLogger(getLogger());
  -        }
  -        if (object instanceof Reader) {
  -            input = new InputSource(new BufferedReader((Reader)(object)));
  -        } else if (object instanceof InputStream) {
  -            input = new InputSource(new 
BufferedInputStream((InputStream)(object)));
  -        } else {
  -            throw new SAXException("Unknown object type: " + object);
  -        }
  -
  -        // How this could be cached?
  -        dictionary = new Hashtable();
  -        I18nContentHandler i18n_handler = new I18nContentHandler();
  -        parser.setContentHandler(i18n_handler);
  -        parser.parse(input);
  -
  -        this.manager.release((Component) parser);
       }
   }
  
  
  
  1.1.2.25  +55 -43    
xml-cocoon/src/org/apache/cocoon/transformation/Attic/XIncludeTransformer.java
  
  Index: XIncludeTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/transformation/Attic/XIncludeTransformer.java,v
  retrieving revision 1.1.2.24
  retrieving revision 1.1.2.25
  diff -u -r1.1.2.24 -r1.1.2.25
  --- XIncludeTransformer.java  2001/04/02 20:18:38     1.1.2.24
  +++ XIncludeTransformer.java  2001/04/12 12:30:36     1.1.2.25
  @@ -29,6 +29,7 @@
   import org.w3c.dom.Document;
   import org.apache.avalon.configuration.Parameters;
   import org.apache.avalon.ComponentManager;
  +import org.apache.avalon.ComponentManagerException;
   import org.apache.avalon.Composer;
   import org.apache.avalon.Loggable;
   import org.apache.avalon.AbstractLoggable;
  @@ -51,7 +52,7 @@
    * by the SAX event FSM yet.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Donald Ball</a>
  - * @version CVS $Revision: 1.1.2.24 $ $Date: 2001/04/02 20:18:38 $ $Author: 
giacomo $
  + * @version CVS $Revision: 1.1.2.25 $ $Date: 2001/04/12 12:30:36 $ $Author: 
dims $
    */
   public class XIncludeTransformer extends AbstractTransformer implements 
Composer, Poolable {
   
  @@ -224,53 +225,64 @@
           } else if (parse.equals("xml")) {
               getLogger().debug("Parse type is XML");
               Parser parser = null;
  -            try {
  +            try 
  +            {
                   getLogger().debug("Looking up " + Roles.PARSER);
                   parser = (Parser)manager.lookup(Roles.PARSER);
  -            } catch (Exception e) {
  -                getLogger().error("Could not find component", e);
  -                return;
  -            }
  -            InputSource input;
  -            if (object instanceof Loggable) {
  -                ((Loggable)object).setLogger(getLogger());
  -            }
  -            if (object instanceof Reader) {
  -                input = new InputSource(new BufferedReader((Reader)object));
  -            } else if (object instanceof InputStream) {
  -                input = new InputSource(new 
BufferedInputStream((InputStream)object));
  -            } else {
  -                throw new SAXException("Unknown object type: "+object);
  -            }
  -            if (suffix.startsWith("xpointer(") && suffix.endsWith(")")) {
  -                String xpath = suffix.substring(9,suffix.length()-1);
  -                getLogger().debug("XPath is "+xpath);
  -                DOMBuilder builder = new DOMBuilder(parser);
  -                parser.setContentHandler(builder);
  -                parser.setLexicalHandler(builder);
  -                parser.parse(input);
  -
  -                Document document = builder.getDocument();
  -                try {
  -                    NodeList list = XPathAPI.selectNodeList(document,xpath);
  -                    DOMStreamer streamer = new 
DOMStreamer(super.contentHandler,super.lexicalHandler);
  -                    int length = list.getLength();
  -                    for (int i=0; i<length; i++) {
  -                        streamer.stream(list.item(i));
  +
  +                InputSource input;
  +                if (object instanceof Loggable) {
  +                    ((Loggable)object).setLogger(getLogger());
  +                }
  +                if (object instanceof Reader) {
  +                    input = new InputSource(new 
BufferedReader((Reader)object));
  +                } else if (object instanceof InputStream) {
  +                    input = new InputSource(new 
BufferedInputStream((InputStream)object));
  +                } else {
  +                    throw new SAXException("Unknown object type: "+object);
  +                }
  +                if (suffix.startsWith("xpointer(") && suffix.endsWith(")")) {
  +                    String xpath = suffix.substring(9,suffix.length()-1);
  +                    getLogger().debug("XPath is "+xpath);
  +                    DOMBuilder builder = new DOMBuilder(parser);
  +                    parser.setContentHandler(builder);
  +                    parser.setLexicalHandler(builder);
  +                    parser.parse(input);
  +
  +                    Document document = builder.getDocument();
  +                    try {
  +                        NodeList list = 
XPathAPI.selectNodeList(document,xpath);
  +                        DOMStreamer streamer = new 
DOMStreamer(super.contentHandler,super.lexicalHandler);
  +                        int length = list.getLength();
  +                        for (int i=0; i<length; i++) {
  +                            streamer.stream(list.item(i));
  +                        }
  +                    } catch (TransformerException e){
  +                        getLogger().error("TransformerException", e);
  +                        return;
                       }
  -                } catch (TransformerException e){
  -                    getLogger().error("TransformerException", e);
  -                    return;
  +                } else {
  +                    XIncludeContentHandler xinclude_handler = new 
XIncludeContentHandler(super.contentHandler,super.lexicalHandler);
  +                    xinclude_handler.setLogger(getLogger());
  +                    parser.setContentHandler(xinclude_handler);
  +                    parser.setLexicalHandler(xinclude_handler);
  +                    parser.parse(input);
                   }
  -            } else {
  -                XIncludeContentHandler xinclude_handler = new 
XIncludeContentHandler(super.contentHandler,super.lexicalHandler);
  -        xinclude_handler.setLogger(getLogger());
  -                parser.setContentHandler(xinclude_handler);
  -                parser.setLexicalHandler(xinclude_handler);
  -                parser.parse(input);
  +            } catch(SAXException e) {
  +                getLogger().error("Error in processXIncludeElement", e);
  +                throw e;
  +            } catch(MalformedURLException e) {
  +                getLogger().error("Error in processXIncludeElement", e);
  +                throw e;
  +            } catch(IOException e) {
  +                getLogger().error("Error in processXIncludeElement", e);
  +                throw e;
  +            } catch(ComponentManagerException e) {
  +                getLogger().error("Error in processXIncludeElement", e);
  +                throw new SAXException("ComponentManagerException in 
processXIncludeElement");
  +            } finally {
  +                if(parser != null) this.manager.release((Component) parser);
               }
  -
  -            this.manager.release((Component) parser);
           }
       }
   
  
  
  
  1.1.2.19  +6 -4      
xml-cocoon/src/org/apache/cocoon/transformation/Attic/XTTransformer.java
  
  Index: XTTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/transformation/Attic/XTTransformer.java,v
  retrieving revision 1.1.2.18
  retrieving revision 1.1.2.19
  diff -u -r1.1.2.18 -r1.1.2.19
  --- XTTransformer.java        2001/03/30 17:14:40     1.1.2.18
  +++ XTTransformer.java        2001/04/12 12:30:36     1.1.2.19
  @@ -71,7 +71,7 @@
    * This Transformer use the XT processor.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Sahuc Sebastien</a>
  - * @version CVS $Revision: 1.1.2.18 $ $Date: 2001/03/30 17:14:40 $
  + * @version CVS $Revision: 1.1.2.19 $ $Date: 2001/04/12 12:30:36 $
    */
   public class XTTransformer extends DocumentHandlerWrapper
   implements Transformer, Composer, Loggable, Poolable {
  @@ -343,13 +343,15 @@
       public void loadStylesheet(InputSource sheetSource) throws SAXException, 
IOException {
           // Set the xslFile for the caching mechanism
           URL url = null;
  +        URLFactory urlFactory = null;
           try {
  -            Component urlFactory = this.manager.lookup(Roles.URL_FACTORY);
  -            url = ((URLFactory) 
urlFactory).getURL(sheetSource.getSystemId());
  -            this.manager.release(urlFactory);
  +            urlFactory = (URLFactory)this.manager.lookup(Roles.URL_FACTORY);
  +            url = urlFactory.getURL(sheetSource.getSystemId());
           } catch (Exception e) {
               log.error("cannot obtain the URLFactory", e);
               throw new SAXException ("cannot obtain the URLFactory", e);
  +        } finally {
  +            if(urlFactory != null) 
this.manager.release((Component)urlFactory);
           }
           this.xslFile = new File(url.getFile());
           lastModified = xslFile.lastModified();
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to