On Tue, 2015-02-10 at 18:56 +0800, Charles Lip wrote: > In httpclient-4.4, org.apache.http.impl.conn.CPool now directly inherits the > dummy method validate() from abstract class > org.apache.http.pool.AbstractConnPool:- > > /** > * @since 4.4 > */ > protected boolean validate(final E entry) { > return true; > } > > Given that validate() always return TRUE, a critical portion of codes > related to "closing stale connection" in method AbstractConnPool > .getPoolEntryBlocking() is rendered unreachable. > > Snippet of codes showing the unreachable part of method AbstractConnPool > .getPoolEntryBlocking(): > .... > else if (this.validateAfterInactivity > 0) > { > if (entry.getUpdated() + this.validateAfterInactivity <= > System.currentTimeMillis()) > { > if (!validate(entry)) > { > entry.close(); //unreachable > } > } > } > ... .. > > PoolingHttpClientConnectionManager, which is supported by CPool, is > negatively impacted by this defect. > > CPool class needs a proper implementation of method validate(); a possible > fix would be: > > @Override > protected boolean validate(final CPoolEntry entry) { > return !entry.getConnection().isStale(); > } > >
Please raise a JIRA for this defect. Oleg --------------------------------------------------------------------- To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org