Example usage for org.apache.commons.pool2 PooledObject setLogAbandoned

List of usage examples for org.apache.commons.pool2 PooledObject setLogAbandoned

Introduction

In this page you can find the example usage for org.apache.commons.pool2 PooledObject setLogAbandoned.

Prototype

void setLogAbandoned(boolean logAbandoned);

Source Link

Document

Is abandoned object tracking being used?

Usage

From source file:JDBCPool.dbcp.demo.sourcecode.GenericObjectPool.java

/**
 * Attempts to create a new wrapped pooled object.
 * <p>//from w w  w  . j a va2  s . com
 * If there are {@link #getMaxTotal()} objects already in circulation
 * or in process of being created, this method returns null.
 *
 * @return The new wrapped pooled object
 *
 * @throws Exception if the object factory's {@code makeObject} fails
 */
private PooledObject<T> create() throws Exception {
    int localMaxTotal = getMaxTotal();
    long newCreateCount = createCount.incrementAndGet();
    if (localMaxTotal > -1 && newCreateCount > localMaxTotal || newCreateCount > Integer.MAX_VALUE) {
        createCount.decrementAndGet();
        return null;
    }

    final PooledObject<T> p;
    try {
        p = factory.makeObject();
    } catch (Exception e) {
        createCount.decrementAndGet();
        throw e;
    }

    AbandonedConfig ac = this.abandonedConfig;
    if (ac != null && ac.getLogAbandoned()) {
        p.setLogAbandoned(true);
    }

    createdCount.incrementAndGet();
    allObjects.put(new IdentityWrapper<T>(p.getObject()), p);
    return p;
}