public synchronized void addObject()

in src/main/java/org/apache/commons/pool3/impl/SoftReferenceObjectPool.java [106:134]


    public synchronized void addObject() throws E {
        assertOpen();
        final T obj = factory.makeObject().getObject();
        createCount++;
        // Create and register with the queue
        final PooledSoftReference<T> ref = new PooledSoftReference<>(new SoftReference<>(obj, refQueue));
        allReferences.add(ref);

        boolean success = true;
        if (!factory.validateObject(ref)) {
            success = false;
        } else {
            factory.passivateObject(ref);
        }

        final boolean shouldDestroy = !success;
        if (success) {
            idleReferences.add(ref);
            notifyAll(); // numActive has changed
        }

        if (shouldDestroy) {
            try {
                destroy(ref);
            } catch (final Exception ignored) {
                // ignored
            }
        }
    }