Author: norman
Date: Tue Nov 22 06:58:15 2011
New Revision: 1204832
URL: http://svn.apache.org/viewvc?rev=1204832&view=rev
Log:
Correctly set the wrapped Response
Modified:
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java
Modified:
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java?rev=1204832&r1=1204831&r2=1204832&view=diff
==============================================================================
---
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java
(original)
+++
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java
Tue Nov 22 06:58:15 2011
@@ -30,12 +30,11 @@ import java.util.List;
public class FutureResponseImpl implements FutureResponse{
protected Response response;
- private boolean ready = false;
private List<ResponseListener> listeners;
private int waiters;
protected final synchronized void checkReady() {
- while (!ready) {
+ while (!isReady()) {
try {
waiters++;
wait();
@@ -48,7 +47,7 @@ public class FutureResponseImpl implemen
}
@Override
public synchronized void addListener(ResponseListener listener) {
- if (ready) {
+ if (isReady()) {
listener.onResponse(this);
} else {
if (listeners == null) {
@@ -67,7 +66,7 @@ public class FutureResponseImpl implemen
@Override
public synchronized boolean isReady() {
- return ready;
+ return response != null;
}
@Override
@@ -97,13 +96,12 @@ public class FutureResponseImpl implemen
}
public synchronized void setResponse(Response response) {
- if (!ready) {
- ready = true;
+ if (!isReady()) {
+ this.response = response;
if (waiters > 0) {
notifyAll();
}
-
for (ResponseListener listener: listeners) {
listener.onResponse(this);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]