package com.hwlcn.ldap.ldap.sdk;
final class ParallelPoolCloserTask
implements Runnable
{
private final boolean unbind;
private final LDAPConnection connection;
ParallelPoolCloserTask(final LDAPConnection connection, final boolean unbind)
{
this.connection = connection;
this.unbind = unbind;
}
public void run()
{
final AbstractConnectionPool pool = connection.getConnectionPool();
if (pool != null)
{
final LDAPConnectionPoolStatistics stats =
pool.getConnectionPoolStatistics();
if (stats != null)
{
stats.incrementNumConnectionsClosedUnneeded();
}
}
connection.setDisconnectInfo(DisconnectType.POOL_CLOSED, null, null);
if (unbind)
{
connection.terminate(null);
}
else
{
connection.setClosed();
}
}
}