Author: norman
Date: Thu Sep 22 18:34:18 2011
New Revision: 1174304
URL: http://svn.apache.org/viewvc?rev=1174304&view=rev
Log:
Correctly handle FutureResponse
Modified:
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
Modified:
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java?rev=1174304&r1=1174303&r2=1174304&view=diff
==============================================================================
---
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
(original)
+++
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
Thu Sep 22 18:34:18 2011
@@ -22,6 +22,7 @@ package org.apache.james.protocols.api;
import java.net.InetSocketAddress;
+import org.apache.james.protocols.api.FutureResponse.ResponseListener;
import org.apache.james.protocols.api.ProtocolTransport;
import org.apache.james.protocols.api.Response;
import org.slf4j.Logger;
@@ -116,7 +117,16 @@ public abstract class AbstractSession im
* @see
org.apache.james.api.protocol.ProtocolSession#writeResponse(org.apache.james.api.protocol.Response)
*/
public void writeResponse(final Response response) {
- transport.writeResponse(response, this);
+ if (response instanceof FutureResponse) {
+ ((FutureResponse) response).addListener(new ResponseListener() {
+
+ public void onResponse(Response response) {
+ transport.writeResponse(response, AbstractSession.this);
+ }
+ });
+ } else {
+ transport.writeResponse(response, this);
+ }
}
/*
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]