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 da...@apache.org on 2002/10/30 13:45:11 UTC
cvs commit: jakarta-james/src/java/org/apache/james/fetchpop FetchScheduler.java FetchPOP.java
danny 2002/10/30 04:45:11
Modified: src/java/org/apache/james/fetchpop FetchScheduler.java
FetchPOP.java
Log:
logged a message to confirm starting,
but mainly imporved exception catching in FetchPOP
to stop a bug which meant any message failing to be inserted in the spool killed the rest of the task.
Revision Changes Path
1.4 +2 -1 jakarta-james/src/java/org/apache/james/fetchpop/FetchScheduler.java
Index: FetchScheduler.java
===================================================================
RCS file: /home/cvs/jakarta-james/src/java/org/apache/james/fetchpop/FetchScheduler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- FetchScheduler.java 2 Oct 2002 06:12:02 -0000 1.3
+++ FetchScheduler.java 30 Oct 2002 12:45:11 -0000 1.4
@@ -91,6 +91,7 @@
scheduler.addTrigger(fetchTaskName, fetchTrigger, fp);
theFetchTaskNames.add(fetchTaskName);
}
+ getLogger().info("Fetch POP Started");
System.out.println("Fetch POP Started ");
} else {
getLogger().info("Fetch POP Disabled");
1.5 +20 -28 jakarta-james/src/java/org/apache/james/fetchpop/FetchPOP.java
Index: FetchPOP.java
===================================================================
RCS file: /home/cvs/jakarta-james/src/java/org/apache/james/fetchpop/FetchPOP.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- FetchPOP.java 2 Oct 2002 06:12:02 -0000 1.4
+++ FetchPOP.java 30 Oct 2002 12:45:11 -0000 1.5
@@ -11,10 +11,8 @@
import java.net.SocketException;
import java.util.Enumeration;
import java.util.Vector;
-
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-
import org.apache.avalon.cornerstone.services.scheduler.Target;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
@@ -37,32 +35,26 @@
*
*/
public class FetchPOP extends AbstractLogEnabled implements Configurable, Target {
-
/**
* The MailServer service
*/
private MailServer server;
-
/**
* The unique, identifying name for this task
*/
private String fetchTaskName;
-
/**
* The POP3 server host name for this fetch task
*/
private String popHost;
-
/**
* The POP3 user name for this fetch task
*/
private String popUser;
-
/**
* The POP3 user password for this fetch task
*/
private String popPass;
-
/**
* @see org.apache.avalon.cornerstone.services.scheduler.Target#targetTriggered(String)
*/
@@ -84,15 +76,22 @@
for (int i = 0; i < messages.length; i++) {
InputStream in = new ReaderInputStream(pop.retrieveMessage(messages[i].number));
getLogger().debug("Retrieve:" + pop.getReplyString());
- MimeMessage message = new MimeMessage(null, in);
- in.close();
- message.addHeader("X-fetched-from", fetchTaskName);
- message.saveChanges();
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("Sent message " + message.toString());
+ MimeMessage message = null;
+ try {
+ message = new MimeMessage(null, in);
+ in.close();
+ message.addHeader("X-fetched-from", fetchTaskName);
+ message.saveChanges();
+ try {
+ server.sendMail(message);
+ getLogger().debug("Sent message " + message.toString());
+ received.add(messages[i]);
+ } catch (MessagingException innerE) {
+ getLogger().error("can't insert message " + message.toString() + "created from "+messages[i].identifier);
+ }
+ } catch (MessagingException outerE) {
+ getLogger().error("can't create message out of fetched message "+messages[i].identifier);
}
- server.sendMail(message);
- received.add(messages[i]);
}
Enumeration enum = received.elements();
while (enum.hasMoreElements()) {
@@ -111,28 +110,21 @@
getLogger().error(e.getMessage());
} catch (IOException e) {
getLogger().error(e.getMessage());
- } catch (MessagingException e) {
- getLogger().error(e.getMessage());
}
}
-
/**
* @see org.apache.avalon.framework.component.Composable#compose(ComponentManager)
*/
- public void compose( final ComponentManager componentManager )
- throws ComponentException {
+ public void compose(final ComponentManager componentManager) throws ComponentException {
try {
server = (MailServer) componentManager.lookup(MailServer.ROLE);
} catch (ClassCastException cce) {
StringBuffer errorBuffer =
- new StringBuffer(128)
- .append("Component ")
- .append(MailServer.ROLE)
- .append("does not implement the required interface.");
+ new StringBuffer(128).append("Component ").append(MailServer.ROLE).append(
+ "does not implement the required interface.");
throw new ComponentException(errorBuffer.toString());
}
}
-
/**
* @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
*/
@@ -142,7 +134,7 @@
this.popPass = conf.getChild("password").getValue();
this.fetchTaskName = conf.getAttribute("name");
if (getLogger().isDebugEnabled()) {
- getLogger().debug("Configured FetchPOP");
+ getLogger().info("Configured FetchPOP fetch task " + fetchTaskName);
}
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>