You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ro...@apache.org on 2007/12/29 16:50:03 UTC
svn commit: r607432 - in /httpcomponents/httpclient/trunk: ./
module-client/src/main/java/org/apache/http/conn/
module-client/src/main/java/org/apache/http/impl/conn/
module-client/src/main/java/org/apache/http/impl/conn/tsccm/
module-client/src/test/j...
Author: rolandw
Date: Sat Dec 29 07:50:02 2007
New Revision: 607432
URL: http://svn.apache.org/viewvc?rev=607432&view=rev
Log:
HTTPCLIENT-725: time unit when closing idle connections
Modified:
httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/conn/ClientConnectionManager.java
httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/IdleConnectionHandler.java
httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java
httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java
httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java
Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=607432&r1=607431&r2=607432&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Sat Dec 29 07:50:02 2007
@@ -1,7 +1,10 @@
Changes since 4.0 Alpha 2
-------------------
-* [HTTPCLIENT-677] Connection manager no longer uses Thread.interrupt()
+* [HTTPCLIENT-725] Use TimeUnit arguments for timeouts in connection manager.
+ Contributed by Roland Weber <rolandw at apache.org>
+
+* [HTTPCLIENT-677] Connection manager no longer uses Thread.interrupt().
Contributed by Roland Weber <rolandw at apache.org>
* [HTTPCLIENT-716] Allow application-defined routes.
@@ -16,11 +19,11 @@
* [HTTPCLIENT-715] Remove RoutedRequest from API
Contributed by Roland Weber <rolandw at apache.org>
-* [HTTPCLIENT-705] Fixed incorrect handling of URIs with null path component
+* [HTTPCLIENT-705] Fixed incorrect handling of URIs with null path component.
Contributed by Oleg Kalnichevski <olegk at apache.org>
* [HTTPCLIENT-688] HttpOptions#getAllowedMethods can now handle multiple
- Allow headers
+ Allow headers.
Contributed by Andrea Selva <selva.andre at gmail.com>
Modified: httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/conn/ClientConnectionManager.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/conn/ClientConnectionManager.java?rev=607432&r1=607431&r2=607432&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/conn/ClientConnectionManager.java (original)
+++ httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/conn/ClientConnectionManager.java Sat Dec 29 07:50:02 2007
@@ -131,12 +131,14 @@
/**
* Closes idle connections in the pool.
* Open connections in the pool that have not been used for the
- * timespan given by the timeout argument will be closed.
+ * timespan given by the argument will be closed.
* Currently allocated connections are not subject to this method.
+ * Times will be checked with milliseconds precision
*
- * @param idletime the idle time in milliseconds
+ * @param idletime the idle time of connections to be closed
+ * @param tunit the unit for the <code>idletime</code>
*/
- void closeIdleConnections(long idletime)
+ void closeIdleConnections(long idletime, TimeUnit tunit)
;
Modified: httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/IdleConnectionHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/IdleConnectionHandler.java?rev=607432&r1=607431&r2=607432&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/IdleConnectionHandler.java (original)
+++ httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/IdleConnectionHandler.java Sat Dec 29 07:50:02 2007
@@ -100,6 +100,7 @@
*
* @param idleTime the minimum idle time, in milliseconds, for connections to be closed
*/
+ //@@@ add TimeUnit argument here?
public void closeIdleConnections(long idleTime) {
// the latest time for which connections will be closed
Modified: httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java?rev=607432&r1=607431&r2=607432&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java (original)
+++ httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/SingleClientConnManager.java Sat Dec 29 07:50:02 2007
@@ -289,11 +289,17 @@
// non-javadoc, see interface ClientConnectionManager
- public void closeIdleConnections(long idletime) {
+ public void closeIdleConnections(long idletime, TimeUnit tunit) {
assertStillUp();
+ // idletime can be 0 or negative, no problem there
+ if (tunit == null) {
+ throw new IllegalArgumentException("Time unit must not be null.");
+ }
+
if ((managedConn == null) && uniquePoolEntry.connection.isOpen()) {
- final long cutoff = System.currentTimeMillis() - idletime;
+ final long cutoff =
+ System.currentTimeMillis() - tunit.toMillis(idletime);
if (lastReleaseTime <= cutoff) {
try {
uniquePoolEntry.close();
Modified: httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java?rev=607432&r1=607431&r2=607432&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java (original)
+++ httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/AbstractConnPool.java Sat Dec 29 07:50:02 2007
@@ -249,12 +249,18 @@
*
* @param idletime the time the connections should have been idle
* in order to be closed now
+ * @param tunit the unit for the <code>idletime</code>
*/
- public void closeIdleConnections(long idletime) {
+ public void closeIdleConnections(long idletime, TimeUnit tunit) {
+
+ // idletime can be 0 or negative, no problem there
+ if (tunit == null) {
+ throw new IllegalArgumentException("Time unit must not be null.");
+ }
try {
poolLock.lock();
- idleConnHandler.closeIdleConnections(idletime);
+ idleConnHandler.closeIdleConnections(tunit.toMillis(idletime));
} finally {
poolLock.unlock();
}
Modified: httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java?rev=607432&r1=607431&r2=607432&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java (original)
+++ httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java Sat Dec 29 07:50:02 2007
@@ -264,9 +264,9 @@
// non-javadoc, see interface ClientConnectionManager
- public void closeIdleConnections(long idleTimeout) {
+ public void closeIdleConnections(long idleTimeout, TimeUnit tunit) {
// combine these two in a single call?
- connectionPool.closeIdleConnections(idleTimeout);
+ connectionPool.closeIdleConnections(idleTimeout, tunit);
connectionPool.deleteClosedConnections();
}
Modified: httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java?rev=607432&r1=607431&r2=607432&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java (original)
+++ httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java Sat Dec 29 07:50:02 2007
@@ -393,7 +393,8 @@
assertEquals("connectionsInPool(host)",
mgr.getConnectionsInPool(route), 1);
- mgr.closeIdleConnections(0L); // implicitly deletes them, too
+ // this implicitly deletes them
+ mgr.closeIdleConnections(0L, TimeUnit.MILLISECONDS);
assertEquals("connectionsInPool",
mgr.getConnectionsInPool(), 0);