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]>