You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2004/04/29 10:23:23 UTC

cvs commit: cocoon-2.1/src/blocks/cron/java/org/apache/cocoon/components/cron TestCronJob.java

cziegeler    2004/04/29 01:23:23

  Modified:    src/blocks/cron/java/org/apache/cocoon/components/cron
                        TestCronJob.java
  Log:
  Proper releasing of resources, clean up code
  
  Revision  Changes    Path
  1.7       +31 -30    cocoon-2.1/src/blocks/cron/java/org/apache/cocoon/components/cron/TestCronJob.java
  
  Index: TestCronJob.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/cron/java/org/apache/cocoon/components/cron/TestCronJob.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TestCronJob.java	11 Mar 2004 15:38:31 -0000	1.6
  +++ TestCronJob.java	29 Apr 2004 08:23:23 -0000	1.7
  @@ -25,8 +25,6 @@
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.avalon.framework.parameters.Parameters;
  -import org.apache.avalon.framework.service.ServiceManager;
  -import org.apache.avalon.framework.service.Serviceable;
   import org.apache.excalibur.source.Source;
   import org.apache.excalibur.source.SourceResolver;
   
  @@ -41,7 +39,7 @@
    * @since 2.1.1
    */
   public class TestCronJob extends ServiceableCronJob
  -    implements CronJob, Configurable, ConfigurableCronJob, Serviceable {
  +    implements Configurable, ConfigurableCronJob {
       
       /** Parameter key for the message */
       public static final String PARAMETER_MESSAGE = "TestCronJob.Parameter.Message";
  @@ -59,11 +57,8 @@
       private int m_sleep;
       
       /** The pipeline to be called */
  -    private String pipeline = null;
  +    private String pipeline;
       
  -    /** The service manager */
  -    private ServiceManager manager;
  -
       /* (non-Javadoc)
        * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
        */
  @@ -74,17 +69,18 @@
           pipeline = config.getChild("pipeline").getValue("samples/hello-world/hello.xhtml");
       }
       
  -    public void service(ServiceManager manager) {
  -    	this.manager = manager;
  -    }
  -    
  +    /* (non-Javadoc)
  +     * @see org.apache.cocoon.components.cron.CronJob#execute(java.lang.String)
  +     */
       public void execute(String name) {
   		getLogger().info("CronJob " + name + " launched at " + new Date() + " with message '" + m_msg +
   						 "' and sleep timeout of " + m_sleep + "ms");
   		
  -		try {
  -			SourceResolver resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
  -			Source src = resolver.resolveURI("cocoon://" + pipeline);
  +        SourceResolver resolver = null;
  +        Source src = null;
  +        try {
  +			resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
  +			src = resolver.resolveURI("cocoon://" + pipeline);
   			InputStream is = src.getInputStream();
   			
   			InputStreamReader reader = new InputStreamReader(is);
  @@ -97,24 +93,29 @@
   			}
   			
   			reader.close();
  -			resolver.release(src);
  -			manager.release(resolver);
  -			
  -			getLogger().info("Cronjob " + name + " called pipeline " + pipeline + 
  -				" and received following content:\n" + sb.toString() );
  +
  +            getLogger().info("Cronjob " + name + " called pipeline " + pipeline + 
  +                    " and received following content:\n" + sb.toString() );
  +        } catch(Exception e) {
  +            throw new CascadingRuntimeException("CronJob " + name + " raised an exception", e);
  +        } finally {
  +            if ( resolver != null ) {
  +			    resolver.release(src);
  +                this.manager.release(resolver);
  +                resolver = null;
  +			    src = null;
  +            }
  +        }
          
  -			try {
  -				Thread.sleep(m_sleep);
  -			} catch (final InterruptedException ie) {
  -				//getLogger().error("CronJob " + name + " interrupted", ie);
  -			}
  +		try {
  +			Thread.sleep(m_sleep);
  +		} catch (final InterruptedException ie) {
  +			//getLogger().error("CronJob " + name + " interrupted", ie);
  +		}
   
  -			getLogger().info("CronJob " + name + " finished at " + new Date() + " with message '" + m_msg +
  -							 "' and sleep timeout of " + m_sleep + "ms");
  +		getLogger().info("CronJob " + name + " finished at " + new Date() + " with message '" + m_msg +
  +						 "' and sleep timeout of " + m_sleep + "ms");
   			
  -		} catch(Exception e) {
  -		    throw new CascadingRuntimeException("CronJob " + name + " raised an exception", e);
  -		}
       }
   
       /* (non-Javadoc)