You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2008/01/15 06:52:02 UTC
svn commit: r612023 -
/mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/Request.java
Author: trustin
Date: Mon Jan 14 21:51:59 2008
New Revision: 612023
URL: http://svn.apache.org/viewvc?rev=612023&view=rev
Log:
Resolved issue: DIRMINA-508 (org.apache.mina.filter.reqres.Request creates LinkedBlockingQueue when not required)
* Applied Kevin's patch - request queue is not created if no blocking operation is required.
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/Request.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/Request.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/Request.java?rev=612023&r1=612022&r2=612023&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/Request.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/Request.java Mon Jan 14 21:51:59 2008
@@ -34,15 +34,13 @@
private final Object message;
- private final boolean useResponseQueue;
-
private final long timeoutMillis;
private volatile Runnable timeoutTask;
private volatile ScheduledFuture<?> timeoutFuture;
- private final BlockingQueue<Object> responses = new LinkedBlockingQueue<Object>();
+ private final BlockingQueue<Object> responses;
private volatile boolean endOfResponses;
@@ -81,7 +79,7 @@
this.id = id;
this.message = message;
- this.useResponseQueue = useResponseQueue;
+ this.responses = useResponseQueue ? new LinkedBlockingQueue<Object>() : null;
this.timeoutMillis = unit.toMillis(timeout);
}
@@ -98,7 +96,7 @@
}
public boolean isUseResponseQueue() {
- return useResponseQueue;
+ return responses != null;
}
public boolean hasResponse() {
@@ -143,14 +141,14 @@
}
private void chechEndOfResponses() {
- if (endOfResponses && responses.isEmpty() && useResponseQueue) {
+ if (responses != null && endOfResponses && responses.isEmpty()) {
throw new NoSuchElementException(
"All responses has been retrieved already.");
}
}
private void checkUseResponseQueue() {
- if (!useResponseQueue) {
+ if (responses == null) {
throw new UnsupportedOperationException(
"Response queue is not available; useResponseQueue is false.");
}
@@ -169,7 +167,7 @@
}
private void signal0(Object answer) {
- if (useResponseQueue) {
+ if (responses != null) {
responses.add(answer);
}
}