implemented client bootstrap. created a status object to model connection statuses...
[OpenSRF.git] / src / java / org / opensrf / Request.java
index 001ce43..1222999 100644 (file)
@@ -73,7 +73,7 @@ public class Request {
 
         Result result = null;
 
-        if(millis < 0) {
+        if(millis < 0 && !complete) {
             /** wait potentially forever for a result to arrive */
             session.waitForMessage(millis);
             if((result = resultQueue.poll()) != null)
@@ -81,7 +81,7 @@ public class Request {
 
         } else {
 
-            while(millis >= 0) {
+            while(millis >= 0 && !complete) {
 
                 /** wait up to millis milliseconds for a result.  waitForMessage() 
                  * will return if a response to any request arrives, so we keep track
@@ -120,4 +120,9 @@ public class Request {
     public void cleanup() {
         session.cleanupRequest(id);
     }
+
+    /** Sets this request as complete */
+    public void setComplete() {
+        complete = true;
+    }
 }