You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by pg...@apache.org on 2002/08/16 19:08:53 UTC

cvs commit: jakarta-james/src/java/org/apache/james/transport JamesSpoolManager.java

pgoldstein    2002/08/16 10:08:53

  Modified:    src/java/org/apache/james/transport JamesSpoolManager.java
  Log:
  Fix for NPE, additional comments.  Thanks to Stephen McConnell, Noel Bergman
  
  Revision  Changes    Path
  1.12      +57 -8     jakarta-james/src/java/org/apache/james/transport/JamesSpoolManager.java
  
  Index: JamesSpoolManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-james/src/java/org/apache/james/transport/JamesSpoolManager.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- JamesSpoolManager.java	10 Aug 2002 23:13:11 -0000	1.11
  +++ JamesSpoolManager.java	16 Aug 2002 17:08:53 -0000	1.12
  @@ -33,6 +33,11 @@
   import java.util.Iterator;
   
   /**
  + * Manages the mail spool.  This class is responsible for retrieving
  + * messages from the spool, directing messages to the appropriate
  + * processor, and removing them from the spool when processing is
  + * complete.
  + *
    * @author Serge Knystautas <se...@lokitech.com>
    * @author Federico Barbieri <sc...@systemy.it>
    *
  @@ -56,21 +61,51 @@
       private ThreadPool workerPool;
       private ThreadManager threadManager;
   
  -    public void configure(Configuration conf) throws ConfigurationException {
  -        this.conf = conf;
  -        threads = conf.getChild("threads").getValueAsInteger(1);
  -    }
  -
  +    /**
  +     * Pass the Context to the component.
  +     * This method is called after the setLogger()
  +     * method and before any other method.
  +     *
  +     * @param context the context
  +     * @throws ContextException if context is invalid
  +     */
       public void contextualize(Context context) {
           this.context = new DefaultContext( context );
       }
   
  +    /**
  +     * Pass the <code>ComponentManager</code> to the <code>composer</code>.
  +     * The instance uses the specified <code>ComponentManager</code> to 
  +     * acquire the components it needs for execution.
  +     *
  +     * @param componentManager The <code>ComponentManager</code> which this
  +     *                <code>Composable</code> uses.
  +     * @throws ComponentException if an error occurs
  +     */
       public void compose(ComponentManager comp)
           throws ComponentException {
           threadManager = (ThreadManager)comp.lookup( ThreadManager.ROLE );
           compMgr = new DefaultComponentManager(comp);
       }
   
  +    /**
  +     * Pass the <code>Configuration</code> to the instance.
  +     *
  +     * @param configuration the class configurations.
  +     * @throws ConfigurationException if an error occurs
  +     */
  +    public void configure(Configuration conf) throws ConfigurationException {
  +        this.conf = conf;
  +        threads = conf.getChild("threads").getValueAsInteger(1);
  +    }
  +
  +    /**
  +     * Initialize the component. Initialization includes
  +     * allocating any resources required throughout the
  +     * components lifecycle.
  +     *
  +     * @throws Exception if an error occurs
  +     */
       public void initialize() throws Exception {
   
           getLogger().info("JamesSpoolManager init...");
  @@ -266,6 +301,9 @@
               try {
                   String key = spool.accept();
                   MailImpl mail = spool.retrieve(key);
  +                if (mail == null) {
  +                    continue;
  +                }
                   if (infoEnabled) {
                       StringBuffer infoBuffer =
                           new StringBuffer(64)
  @@ -310,6 +348,8 @@
       /**
        * Process this mail message by the appropriate processor as designated
        * in the state of the Mail object.
  +     *
  +     * @param mail the mail message to be processed
        */
       protected void process(MailImpl mail) {
           while (true) {
  @@ -369,7 +409,16 @@
           }
       }
   
  -    // Shutdown processors
  +    /**
  +     * The dispose operation is called at the end of a components lifecycle.
  +     * Instances of this class use this method to release and destroy any
  +     * resources that they own.
  +     *
  +     * This implementation shuts down the LinearProcessors managed by this
  +     * JamesSpoolManager
  +     *
  +     * @throws Exception if an error is encountered during shutdown
  +     */
       public void dispose() {
           getLogger().info("JamesSpoolManager dispose...");
           Iterator it = processors.keySet().iterator();
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>