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 no...@apache.org on 2010/01/18 15:47:19 UTC
svn commit: r900413 - in /james/server/trunk:
avalon-user-function/src/test/java/org/apache/james/userrepository/
imapserver-function/src/main/java/org/apache/james/imapserver/mina/
mailets-function/ remotemanager-function/src/main/java/org/apache/jame...
Author: norman
Date: Mon Jan 18 14:47:18 2010
New Revision: 900413
URL: http://svn.apache.org/viewvc?rev=900413&view=rev
Log:
Better handing of exceptions in smtpserver and imapserver
cleanup of code
Modified:
james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/DefaultUsersJdbcRepositoryTest.java
james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/JamesUsersJdbcRepositoryTest.java
james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/ListUsersJdbcRepositoryTest.java
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/mina/ImapIoHandler.java
james/server/trunk/mailets-function/pom.xml
james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java
james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerResponseFilter.java
james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerValidationFilter.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SMTPServerDNSServiceAdapter.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SendMailHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SpamAssassinHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/URIRBLHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptMX.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/mina/SMTPIoHandler.java
Modified: james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/DefaultUsersJdbcRepositoryTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/DefaultUsersJdbcRepositoryTest.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/DefaultUsersJdbcRepositoryTest.java (original)
+++ james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/DefaultUsersJdbcRepositoryTest.java Mon Jan 18 14:47:18 2010
@@ -20,13 +20,12 @@
package org.apache.james.userrepository;
import org.apache.avalon.cornerstone.blocks.datasources.DefaultDataSourceSelector;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
import org.apache.commons.logging.impl.SimpleLog;
import org.apache.james.api.user.UsersRepository;
import org.apache.james.test.mock.james.MockFileSystem;
-import org.apache.james.test.mock.util.AttrValConfiguration;
import org.apache.james.test.util.Util;
import org.apache.james.util.ConfigurationAdapter;
@@ -62,11 +61,11 @@
res.setDatasources(dataSourceSelector );
- DefaultConfiguration configuration = new DefaultConfiguration("test");
- configuration.setAttribute("destinationURL", "db://maildb/"+tableString);
- configuration.addChild(new AttrValConfiguration("sqlFile","file://conf/sqlResources.xml"));
+ DefaultConfigurationBuilder configuration = new DefaultConfigurationBuilder();
+ configuration.addProperty("[@destinationURL]", "db://maildb/"+tableString);
+ configuration.addProperty("sqlFile","file://conf/sqlResources.xml");
res.setLog(new SimpleLog("MockLog"));
- res.configure(new ConfigurationAdapter(configuration));
+ res.configure(configuration);
res.init();
}
Modified: james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/JamesUsersJdbcRepositoryTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/JamesUsersJdbcRepositoryTest.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/JamesUsersJdbcRepositoryTest.java (original)
+++ james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/JamesUsersJdbcRepositoryTest.java Mon Jan 18 14:47:18 2010
@@ -19,17 +19,16 @@
package org.apache.james.userrepository;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.DefaultConfiguration;
+
import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
import org.apache.commons.logging.impl.SimpleLog;
import org.apache.james.api.user.JamesUser;
import org.apache.james.api.user.UsersRepository;
import org.apache.james.api.vut.VirtualUserTable;
import org.apache.james.test.mock.james.MockFileSystem;
-import org.apache.james.test.mock.util.AttrValConfiguration;
import org.apache.james.test.util.Util;
-import org.apache.james.util.ConfigurationAdapter;
import org.apache.mailet.MailAddress;
import java.util.Collection;
@@ -63,11 +62,11 @@
res.setFileSystem(new MockFileSystem());
res.setDatasources(Util.getDataSourceSelector());
- DefaultConfiguration configuration = new DefaultConfiguration("test");
- configuration.setAttribute("destinationURL", "db://maildb/"+tableString);
- configuration.addChild(new AttrValConfiguration("sqlFile","file://conf/sqlResources.xml"));
+ DefaultConfigurationBuilder configuration = new DefaultConfigurationBuilder();
+ configuration.addProperty("[@destinationURL]", "db://maildb/"+tableString);
+ configuration.addProperty("sqlFile","file://conf/sqlResources.xml");
res.setLog(new SimpleLog("MockLog"));
- res.configure(new ConfigurationAdapter(configuration));
+ res.configure(configuration);
res.init();
}
Modified: james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/ListUsersJdbcRepositoryTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/ListUsersJdbcRepositoryTest.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/ListUsersJdbcRepositoryTest.java (original)
+++ james/server/trunk/avalon-user-function/src/test/java/org/apache/james/userrepository/ListUsersJdbcRepositoryTest.java Mon Jan 18 14:47:18 2010
@@ -19,16 +19,13 @@
package org.apache.james.userrepository;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.container.ContainerUtil;
-import org.apache.commons.configuration.ConfigurationUtils;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
import org.apache.commons.logging.impl.SimpleLog;
import org.apache.james.api.user.UsersRepository;
import org.apache.james.test.mock.james.MockFileSystem;
-import org.apache.james.test.mock.util.AttrValConfiguration;
import org.apache.james.test.util.Util;
-import org.apache.james.util.ConfigurationAdapter;
import java.util.Iterator;
@@ -69,11 +66,11 @@
res.setFileSystem(new MockFileSystem());
res.setDatasources(Util.getDataSourceSelector());
- DefaultConfiguration configuration = new DefaultConfiguration("test");
- configuration.setAttribute("destinationURL", "db://maildb/"+tableString);
- configuration.addChild(new AttrValConfiguration("sqlFile","file://conf/sqlResources.xml"));
+ DefaultConfigurationBuilder configuration = new DefaultConfigurationBuilder();
+ configuration.addProperty("[@destinationURL]", "db://maildb/"+tableString);
+ configuration.addProperty("sqlFile","file://conf/sqlResources.xml");
res.setLog(new SimpleLog("MockLog"));
- res.configure(new ConfigurationAdapter(configuration));
+ res.configure(configuration);
res.init();
}
Modified: james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/mina/ImapIoHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/mina/ImapIoHandler.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/mina/ImapIoHandler.java (original)
+++ james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/mina/ImapIoHandler.java Mon Jan 18 14:47:18 2010
@@ -19,18 +19,14 @@
package org.apache.james.imapserver.mina;
-import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.logging.Log;
import org.apache.james.imap.api.ImapConstants;
-import org.apache.james.imap.encode.ImapResponseComposer;
-import org.apache.james.imap.encode.base.ImapResponseComposerImpl;
import org.apache.james.imap.main.ImapRequestHandler;
import org.apache.james.imap.main.ImapSessionImpl;
import org.apache.mina.core.buffer.IoBuffer;
-import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.handler.stream.StreamIoHandler;
@@ -40,13 +36,14 @@
*/
public class ImapIoHandler extends StreamIoHandler{
- private Log logger;
+ private final Log logger;
- private String hello;
+ private final String hello;
- private ImapRequestHandler handler;
+ private final ImapRequestHandler handler;
private final static String IMAP_SESSION = "IMAP_SESSION";
+
public ImapIoHandler(String hello, ImapRequestHandler handler, Log logger) {
this.logger = logger;
this.hello = hello;
@@ -56,8 +53,14 @@
@Override
public void exceptionCaught(IoSession session, Throwable cause) {
- cause.printStackTrace();
- super.exceptionCaught(session, cause);
+ logger.error("Error while processing imap request",cause);
+
+ // logout on error not sure if that is the best way to handle it
+ final ImapSessionImpl imapSession = (ImapSessionImpl) session.getAttribute(IMAP_SESSION);
+ if (imapSession != null) imapSession.logout();
+ session.close(false);
+
+ super.exceptionCaught(session, cause);
}
@Override
@@ -87,15 +90,14 @@
// it would prolly make sense to use a thread pool...
new Thread(new Runnable() {
+ public void run() {
+ final ImapSessionImpl imapSession = (ImapSessionImpl) session.getAttribute(IMAP_SESSION);
- public void run() {
- final ImapSessionImpl imapSession = (ImapSessionImpl) session.getAttribute(IMAP_SESSION);
-
- // handle requests in a loop
- while(handler.handleRequest( in, out, imapSession ));
- if (imapSession != null) imapSession.logout();
- session.close(false);
- }
+ // handle requests in a loop
+ while (handler.handleRequest(in, out, imapSession));
+ if (imapSession != null) imapSession.logout();
+ session.close(false);
+ }
}).start();
Modified: james/server/trunk/mailets-function/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/mailets-function/pom.xml?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/mailets-function/pom.xml (original)
+++ james/server/trunk/mailets-function/pom.xml Mon Jan 18 14:47:18 2010
@@ -27,7 +27,7 @@
<groupId>org.apache.james</groupId>
<artifactId>james-server-mailets-function</artifactId>
<name>Apache JAMES Server Mailets function</name>
-
+ <packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>${javax.mail.groupId}</groupId>
Modified: james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java (original)
+++ james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/AsyncRemoteManager.java Mon Jan 18 14:47:18 2010
@@ -57,6 +57,7 @@
return "plain";
}
+ @SuppressWarnings("unchecked")
@Override
protected void doConfigure(HierarchicalConfiguration config) throws ConfigurationException {
super.doConfigure(config);
Modified: james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerResponseFilter.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerResponseFilter.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerResponseFilter.java (original)
+++ james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerResponseFilter.java Mon Jan 18 14:47:18 2010
@@ -19,8 +19,6 @@
package org.apache.james.remotemanager.mina.filter;
-import java.util.Locale;
-
import org.apache.james.remotemanager.RemoteManagerResponse;
import org.apache.james.socket.mina.filter.AbstractResponseFilter;
import org.apache.mina.core.session.IoSession;
Modified: james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerValidationFilter.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerValidationFilter.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerValidationFilter.java (original)
+++ james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/mina/filter/RemoteManagerValidationFilter.java Mon Jan 18 14:47:18 2010
@@ -20,7 +20,6 @@
package org.apache.james.remotemanager.mina.filter;
import org.apache.commons.logging.Log;
-import org.apache.james.remotemanager.RemoteManagerRequest;
import org.apache.james.remotemanager.RemoteManagerResponse;
import org.apache.james.socket.mina.filter.AbstractValidationFilter;
import org.apache.mina.core.write.DefaultWriteRequest;
Modified: james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SMTPServerDNSServiceAdapter.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SMTPServerDNSServiceAdapter.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SMTPServerDNSServiceAdapter.java (original)
+++ james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SMTPServerDNSServiceAdapter.java Mon Jan 18 14:47:18 2010
@@ -92,7 +92,6 @@
/**
* @see org.apache.james.smtpserver.protocol.DNSService#getSMTPHostAddresses(java.lang.String)
*/
- @SuppressWarnings("unchecked")
public Iterator<HostAddress> getSMTPHostAddresses(String domainName) throws TemporaryResolutionException {
try {
return dns.getSMTPHostAddresses(domainName);
Modified: james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SendMailHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SendMailHandler.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SendMailHandler.java (original)
+++ james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SendMailHandler.java Mon Jan 18 14:47:18 2010
@@ -32,6 +32,7 @@
import org.apache.james.smtpserver.protocol.hook.HookResult;
import org.apache.james.smtpserver.protocol.hook.HookReturnCode;
import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
/**
@@ -67,7 +68,7 @@
try {
mailServer.sendMail(mail);
- Collection theRecipients = mail.getRecipients();
+ Collection<MailAddress> theRecipients = mail.getRecipients();
String recipientString = "";
if (theRecipients != null) {
recipientString = theRecipients.toString();
Modified: james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SpamAssassinHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SpamAssassinHandler.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SpamAssassinHandler.java (original)
+++ james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/SpamAssassinHandler.java Mon Jan 18 14:47:18 2010
@@ -138,11 +138,11 @@
spamdPort);
sa.scanMail(message);
- Iterator headers = sa.getHeadersAsAttribute().keySet().iterator();
+ Iterator<String> headers = sa.getHeadersAsAttribute().keySet().iterator();
// Add the headers
while (headers.hasNext()) {
- String key = headers.next().toString();
+ String key = headers.next();
mail.setAttribute(key, (String) sa.getHeadersAsAttribute().get(
key));
Modified: james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/URIRBLHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/URIRBLHandler.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/URIRBLHandler.java (original)
+++ james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/URIRBLHandler.java Mon Jan 18 14:47:18 2010
@@ -165,12 +165,12 @@
// we should try to retrieve details
if (getDetail) {
- Collection txt = dnsService.findTXTRecords(target+ "." + uRblServer);
+ Collection<String> txt = dnsService.findTXTRecords(target+ "." + uRblServer);
// Check if we found a txt record
if (!txt.isEmpty()) {
// Set the detail
- detail = txt.iterator().next().toString();
+ detail = txt.iterator().next();
}
}
Modified: james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptHandler.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptHandler.java (original)
+++ james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptHandler.java Mon Jan 18 14:47:18 2010
@@ -26,7 +26,6 @@
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
-import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.james.api.user.UsersRepository;
Modified: james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptMX.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptMX.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptMX.java (original)
+++ james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/integration/ValidRcptMX.java Mon Jan 18 14:47:18 2010
@@ -141,7 +141,7 @@
// Email should be deliver local
if (!domain.equals(LOCALHOST)) {
- Iterator mx = null;
+ Iterator<String> mx = null;
try {
mx = dnsService.findMXRecords(domain).iterator();
} catch (TemporaryResolutionException e1) {
@@ -150,7 +150,7 @@
if (mx != null && mx.hasNext()) {
while (mx.hasNext()) {
- String mxRec = mx.next().toString();
+ String mxRec = mx.next();
try {
String ip = dnsService.getByName(mxRec).getHostAddress();
Modified: james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/mina/SMTPIoHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/mina/SMTPIoHandler.java?rev=900413&r1=900412&r2=900413&view=diff
==============================================================================
--- james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/mina/SMTPIoHandler.java (original)
+++ james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/mina/SMTPIoHandler.java Mon Jan 18 14:47:18 2010
@@ -27,6 +27,8 @@
import org.apache.james.smtpserver.protocol.ConnectHandler;
import org.apache.james.smtpserver.protocol.LineHandler;
import org.apache.james.smtpserver.protocol.SMTPConfiguration;
+import org.apache.james.smtpserver.protocol.SMTPResponse;
+import org.apache.james.smtpserver.protocol.SMTPRetCode;
import org.apache.james.smtpserver.protocol.SMTPSession;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
@@ -56,16 +58,6 @@
this.logger = logger;
this.contextFactory = contextFactory;
}
-
-
- /**
- * @see org.apache.james.api.protocol.AbstractCommandDispatcher#getLog()
- */
- protected Log getLog() {
- return logger;
- }
-
-
/**
* @see org.apache.mina.core.service.IoHandlerAdapter#messageReceived(org.apache.mina.core.session.IoSession, java.lang.Object)
@@ -87,8 +79,8 @@
throws Exception {
logger.error("Caught exception: " + session.getCurrentWriteMessage(),
exception);
- // just close session
- session.close(true);
+
+ session.write(new SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unable to process smtp request"));
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org