Index: httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestDumbHelpers.java
===================================================================
--- httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestDumbHelpers.java (revision 781936)
+++ httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestDumbHelpers.java (working copy)
@@ -1,137 +0,0 @@
-/*
- * $HeadURL$
- * $Revision$
- * $Date$
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- *
- */
-
-package org.apache.http.impl.conn.tsccm;
-
-/*
-import java.util.Date;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.Condition;
-import java.util.concurrent.locks.ReentrantLock;
-*/
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-
-import org.apache.http.HttpHost;
-import org.apache.http.conn.routing.HttpRoute;
-import org.apache.http.conn.scheme.PlainSocketFactory;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.scheme.SocketFactory;
-import org.apache.http.conn.ClientConnectionOperator;
-import org.apache.http.impl.conn.DefaultClientConnectionOperator;
-
-
-
-/**
- * Tests for simple helper classes without advanced functionality.
- */
-public class TestDumbHelpers extends TestCase {
-
- public final static
- HttpHost TARGET = new HttpHost("target.test.invalid");
-
-
- /** The default scheme registry. */
- private SchemeRegistry supportedSchemes;
-
-
-
- public TestDumbHelpers(String testName) {
- super(testName);
- }
-
- public static void main(String args[]) {
- String[] testCaseName = { TestDumbHelpers.class.getName() };
- junit.textui.TestRunner.main(testCaseName);
- }
-
- public static Test suite() {
- return new TestSuite(TestDumbHelpers.class);
- }
-
-
- @Override
- protected void setUp() {
- supportedSchemes = new SchemeRegistry();
- SocketFactory sf = PlainSocketFactory.getSocketFactory();
- supportedSchemes.register(new Scheme("http", sf, 80));
- }
-
-
-
-
- public void testBasicPoolEntry() {
- HttpRoute route = new HttpRoute(TARGET);
- ClientConnectionOperator ccop =
- new DefaultClientConnectionOperator(supportedSchemes);
-
- BasicPoolEntry bpe = null;
- try {
- bpe = new BasicPoolEntry(null, null, null);
- fail("null operator not detected");
- } catch (NullPointerException npx) {
- // expected
- } catch (IllegalArgumentException iax) {
- // would be preferred
- }
-
- try {
- bpe = new BasicPoolEntry(ccop, null, null);
- fail("null route not detected");
- } catch (IllegalArgumentException iax) {
- // expected
- }
-
- bpe = new BasicPoolEntry(ccop, route, null);
- assertEquals ("wrong route", route, bpe.getPlannedRoute());
- assertNotNull("missing ref", bpe.getWeakRef());
-
- assertEquals("bad weak ref", bpe, bpe.getWeakRef().get());
- assertEquals("bad ref route", route, bpe.getWeakRef().getRoute());
- }
-
-
- public void testBasicPoolEntryRef() {
- // the actual reference is tested implicitly with BasicPoolEntry
- // but we need to cover the argument check in the constructor
- try {
- new BasicPoolEntryRef(null, null);
- fail("null pool entry not detected");
- } catch (IllegalArgumentException iax) {
- // expected
- }
- }
-
-
-} // class TestDumbHelpers
Index: httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java
===================================================================
--- httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java (revision 781936)
+++ httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java (working copy)
@@ -493,65 +493,6 @@
}
/**
- * Tests GC of an unreferenced connection.
- */
- public void testConnectionGC() throws Exception {
- // 3.x: TestHttpConnectionManager.testReclaimUnusedConnection
-
- HttpParams mgrpar = defaultParams.copy();
- ConnManagerParams.setMaxTotalConnections(mgrpar, 1);
-
- ThreadSafeClientConnManager mgr = createTSCCM(mgrpar, null);
-
- final HttpHost target = getServerHttp();
- final HttpRoute route = new HttpRoute(target, null, false);
- final int rsplen = 8;
- final String uri = "/random/" + rsplen;
-
- HttpRequest request =
- new BasicHttpRequest("GET", uri, HttpVersion.HTTP_1_1);
-
- ManagedClientConnection conn = getConnection(mgr, route);
- conn.open(route, httpContext, defaultParams);
-
- // a new context is created for each testcase, no need to reset
- Helper.execute(request, conn, target,
- httpExecutor, httpProcessor, defaultParams, httpContext);
-
- // we leave the connection in mid-use
- // it's not really re-usable, but it must be closed anyway
- conn.markReusable();
-
- // first check that we can't get another connection
- try {
- // this should fail quickly, connection has not been released
- getConnection(mgr, route, 10L, TimeUnit.MILLISECONDS);
- fail("ConnectionPoolTimeoutException should have been thrown");
- } catch (ConnectionPoolTimeoutException e) {
- // expected
- }
-
- // We now drop the hard references to the connection and trigger GC.
- WeakReference wref =
- new WeakReference(conn);
- conn = null;
- httpContext = null; // holds a reference to the connection
-
- // Java does not guarantee that this will trigger the GC, but
- // it does in the test environment. GC is asynchronous, so we
- // need to give the garbage collector some time afterwards.
- System.gc();
- Thread.sleep(1000);
-
- assertNull("connection not garbage collected", wref.get());
- conn = getConnection(mgr, route, 10L, TimeUnit.MILLISECONDS);
- assertFalse("GCed connection not closed", conn.isOpen());
-
- mgr.shutdown();
- }
-
-
- /**
* Tests GC of an unreferenced connection manager.
*/
public void testConnectionManagerGC() throws Exception {
Index: httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RefQueueHandler.java
===================================================================
--- httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RefQueueHandler.java (revision 781936)
+++ httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RefQueueHandler.java (working copy)
@@ -1,50 +0,0 @@
-/*
- * $HeadURL$
- * $Revision$
- * $Date$
- *
- * ====================================================================
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- *
- */
-
-package org.apache.http.impl.conn.tsccm;
-
-import java.lang.ref.Reference;
-
-
-/**
- * Callback handler for {@link RefQueueWorker RefQueueWorker}.
- *
- * @since 4.0
- */
-public interface RefQueueHandler {
-
- /**
- * Invoked when a reference is found on the queue.
- *
- * @param ref the reference to handle
- */
- public void handleReference(Reference> ref)
- ;
-}
Index: httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
===================================================================
--- httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java (revision 781936)
+++ httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java (working copy)
@@ -381,7 +381,7 @@
}
// no longer issued, we keep a hard reference now
- issuedConnections.remove(entry.getWeakRef());
+ issuedConnections.remove(entry);
RouteSpecificPool rospl = getRoutePool(route, true);
@@ -448,7 +448,7 @@
rospl.dropEntry();
numConnections--;
} else {
- issuedConnections.add(entry.getWeakRef());
+ issuedConnections.add(entry);
done = true;
}
@@ -487,7 +487,7 @@
// the entry will create the connection when needed
BasicPoolEntry entry =
- new BasicPoolEntry(op, rospl.getRoute(), refQueue);
+ new BasicPoolEntry(op, rospl.getRoute());
poolLock.lock();
try {
@@ -495,7 +495,7 @@
rospl.createdEntry(entry);
numConnections++;
- issuedConnections.add(entry.getWeakRef());
+ issuedConnections.add(entry);
} finally {
poolLock.unlock();
Index: httpclient/src/main/java/org/apache/http/impl/conn/tsccm/BasicPoolEntryRef.java
===================================================================
--- httpclient/src/main/java/org/apache/http/impl/conn/tsccm/BasicPoolEntryRef.java (revision 781936)
+++ httpclient/src/main/java/org/apache/http/impl/conn/tsccm/BasicPoolEntryRef.java (working copy)
@@ -1,85 +0,0 @@
-/*
- * $HeadURL$
- * $Revision$
- * $Date$
- *
- * ====================================================================
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- *
- */
-
-package org.apache.http.impl.conn.tsccm;
-
-
-import java.lang.ref.WeakReference;
-import java.lang.ref.ReferenceQueue;
-
-import net.jcip.annotations.Immutable;
-
-import org.apache.http.conn.routing.HttpRoute;
-
-
-
-/**
- * A weak reference to a {@link BasicPoolEntry BasicPoolEntry}.
- * This reference explicitly keeps the planned route, so the connection
- * can be reclaimed if it is lost to garbage collection.
- *
- * @since 4.0
- */
-@Immutable
-public class BasicPoolEntryRef extends WeakReference {
-
- /** The planned route of the entry. */
- private final HttpRoute route; // HttpRoute is @Immutable
-
-
- /**
- * Creates a new reference to a pool entry.
- *
- * @param entry the pool entry, must not be null
- * @param queue the reference queue, or null
- */
- public BasicPoolEntryRef(BasicPoolEntry entry,
- ReferenceQueue