Author: norman
Date: Thu Oct 27 10:11:55 2011
New Revision: 1189698
URL: http://svn.apache.org/viewvc?rev=1189698&view=rev
Log:
Make sure the LineHandler is removed from the session once the extensions were
processed. See PROTOCOLS-44
Modified:
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
Modified:
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java?rev=1189698&r1=1189697&r2=1189698&view=diff
==============================================================================
---
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
(original)
+++
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
Thu Oct 27 10:11:55 2011
@@ -67,6 +67,7 @@ public class DataLineMessageHookHandler
out.close();
Response response = processExtensions(session, env);
+ session.popLineHandler();
session.resetState();
return response;
@@ -99,46 +100,43 @@ public class DataLineMessageHookHandler
* @param session
*/
protected Response processExtensions(SMTPSession session, MailEnvelopeImpl
mail) {
- try {
+
- if (mail != null && messageHandlers != null) {
- int count = messageHandlers.size();
- for (int i = 0; i < count; i++) {
- MessageHook rawHandler = (MessageHook)
messageHandlers.get(i);
- session.getLogger().debug("executing message handler " +
rawHandler);
-
- long start = System.currentTimeMillis();
- HookResult hRes = rawHandler.onMessage(session, mail);
- long executionTime = System.currentTimeMillis() - start;
-
- if (rHooks != null) {
- for (int i2 = 0; i2 < rHooks.size(); i2++) {
- Object rHook = rHooks.get(i2);
- session.getLogger().debug("executing hook " +
rHook);
+ if (mail != null && messageHandlers != null) {
+ int count = messageHandlers.size();
+ for (int i = 0; i < count; i++) {
+ MessageHook rawHandler = (MessageHook) messageHandlers.get(i);
+ session.getLogger().debug("executing message handler " +
rawHandler);
+
+ long start = System.currentTimeMillis();
+ HookResult hRes = rawHandler.onMessage(session, mail);
+ long executionTime = System.currentTimeMillis() - start;
+
+ if (rHooks != null) {
+ for (int i2 = 0; i2 < rHooks.size(); i2++) {
+ Object rHook = rHooks.get(i2);
+ session.getLogger().debug("executing hook " + rHook);
- hRes = ((HookResultHook)
rHook).onHookResult(session, hRes, executionTime, rawHandler);
- }
+ hRes = ((HookResultHook) rHook).onHookResult(session,
hRes, executionTime, rawHandler);
}
+ }
- SMTPResponse response =
AbstractHookableCmdHandler.calcDefaultSMTPResponse(hRes);
+ SMTPResponse response =
AbstractHookableCmdHandler.calcDefaultSMTPResponse(hRes);
- // if the response is received, stop processing of command
- // handlers
- if (response != null) {
- return response;
- }
+ // if the response is received, stop processing of command
+ // handlers
+ if (response != null) {
+ return response;
}
+ }
- // Not queue the message!
- SMTPResponse response =
AbstractHookableCmdHandler.calcDefaultSMTPResponse(new
HookResult(HookReturnCode.DENY));
- return response;
+ // Not queue the message!
+ SMTPResponse response =
AbstractHookableCmdHandler.calcDefaultSMTPResponse(new
HookResult(HookReturnCode.DENY));
+ return response;
- }
- } finally {
-
- session.popLineHandler();
}
+
return null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]