Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-client/src/test/java/org/eclipse/jetty/client/http/HttpDestinationOverHTTPTest.java')
-rw-r--r--jetty-client/src/test/java/org/eclipse/jetty/client/http/HttpDestinationOverHTTPTest.java31
1 files changed, 23 insertions, 8 deletions
diff --git a/jetty-client/src/test/java/org/eclipse/jetty/client/http/HttpDestinationOverHTTPTest.java b/jetty-client/src/test/java/org/eclipse/jetty/client/http/HttpDestinationOverHTTPTest.java
index 9b292e9e41..aa3b4f5e74 100644
--- a/jetty-client/src/test/java/org/eclipse/jetty/client/http/HttpDestinationOverHTTPTest.java
+++ b/jetty-client/src/test/java/org/eclipse/jetty/client/http/HttpDestinationOverHTTPTest.java
@@ -18,12 +18,13 @@
package org.eclipse.jetty.client.http;
+import java.util.Queue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.TimeUnit;
import org.eclipse.jetty.client.AbstractHttpClientServerTest;
-import org.eclipse.jetty.client.ConnectionPool;
+import org.eclipse.jetty.client.DuplexConnectionPool;
import org.eclipse.jetty.client.EmptyServerHandler;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.Origin;
@@ -62,7 +63,7 @@ public class HttpDestinationOverHTTPTest extends AbstractHttpClientServerTest
if (connection == null)
{
// There are no queued requests, so the newly created connection will be idle
- connection = destination.getConnectionPool().getIdleConnections().poll(5, TimeUnit.SECONDS);
+ connection = timedPoll(destination.getConnectionPool().getIdleConnections(), 5, TimeUnit.SECONDS);
}
Assert.assertNotNull(connection);
}
@@ -96,9 +97,9 @@ public class HttpDestinationOverHTTPTest extends AbstractHttpClientServerTest
HttpDestinationOverHTTP destination = new HttpDestinationOverHTTP(client, new Origin("http", "localhost", connector.getLocalPort()))
{
@Override
- protected ConnectionPool newConnectionPool(HttpClient client)
+ protected DuplexConnectionPool newConnectionPool(HttpClient client)
{
- return new ConnectionPool(this, client.getMaxConnectionsPerDestination(), this)
+ return new DuplexConnectionPool(this, client.getMaxConnectionsPerDestination(), this)
{
@Override
protected void idleCreated(Connection connection)
@@ -132,10 +133,11 @@ public class HttpDestinationOverHTTPTest extends AbstractHttpClientServerTest
latch.countDown();
- // There must be 2 idle connections
- Connection connection = destination.getConnectionPool().getIdleConnections().poll(5, TimeUnit.SECONDS);
+ // There must be 2 idle connections.
+ Queue<Connection> idleConnections = destination.getConnectionPool().getIdleConnections();
+ Connection connection = timedPoll(idleConnections, 5, TimeUnit.SECONDS);
Assert.assertNotNull(connection);
- connection = destination.getConnectionPool().getIdleConnections().poll(5, TimeUnit.SECONDS);
+ connection = timedPoll(idleConnections, 5, TimeUnit.SECONDS);
Assert.assertNotNull(connection);
}
@@ -156,7 +158,7 @@ public class HttpDestinationOverHTTPTest extends AbstractHttpClientServerTest
// Acquire the connection to make it active
Assert.assertSame(connection1, destination.acquire());
- destination.process(connection1, false);
+ destination.process(connection1);
destination.release(connection1);
Connection connection2 = destination.acquire();
@@ -272,4 +274,17 @@ public class HttpDestinationOverHTTPTest extends AbstractHttpClientServerTest
destinationAfter = client.getDestination(scheme, host, port);
Assert.assertNotSame(destinationBefore, destinationAfter);
}
+
+ private Connection timedPoll(Queue<Connection> connections, long time, TimeUnit unit) throws InterruptedException
+ {
+ long start = System.nanoTime();
+ while (unit.toNanos(time) > System.nanoTime() - start)
+ {
+ Connection connection = connections.poll();
+ if (connection != null)
+ return connection;
+ TimeUnit.MILLISECONDS.sleep(5);
+ }
+ return connections.poll();
+ }
}

Back to the top