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);
         }
     }