pgoldstein    2002/08/18 00:27:51

  Modified:    src/java/org/apache/james/transport JamesSpoolManager.java
               src/java/org/apache/james/transport/mailets
                        RemoteDelivery.java
               src/java/org/apache/james/pop3server POP3Handler.java
  Log:
  Added null check after retrieving mail from repository.  This avoids
  spurious NPEs.  Thanks to Noel Bergman
  
  Revision  Changes    Path
  1.13      +5 -2      
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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- JamesSpoolManager.java    16 Aug 2002 17:08:53 -0000      1.12
  +++ JamesSpoolManager.java    18 Aug 2002 07:27:51 -0000      1.13
  @@ -301,6 +301,9 @@
               try {
                   String key = spool.accept();
                   MailImpl mail = spool.retrieve(key);
  +                // Retrieve can return null if the mail is no longer on the spool
  +                // (i.e. another thread has gotten to it first).
  +                // In this case we simply continue to the next key
                   if (mail == null) {
                       continue;
                   }
  
  
  
  1.23      +7 -2      
jakarta-james/src/java/org/apache/james/transport/mailets/RemoteDelivery.java
  
  Index: RemoteDelivery.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-james/src/java/org/apache/james/transport/mailets/RemoteDelivery.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- RemoteDelivery.java       9 Aug 2002 06:04:22 -0000       1.22
  +++ RemoteDelivery.java       18 Aug 2002 07:27:51 -0000      1.23
  @@ -516,6 +516,11 @@
                                   .append(key);
                       log(logMessageBuffer.toString());
                       MailImpl mail = outgoing.retrieve(key);
  +                    // Retrieve can return null if the mail is no longer on the 
outgoing spool.
  +                    // In this case we simply continue to the next key
  +                    if (mail == null) {
  +                        continue;
  +                    }
                       if (deliver(mail, session)) {
                           //Message was successfully delivered/fully failed... delete 
it
                           outgoing.remove(key);
  
  
  
  1.10      +5 -0      
jakarta-james/src/java/org/apache/james/pop3server/POP3Handler.java
  
  Index: POP3Handler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-james/src/java/org/apache/james/pop3server/POP3Handler.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- POP3Handler.java  15 Aug 2002 21:57:27 -0000      1.9
  +++ POP3Handler.java  18 Aug 2002 07:27:51 -0000      1.10
  @@ -260,6 +260,11 @@
           for (Iterator it = userInbox.list(); it.hasNext(); ) {
               String key = (String) it.next();
               MailImpl mc = userInbox.retrieve(key);
  +            // Retrieve can return null if the mail is no longer in the store.
  +            // In this case we simply continue to the next key
  +            if (mc == null) {
  +                continue;
  +            }
               userMailbox.addElement(mc);
           }
           backupUserMailbox = (Vector) userMailbox.clone();
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to