This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git
The following commit(s) were added to refs/heads/master by this push:
new 6269141 Reformat using updated standard Eclipse format
6269141 is described below
commit 6269141ad08dd618701432dd6729f8bc898ec0e2
Author: Mark Thomas <[email protected]>
AuthorDate: Thu Jul 11 10:08:19 2019 +0100
Reformat using updated standard Eclipse format
This is noiser than necessary because I accidentally included some
format changes I was experimenting with in the previous commit that
addressed line endings.
---
.../org/apache/commons/dbcp2/BasicDataSource.java | 1022 +++++++-------------
1 file changed, 347 insertions(+), 675 deletions(-)
diff --git a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
index 72d4555..6bf8b34 100644
--- a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
+++ b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
@@ -54,16 +54,14 @@ import
org.apache.commons.pool2.impl.GenericObjectPoolConfig;
/**
* <p>
- * Basic implementation of <code>javax.sql.DataSource</code> that is configured
- * via JavaBeans properties. This is not the only way to combine the
- * <em>commons-dbcp2</em> and <em>commons-pool2</em> packages, but provides a
- * "one stop shopping" solution for basic requirements.
+ * Basic implementation of <code>javax.sql.DataSource</code> that is
configured via JavaBeans properties. This is not
+ * the only way to combine the <em>commons-dbcp2</em> and
<em>commons-pool2</em> packages, but provides a "one stop
+ * shopping" solution for basic requirements.
* </p>
*
* @since 2.0
*/
-public class BasicDataSource
- implements DataSource, BasicDataSourceMXBean, MBeanRegistration,
AutoCloseable {
+public class BasicDataSource implements DataSource, BasicDataSourceMXBean,
MBeanRegistration, AutoCloseable {
/**
* @since 2.0
@@ -110,9 +108,8 @@ public class BasicDataSource
}
}
-
- protected static void validateConnectionFactory(
- final PoolableConnectionFactory connectionFactory) throws
Exception {
+ protected static void validateConnectionFactory(final
PoolableConnectionFactory connectionFactory)
+ throws Exception {
PoolableConnection conn = null;
PooledObject<PoolableConnection> p = null;
try {
@@ -139,8 +136,7 @@ public class BasicDataSource
private transient Boolean defaultReadOnly;
/**
- * The default TransactionIsolation state of connections created by this
- * pool.
+ * The default TransactionIsolation state of connections created by this
pool.
*/
private volatile int defaultTransactionIsolation =
PoolableConnectionFactory.UNKNOWN_TRANSACTION_ISOLATION;
@@ -157,8 +153,8 @@ public class BasicDataSource
private volatile String defaultSchema;
/**
- * The property that controls if the pooled connections cache some state
- * rather than query the database for current state to improve performance.
+ * The property that controls if the pooled connections cache some state
rather than query the database for current
+ * state to improve performance.
*/
private boolean cacheState = true;
@@ -173,167 +169,143 @@ public class BasicDataSource
private String driverClassName;
/**
- * The class loader instance to use to load the JDBC driver. If not
- * specified, {@link Class#forName(String)} is used to load the JDBC
driver.
- * If specified, {@link Class#forName(String, boolean, ClassLoader)} is
- * used.
+ * The class loader instance to use to load the JDBC driver. If not
specified, {@link Class#forName(String)} is used
+ * to load the JDBC driver. If specified, {@link Class#forName(String,
boolean, ClassLoader)} is used.
*/
private ClassLoader driverClassLoader;
/**
- * True means that borrowObject returns the most recently used ("last in")
- * connection in the pool (if there are idle connections available). False
- * means that the pool behaves as a FIFO queue - connections are taken from
- * the idle instance pool in the order that they are returned to the pool.
+ * True means that borrowObject returns the most recently used ("last in")
connection in the pool (if there are idle
+ * connections available). False means that the pool behaves as a FIFO
queue - connections are taken from the idle
+ * instance pool in the order that they are returned to the pool.
*/
private boolean lifo = BaseObjectPoolConfig.DEFAULT_LIFO;
/**
- * The maximum number of active connections that can be allocated from this
- * pool at the same time, or negative for no limit.
+ * The maximum number of active connections that can be allocated from
this pool at the same time, or negative for
+ * no limit.
*/
private int maxTotal = GenericObjectPoolConfig.DEFAULT_MAX_TOTAL;
/**
- * The maximum number of connections that can remain idle in the pool,
- * without extra ones being destroyed, or negative for no limit. If maxIdle
- * is set too low on heavily loaded systems it is possible you will see
- * connections being closed and almost immediately new connections being
- * opened. This is a result of the active threads momentarily closing
- * connections faster than they are opening them, causing the number of
idle
- * connections to rise above maxIdle. The best value for maxIdle for
heavily
- * loaded system will vary but the default is a good starting point.
+ * The maximum number of connections that can remain idle in the pool,
without extra ones being destroyed, or
+ * negative for no limit. If maxIdle is set too low on heavily loaded
systems it is possible you will see
+ * connections being closed and almost immediately new connections being
opened. This is a result of the active
+ * threads momentarily closing connections faster than they are opening
them, causing the number of idle connections
+ * to rise above maxIdle. The best value for maxIdle for heavily loaded
system will vary but the default is a good
+ * starting point.
*/
private int maxIdle = GenericObjectPoolConfig.DEFAULT_MAX_IDLE;
/**
- * The minimum number of active connections that can remain idle in the
- * pool, without extra ones being created when the evictor runs, or 0 to
- * create none. The pool attempts to ensure that minIdle connections are
- * available when the idle object evictor runs. The value of this property
- * has no effect unless {@link #timeBetweenEvictionRunsMillis} has a
- * positive value.
+ * The minimum number of active connections that can remain idle in the
pool, without extra ones being created when
+ * the evictor runs, or 0 to create none. The pool attempts to ensure that
minIdle connections are available when
+ * the idle object evictor runs. The value of this property has no effect
unless
+ * {@link #timeBetweenEvictionRunsMillis} has a positive value.
*/
private int minIdle = GenericObjectPoolConfig.DEFAULT_MIN_IDLE;
/**
- * The initial number of connections that are created when the pool is
- * started.
+ * The initial number of connections that are created when the pool is
started.
*/
private int initialSize = 0;
/**
- * The maximum number of milliseconds that the pool will wait (when there
- * are no available connections) for a connection to be returned before
- * throwing an exception, or <= 0 to wait indefinitely.
+ * The maximum number of milliseconds that the pool will wait (when there
are no available connections) for a
+ * connection to be returned before throwing an exception, or <= 0 to wait
indefinitely.
*/
private long maxWaitMillis = BaseObjectPoolConfig.DEFAULT_MAX_WAIT_MILLIS;
/**
- * Prepared statement pooling for this pool. When this property is set to
- * <code>true</code> both PreparedStatements and CallableStatements are
- * pooled.
+ * Prepared statement pooling for this pool. When this property is set to
<code>true</code> both PreparedStatements
+ * and CallableStatements are pooled.
*/
private boolean poolPreparedStatements = false;
/**
* <p>
- * The maximum number of open statements that can be allocated from the
- * statement pool at the same time, or negative for no limit. Since a
- * connection usually only uses one or two statements at a time, this is
- * mostly used to help detect resource leaks.
+ * The maximum number of open statements that can be allocated from the
statement pool at the same time, or negative
+ * for no limit. Since a connection usually only uses one or two
statements at a time, this is mostly used to help
+ * detect resource leaks.
* </p>
* <p>
- * Note: As of version 1.3, CallableStatements (those produced by
- * {@link Connection#prepareCall}) are pooled along with PreparedStatements
- * (produced by {@link Connection#prepareStatement}) and
- * <code>maxOpenPreparedStatements</code> limits the total number of
- * prepared or callable statements that may be in use at a given time.
+ * Note: As of version 1.3, CallableStatements (those produced by {@link
Connection#prepareCall}) are pooled along
+ * with PreparedStatements (produced by {@link
Connection#prepareStatement}) and
+ * <code>maxOpenPreparedStatements</code> limits the total number of
prepared or callable statements that may be in
+ * use at a given time.
* </p>
*/
private int maxOpenPreparedStatements =
GenericKeyedObjectPoolConfig.DEFAULT_MAX_TOTAL;
/**
- * The indication of whether objects will be validated as soon as they have
- * been created by the pool. If the object fails to validate, the borrow
- * operation that triggered the creation will fail.
+ * The indication of whether objects will be validated as soon as they
have been created by the pool. If the object
+ * fails to validate, the borrow operation that triggered the creation
will fail.
*/
private boolean testOnCreate = false;
/**
- * The indication of whether objects will be validated before being
borrowed
- * from the pool. If the object fails to validate, it will be dropped from
- * the pool, and we will attempt to borrow another.
+ * The indication of whether objects will be validated before being
borrowed from the pool. If the object fails to
+ * validate, it will be dropped from the pool, and we will attempt to
borrow another.
*/
private boolean testOnBorrow = true;
/**
- * The indication of whether objects will be validated before being
returned
- * to the pool.
+ * The indication of whether objects will be validated before being
returned to the pool.
*/
private boolean testOnReturn = false;
/**
- * The number of milliseconds to sleep between runs of the idle object
- * evictor thread. When non-positive, no idle object evictor thread will be
- * run.
+ * The number of milliseconds to sleep between runs of the idle object
evictor thread. When non-positive, no idle
+ * object evictor thread will be run.
*/
private long timeBetweenEvictionRunsMillis =
BaseObjectPoolConfig.DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS;
/**
- * The number of objects to examine during each run of the idle object
- * evictor thread (if any).
+ * The number of objects to examine during each run of the idle object
evictor thread (if any).
*/
private int numTestsPerEvictionRun =
BaseObjectPoolConfig.DEFAULT_NUM_TESTS_PER_EVICTION_RUN;
/**
- * The minimum amount of time an object may sit idle in the pool before it
- * is eligible for eviction by the idle object evictor (if any).
+ * The minimum amount of time an object may sit idle in the pool before it
is eligible for eviction by the idle
+ * object evictor (if any).
*/
private long minEvictableIdleTimeMillis =
BaseObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS;
/**
- * The minimum amount of time a connection may sit idle in the pool before
- * it is eligible for eviction by the idle object evictor, with the extra
- * condition that at least "minIdle" connections remain in the pool. Note
- * that {@code minEvictableIdleTimeMillis} takes precedence over this
- * parameter. See {@link #getSoftMinEvictableIdleTimeMillis()}.
+ * The minimum amount of time a connection may sit idle in the pool before
it is eligible for eviction by the idle
+ * object evictor, with the extra condition that at least "minIdle"
connections remain in the pool. Note that
+ * {@code minEvictableIdleTimeMillis} takes precedence over this
parameter. See
+ * {@link #getSoftMinEvictableIdleTimeMillis()}.
*/
private long softMinEvictableIdleTimeMillis =
BaseObjectPoolConfig.DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS;
private String evictionPolicyClassName =
BaseObjectPoolConfig.DEFAULT_EVICTION_POLICY_CLASS_NAME;
/**
- * The indication of whether objects will be validated by the idle object
- * evictor (if any). If an object fails to validate, it will be dropped
from
- * the pool.
+ * The indication of whether objects will be validated by the idle object
evictor (if any). If an object fails to
+ * validate, it will be dropped from the pool.
*/
private boolean testWhileIdle = false;
/**
- * The connection password to be passed to our JDBC driver to establish a
- * connection.
+ * The connection password to be passed to our JDBC driver to establish a
connection.
*/
private volatile String password;
/**
- * The connection URL to be passed to our JDBC driver to establish a
- * connection.
+ * The connection URL to be passed to our JDBC driver to establish a
connection.
*/
private String url;
/**
- * The connection user name to be passed to our JDBC driver to establish a
- * connection.
+ * The connection user name to be passed to our JDBC driver to establish a
connection.
*/
private String userName;
/**
- * The SQL query that will be used to validate connections from this pool
- * before returning them to the caller. If specified, this query
- * <strong>MUST</strong> be an SQL SELECT statement that returns at least
- * one row. If not specified, {@link Connection#isValid(int)} will be used
- * to validate connections.
+ * The SQL query that will be used to validate connections from this pool
before returning them to the caller. If
+ * specified, this query <strong>MUST</strong> be an SQL SELECT statement
that returns at least one row. If not
+ * specified, {@link Connection#isValid(int)} will be used to validate
connections.
*/
private volatile String validationQuery;
@@ -343,17 +315,15 @@ public class BasicDataSource
private volatile int validationQueryTimeoutSeconds = -1;
/**
- * The fully qualified Java class name of a {@link ConnectionFactory}
- * implementation.
+ * The fully qualified Java class name of a {@link ConnectionFactory}
implementation.
*/
private String connectionFactoryClassName;
/**
* These SQL statements run once after a Connection is created.
* <p>
- * This property can be used for example to run ALTER SESSION SET
- * NLS_SORT=XCYECH in an Oracle Database only once after connection
- * creation.
+ * This property can be used for example to run ALTER SESSION SET
NLS_SORT=XCYECH in an Oracle Database only once
+ * after connection creation.
* </p>
*/
private volatile List<String> connectionInitSqls;
@@ -383,17 +353,15 @@ public class BasicDataSource
private volatile GenericObjectPool<PoolableConnection> connectionPool;
/**
- * The connection properties that will be sent to our JDBC driver when
- * establishing new connections. <strong>NOTE</strong> - The "user" and
- * "password" properties will be passed explicitly, so they do not need to
- * be included here.
+ * The connection properties that will be sent to our JDBC driver when
establishing new connections.
+ * <strong>NOTE</strong> - The "user" and "password" properties will be
passed explicitly, so they do not need to be
+ * included here.
*/
private Properties connectionProperties = new Properties();
/**
- * The data source we will use to manage connections. This object should be
- * acquired <strong>ONLY</strong> by calls to the
- * <code>createDataSource()</code> method.
+ * The data source we will use to manage connections. This object should
be acquired <strong>ONLY</strong> by calls
+ * to the <code>createDataSource()</code> method.
*/
private volatile DataSource dataSource;
@@ -412,40 +380,35 @@ public class BasicDataSource
*/
private ObjectNameWrapper registeredJmxObjectName;
-
/**
- * Adds a custom connection property to the set that will be passed to our
- * JDBC driver. This <strong>MUST</strong> be called before the first
- * connection is retrieved (along with all the other configuration property
- * setters). Calls to this method after the connection pool has been
- * initialized have no effect.
+ * Adds a custom connection property to the set that will be passed to our
JDBC driver. This <strong>MUST</strong>
+ * be called before the first connection is retrieved (along with all the
other configuration property setters).
+ * Calls to this method after the connection pool has been initialized
have no effect.
*
- * @param name Name of the custom connection property
+ * @param name Name of the custom connection property
* @param value Value of the custom connection property
*/
public void addConnectionProperty(final String name, final String value) {
connectionProperties.put(name, value);
}
-
/**
* <p>
- * Closes and releases all idle connections that are currently stored in
the
- * connection pool associated with this data source.
+ * Closes and releases all idle connections that are currently stored in
the connection pool associated with this
+ * data source.
* </p>
* <p>
- * Connections that are checked out to clients when this method is invoked
- * are not affected. When client applications subsequently invoke
- * {@link Connection#close()} to return these connections to the pool, the
+ * Connections that are checked out to clients when this method is invoked
are not affected. When client
+ * applications subsequently invoke {@link Connection#close()} to return
these connections to the pool, the
* underlying JDBC connections are closed.
* </p>
* <p>
- * Attempts to acquire connections using {@link #getConnection()} after
this
- * method has been invoked result in SQLExceptions.
+ * Attempts to acquire connections using {@link #getConnection()} after
this method has been invoked result in
+ * SQLExceptions.
* </p>
* <p>
- * This method is idempotent - i.e., closing an already closed
- * BasicDataSource has no effect and does not generate exceptions.
+ * This method is idempotent - i.e., closing an already closed
BasicDataSource has no effect and does not generate
+ * exceptions.
* </p>
*
* @throws SQLException if an error occurs closing idle connections
@@ -471,10 +434,8 @@ public class BasicDataSource
}
}
-
/**
- * Closes the connection pool, silently swallowing any exception that
- * occurs.
+ * Closes the connection pool, silently swallowing any exception that
occurs.
*/
private void closeConnectionPool() {
final GenericObjectPool<?> oldPool = connectionPool;
@@ -488,22 +449,16 @@ public class BasicDataSource
}
}
-
/**
- * Creates a JDBC connection factory for this datasource. The JDBC driver
is
- * loaded using the following algorithm:
+ * Creates a JDBC connection factory for this datasource. The JDBC driver
is loaded using the following algorithm:
* <ol>
- * <li>If a Driver instance has been specified via
- * {@link #setDriver(Driver)} use it</li>
- * <li>If no Driver instance was specified and {@link #driverClassName} is
- * specified that class is loaded using the {@link ClassLoader} of this
- * class or, if {@link #driverClassLoader} is set, {@link #driverClassName}
- * is loaded with the specified {@link ClassLoader}.</li>
- * <li>If {@link #driverClassName} is specified and the previous attempt
- * fails, the class is loaded using the context class loader of the current
- * thread.</li>
- * <li>If a driver still isn't loaded one is loaded via the
- * {@link DriverManager} using the specified {@link #url}.
+ * <li>If a Driver instance has been specified via {@link
#setDriver(Driver)} use it</li>
+ * <li>If no Driver instance was specified and {@link #driverClassName} is
specified that class is loaded using the
+ * {@link ClassLoader} of this class or, if {@link #driverClassLoader} is
set, {@link #driverClassName} is loaded
+ * with the specified {@link ClassLoader}.</li>
+ * <li>If {@link #driverClassName} is specified and the previous attempt
fails, the class is loaded using the
+ * context class loader of the current thread.</li>
+ * <li>If a driver still isn't loaded one is loaded via the {@link
DriverManager} using the specified {@link #url}.
* </ol>
* This method exists so subclasses can replace the implementation class.
*
@@ -526,12 +481,10 @@ public class BasicDataSource
driverFromCCL = Class.forName(driverClassName,
true, driverClassLoader);
}
} catch (final ClassNotFoundException cnfe) {
- driverFromCCL =
Thread.currentThread().getContextClassLoader()
- .loadClass(driverClassName);
+ driverFromCCL =
Thread.currentThread().getContextClassLoader().loadClass(driverClassName);
}
} catch (final Exception t) {
- final String message = "Cannot load JDBC driver class '" +
driverClassName +
- "'";
+ final String message = "Cannot load JDBC driver class '" +
driverClassName + "'";
logWriter.println(message);
t.printStackTrace(logWriter);
throw new SQLException(message, t);
@@ -552,9 +505,8 @@ public class BasicDataSource
}
}
} catch (final Exception t) {
- final String message = "Cannot create JDBC driver of class '" +
- (driverClassName != null ? driverClassName : "") + "'
for connect URL '" +
- url + "'";
+ final String message = "Cannot create JDBC driver of class '"
+ + (driverClassName != null ? driverClassName : "") +
"' for connect URL '" + url + "'";
logWriter.println(message);
t.printStackTrace(logWriter);
throw new SQLException(message, t);
@@ -579,20 +531,16 @@ public class BasicDataSource
return createConnectionFactory(driverToUse);
}
-
/**
- * Creates a connection pool for this datasource. This method only exists
so
- * subclasses can replace the implementation class.
+ * Creates a connection pool for this datasource. This method only exists
so subclasses can replace the
+ * implementation class.
* <p>
- * This implementation configures all pool properties other than
- * timeBetweenEvictionRunsMillis. Setting that property is deferred to
- * {@link #startPoolMaintenance()}, since setting
- * timeBetweenEvictionRunsMillis to a positive value causes
- * {@link GenericObjectPool}'s eviction timer to be started.
+ * This implementation configures all pool properties other than
timeBetweenEvictionRunsMillis. Setting that
+ * property is deferred to {@link #startPoolMaintenance()}, since setting
timeBetweenEvictionRunsMillis to a
+ * positive value causes {@link GenericObjectPool}'s eviction timer to be
started.
* </p>
*
- * @param factory The factory to use to create new connections for this
- * pool.
+ * @param factory The factory to use to create new connections for this
pool.
*/
protected void createConnectionPool(final PoolableConnectionFactory
factory) {
// Create an object pool to contain our active connections
@@ -600,8 +548,7 @@ public class BasicDataSource
updateJmxName(config);
// Disable JMX on the underlying pool if the DS is not registered:
config.setJmxEnabled(registeredJmxObjectName != null);
- final GenericObjectPool<PoolableConnection> gop =
createObjectPool(factory, config,
- abandonedConfig);
+ final GenericObjectPool<PoolableConnection> gop =
createObjectPool(factory, config, abandonedConfig);
gop.setMaxTotal(maxTotal);
gop.setMaxIdle(maxIdle);
gop.setMinIdle(minIdle);
@@ -620,15 +567,12 @@ public class BasicDataSource
connectionPool = gop;
}
-
/**
* <p>
- * Creates (if necessary) and return the internal data source we are using
- * to manage our connections.
+ * Creates (if necessary) and return the internal data source we are using
to manage our connections.
* </p>
*
- * @return The current internal DataSource or a newly created instance if
it
- * has not yet been created.
+ * @return The current internal DataSource or a newly created instance if
it has not yet been created.
* @throws SQLException if the object pool cannot be created.
*/
protected DataSource createDataSource() throws SQLException {
@@ -656,8 +600,7 @@ public class BasicDataSource
boolean success = false;
PoolableConnectionFactory poolableConnectionFactory;
try {
- poolableConnectionFactory = createPoolableConnectionFactory(
- driverConnectionFactory);
+ poolableConnectionFactory =
createPoolableConnectionFactory(driverConnectionFactory);
poolableConnectionFactory.setPoolStatements(poolPreparedStatements);
poolableConnectionFactory.setMaxOpenPreparedStatements(maxOpenPreparedStatements);
success = true;
@@ -712,10 +655,9 @@ public class BasicDataSource
}
}
-
/**
- * Creates the actual data source instance. This method only exists so that
- * subclasses can replace the implementation class.
+ * Creates the actual data source instance. This method only exists so
that subclasses can replace the
+ * implementation class.
*
* @throws SQLException if unable to create a datasource instance
*
@@ -727,23 +669,19 @@ public class BasicDataSource
return pds;
}
-
/**
- * Creates an object pool used to provide pooling support for
- * {@link Connection JDBC connections}.
+ * Creates an object pool used to provide pooling support for {@link
Connection JDBC connections}.
*
- * @param factory the object factory
- * @param poolConfig the object pool configuration
+ * @param factory the object factory
+ * @param poolConfig the object pool configuration
* @param abandonedConfig the abandoned objects configuration
* @return a non-null instance
*/
- protected GenericObjectPool<PoolableConnection> createObjectPool(
- final PoolableConnectionFactory factory,
- final GenericObjectPoolConfig<PoolableConnection> poolConfig,
- final AbandonedConfig abandonedConfig) {
+ protected GenericObjectPool<PoolableConnection> createObjectPool(final
PoolableConnectionFactory factory,
+ final GenericObjectPoolConfig<PoolableConnection> poolConfig,
final AbandonedConfig abandonedConfig) {
GenericObjectPool<PoolableConnection> gop;
- if (abandonedConfig != null &&
(abandonedConfig.getRemoveAbandonedOnBorrow() ||
- abandonedConfig.getRemoveAbandonedOnMaintenance())) {
+ if (abandonedConfig != null &&
(abandonedConfig.getRemoveAbandonedOnBorrow()
+ || abandonedConfig.getRemoveAbandonedOnMaintenance())) {
gop = new GenericObjectPool<>(factory, poolConfig,
abandonedConfig);
} else {
gop = new GenericObjectPool<>(factory, poolConfig);
@@ -751,21 +689,17 @@ public class BasicDataSource
return gop;
}
-
/**
- * Creates the PoolableConnectionFactory and attaches it to the connection
- * pool. This method only exists so subclasses can replace the default
- * implementation.
+ * Creates the PoolableConnectionFactory and attaches it to the connection
pool. This method only exists so
+ * subclasses can replace the default implementation.
*
* @param driverConnectionFactory JDBC connection factory
- * @throws SQLException if an error occurs creating the
- * PoolableConnectionFactory
+ * @throws SQLException if an error occurs creating the
PoolableConnectionFactory
*
- * @return A new PoolableConnectionFactory configured with the current
- * configuration of this BasicDataSource
+ * @return A new PoolableConnectionFactory configured with the current
configuration of this BasicDataSource
*/
- protected PoolableConnectionFactory createPoolableConnectionFactory(
- final ConnectionFactory driverConnectionFactory) throws
SQLException {
+ protected PoolableConnectionFactory createPoolableConnectionFactory(final
ConnectionFactory driverConnectionFactory)
+ throws SQLException {
PoolableConnectionFactory connectionFactory = null;
try {
connectionFactory = new
PoolableConnectionFactory(driverConnectionFactory,
@@ -791,19 +725,15 @@ public class BasicDataSource
} catch (final RuntimeException e) {
throw e;
} catch (final Exception e) {
- throw new SQLException(
- "Cannot create PoolableConnectionFactory (" +
e.getMessage() + ")", e);
+ throw new SQLException("Cannot create PoolableConnectionFactory ("
+ e.getMessage() + ")", e);
}
return connectionFactory;
}
-
/**
- * Gets the print writer used by this configuration to log information on
- * abandoned objects.
+ * Gets the print writer used by this configuration to log information on
abandoned objects.
*
- * @return The print writer used by this configuration to log information
on
- * abandoned objects.
+ * @return The print writer used by this configuration to log information
on abandoned objects.
*/
public PrintWriter getAbandonedLogWriter() {
if (abandonedConfig != null) {
@@ -812,13 +742,10 @@ public class BasicDataSource
return null;
}
-
/**
- * If the connection pool implements
- * {@link org.apache.commons.pool2.UsageTracking UsageTracking}, should the
- * connection pool record a stack trace every time a method is called on a
- * pooled connection and retain the most recent stack trace to aid
debugging
- * of abandoned connections?
+ * If the connection pool implements {@link
org.apache.commons.pool2.UsageTracking UsageTracking}, should the
+ * connection pool record a stack trace every time a method is called on a
pooled connection and retain the most
+ * recent stack trace to aid debugging of abandoned connections?
*
* @return <code>true</code> if usage tracking is enabled
*/
@@ -830,22 +757,17 @@ public class BasicDataSource
return false;
}
-
/**
- * Returns the value of the flag that controls whether or not connections
- * being returned to the pool will be checked and configured with
- * {@link Connection#setAutoCommit(boolean) Connection.setAutoCommit(true)}
- * if the auto commit setting is {@code false} when the connection is
- * returned. It is <code>true</code> by default.
+ * Returns the value of the flag that controls whether or not connections
being returned to the pool will be checked
+ * and configured with {@link Connection#setAutoCommit(boolean)
Connection.setAutoCommit(true)} if the auto commit
+ * setting is {@code false} when the connection is returned. It is
<code>true</code> by default.
*
- * @return Whether or not connections being returned to the pool will be
- * checked and configured with auto-commit.
+ * @return Whether or not connections being returned to the pool will be
checked and configured with auto-commit.
*/
public boolean getAutoCommitOnReturn() {
return autoCommitOnReturn;
}
-
/**
* Returns the state caching flag.
*
@@ -856,7 +778,6 @@ public class BasicDataSource
return cacheState;
}
-
/**
* Creates (if necessary) and return a connection to the database.
*
@@ -880,7 +801,6 @@ public class BasicDataSource
return createDataSource().getConnection();
}
-
/**
* <strong>BasicDataSource does NOT support this method.</strong>
*
@@ -888,7 +808,7 @@ public class BasicDataSource
* @param pass The database user's password
*
* @throws UnsupportedOperationException always thrown.
- * @throws SQLException if a database access error occurs
+ * @throws SQLException if a database access error occurs
* @return nothing - always throws UnsupportedOperationException
*/
@Override
@@ -898,11 +818,9 @@ public class BasicDataSource
throw new UnsupportedOperationException("Not supported by
BasicDataSource");
}
-
/**
- * Returns the list of SQL statements executed when a physical connection
is
- * first created. Returns an empty list if there are no initialization
- * statements configured.
+ * Returns the list of SQL statements executed when a physical connection
is first created. Returns an empty list if
+ * there are no initialization statements configured.
*
* @return initialization SQL statements
*/
@@ -914,10 +832,8 @@ public class BasicDataSource
return result;
}
-
/**
- * Provides the same data as {@link #getConnectionInitSqls()} but in an
- * array so it is accessible via JMX.
+ * Provides the same data as {@link #getConnectionInitSqls()} but in an
array so it is accessible via JMX.
*/
@Override
public String[] getConnectionInitSqlsAsArray() {
@@ -925,18 +841,15 @@ public class BasicDataSource
return result.toArray(new String[result.size()]);
}
-
protected GenericObjectPool<PoolableConnection> getConnectionPool() {
return connectionPool;
}
-
// For unit testing
Properties getConnectionProperties() {
return connectionProperties;
}
-
/**
* Returns the default auto-commit property.
*
@@ -947,7 +860,6 @@ public class BasicDataSource
return defaultAutoCommit;
}
-
/**
* Returns the default catalog.
*
@@ -958,11 +870,9 @@ public class BasicDataSource
return this.defaultCatalog;
}
-
/**
- * Gets the default query timeout that will be used for
- * {@link java.sql.Statement Statement}s created from this connection.
- * <code>null</code> means that the driver default will be used.
+ * Gets the default query timeout that will be used for {@link
java.sql.Statement Statement}s created from this
+ * connection. <code>null</code> means that the driver default will be
used.
*
* @return The default query timeout in seconds.
*/
@@ -970,7 +880,6 @@ public class BasicDataSource
return defaultQueryTimeoutSeconds;
}
-
/**
* Returns the default readOnly property.
*
@@ -981,7 +890,6 @@ public class BasicDataSource
return defaultReadOnly;
}
-
/**
* Returns the default schema.
*
@@ -993,7 +901,6 @@ public class BasicDataSource
return this.defaultSchema;
}
-
/**
* Returns the default transaction isolation state of returned connections.
*
@@ -1005,7 +912,6 @@ public class BasicDataSource
return this.defaultTransactionIsolation;
}
-
/**
* Returns the set of SQL_STATE codes considered to signal fatal
conditions.
*
@@ -1021,10 +927,8 @@ public class BasicDataSource
return result;
}
-
/**
- * Provides the same data as {@link #getDisconnectionSqlCodes} but in an
- * array so it is accessible via JMX.
+ * Provides the same data as {@link #getDisconnectionSqlCodes} but in an
array so it is accessible via JMX.
*
* @since 2.1
*/
@@ -1034,14 +938,11 @@ public class BasicDataSource
return result.toArray(new String[result.size()]);
}
-
/**
* Returns the JDBC Driver that has been configured for use by this pool.
* <p>
- * Note: This getter only returns the last value set by a call to
- * {@link #setDriver(Driver)}. It does not return any driver instance that
- * may have been created from the value set via
- * {@link #setDriverClassName(String)}.
+ * Note: This getter only returns the last value set by a call to {@link
#setDriver(Driver)}. It does not return any
+ * driver instance that may have been created from the value set via
{@link #setDriverClassName(String)}.
* </p>
*
* @return the JDBC Driver that has been configured for use by this pool
@@ -1050,15 +951,12 @@ public class BasicDataSource
return driver;
}
-
/**
- * Returns the class loader specified for loading the JDBC driver. Returns
- * <code>null</code> if no class loader has been explicitly specified.
+ * Returns the class loader specified for loading the JDBC driver. Returns
<code>null</code> if no class loader has
+ * been explicitly specified.
* <p>
- * Note: This getter only returns the last value set by a call to
- * {@link #setDriverClassLoader(ClassLoader)}. It does not return the class
- * loader of any driver that may have been set via
- * {@link #setDriver(Driver)}.
+ * Note: This getter only returns the last value set by a call to {@link
#setDriverClassLoader(ClassLoader)}. It
+ * does not return the class loader of any driver that may have been set
via {@link #setDriver(Driver)}.
* </p>
*
* @return The class loader specified for loading the JDBC driver.
@@ -1067,13 +965,11 @@ public class BasicDataSource
return this.driverClassLoader;
}
-
/**
* Returns the JDBC driver class name.
* <p>
- * Note: This getter only returns the last value set by a call to
- * {@link #setDriverClassName(String)}. It does not return the class name
of
- * any driver that may have been set via {@link #setDriver(Driver)}.
+ * Note: This getter only returns the last value set by a call to {@link
#setDriverClassName(String)}. It does not
+ * return the class name of any driver that may have been set via {@link
#setDriver(Driver)}.
* </p>
*
* @return the JDBC driver class name
@@ -1083,33 +979,25 @@ public class BasicDataSource
return this.driverClassName;
}
-
/**
- * Returns the ConnectionFactoryClassName that has been configured for use
- * by this pool.
+ * Returns the ConnectionFactoryClassName that has been configured for use
by this pool.
* <p>
- * Note: This getter only returns the last value set by a call to
- * {@link #setConnectionFactoryClassName(String)}.
+ * Note: This getter only returns the last value set by a call to {@link
#setConnectionFactoryClassName(String)}.
* </p>
*
- * @return the ConnectionFactoryClassName that has been configured for use
- * by this pool.
+ * @return the ConnectionFactoryClassName that has been configured for use
by this pool.
* @since 2.7.0
*/
public String getConnectionFactoryClassName() {
return this.connectionFactoryClassName;
}
-
/**
- * Returns the value of the flag that controls whether or not connections
- * being returned to the pool will be checked and configured with
- * {@link Connection#setAutoCommit(boolean) Connection.setAutoCommit(true)}
- * if the auto commit setting is {@code false} when the connection is
- * returned. It is <code>true</code> by default.
+ * Returns the value of the flag that controls whether or not connections
being returned to the pool will be checked
+ * and configured with {@link Connection#setAutoCommit(boolean)
Connection.setAutoCommit(true)} if the auto commit
+ * setting is {@code false} when the connection is returned. It is
<code>true</code> by default.
*
- * @return Whether or not connections being returned to the pool will be
- * checked and configured with auto-commit.
+ * @return Whether or not connections being returned to the pool will be
checked and configured with auto-commit.
* @deprecated Use {@link #getAutoCommitOnReturn()}.
*/
@Deprecated
@@ -1117,25 +1005,20 @@ public class BasicDataSource
return autoCommitOnReturn;
}
-
/**
* Gets the EvictionPolicy implementation in use with this connection pool.
*
- * @return The EvictionPolicy implementation in use with this connection
- * pool.
+ * @return The EvictionPolicy implementation in use with this connection
pool.
*/
public synchronized String getEvictionPolicyClassName() {
return evictionPolicyClassName;
}
-
/**
- * True means that validation will fail immediately for connections that
- * have previously thrown SQLExceptions with SQL_STATE indicating fatal
- * disconnection errors.
+ * True means that validation will fail immediately for connections that
have previously thrown SQLExceptions with
+ * SQL_STATE indicating fatal disconnection errors.
*
- * @return true if connections created by this datasource will fast fail
- * validation.
+ * @return true if connections created by this datasource will fast fail
validation.
* @see #setDisconnectionSqlCodes(Collection)
* @since 2.1
*/
@@ -1144,7 +1027,6 @@ public class BasicDataSource
return fastFailValidation;
}
-
/**
* Returns the initial size of the connection pool.
*
@@ -1155,10 +1037,9 @@ public class BasicDataSource
return this.initialSize;
}
-
/**
- * Returns the JMX name that has been requested for this DataSource. If the
- * requested name is not valid, an alternative may be chosen.
+ * Returns the JMX name that has been requested for this DataSource. If
the requested name is not valid, an
+ * alternative may be chosen.
*
* @return The JMX name that has been requested for this DataSource.
*/
@@ -1166,7 +1047,6 @@ public class BasicDataSource
return jmxName;
}
-
/**
* Returns the LIFO property.
*
@@ -1177,19 +1057,16 @@ public class BasicDataSource
return this.lifo;
}
-
/**
* <p>
- * Flag to log stack traces for application code which abandoned a
Statement
- * or Connection.
+ * Flag to log stack traces for application code which abandoned a
Statement or Connection.
* </p>
* <p>
* Defaults to false.
* </p>
* <p>
- * Logging of abandoned Statements and Connections adds overhead for every
- * Connection open or new Statement because a stack trace has to be
- * generated.
+ * Logging of abandoned Statements and Connections adds overhead for every
Connection open or new Statement because
+ * a stack trace has to be generated.
* </p>
*/
@Override
@@ -1200,12 +1077,9 @@ public class BasicDataSource
return false;
}
-
/**
- * When {@link #getMaxConnLifetimeMillis()} is set to limit connection
- * lifetime, this property determines whether or not log messages are
- * generated when the pool closes connections due to maximum lifetime
- * exceeded.
+ * When {@link #getMaxConnLifetimeMillis()} is set to limit connection
lifetime, this property determines whether or
+ * not log messages are generated when the pool closes connections due to
maximum lifetime exceeded.
*
* @since 2.1
*/
@@ -1214,7 +1088,6 @@ public class BasicDataSource
return logExpiredConnections;
}
-
/**
* <strong>BasicDataSource does NOT support this method.</strong>
*
@@ -1222,13 +1095,12 @@ public class BasicDataSource
* Returns the login timeout (in seconds) for connecting to the database.
* </p>
* <p>
- * Calls {@link #createDataSource()}, so has the side effect of
initializing
- * the connection pool.
+ * Calls {@link #createDataSource()}, so has the side effect of
initializing the connection pool.
* </p>
*
- * @throws SQLException if a database access error occurs
- * @throws UnsupportedOperationException If the DataSource implementation
- * does not support the login timeout feature.
+ * @throws SQLException if a database access error occurs
+ * @throws UnsupportedOperationException If the DataSource implementation
does not support the login timeout
+ * feature.
* @return login timeout in seconds
*/
@Override
@@ -1238,14 +1110,12 @@ public class BasicDataSource
throw new UnsupportedOperationException("Not supported by
BasicDataSource");
}
-
/**
* <p>
* Returns the log writer being used by this data source.
* </p>
* <p>
- * Calls {@link #createDataSource()}, so has the side effect of
initializing
- * the connection pool.
+ * Calls {@link #createDataSource()}, so has the side effect of
initializing the connection pool.
* </p>
*
* @throws SQLException if a database access error occurs
@@ -1256,21 +1126,19 @@ public class BasicDataSource
return createDataSource().getLogWriter();
}
-
/**
- * Returns the maximum permitted lifetime of a connection in milliseconds.
A
- * value of zero or less indicates an infinite lifetime.
+ * Returns the maximum permitted lifetime of a connection in milliseconds.
A value of zero or less indicates an
+ * infinite lifetime.
*/
@Override
public long getMaxConnLifetimeMillis() {
return maxConnLifetimeMillis;
}
-
/**
* <p>
- * Returns the maximum number of connections that can remain idle in the
- * pool. Excess idle connections are destroyed on return to the pool.
+ * Returns the maximum number of connections that can remain idle in the
pool. Excess idle connections are destroyed
+ * on return to the pool.
* </p>
* <p>
* A negative value indicates that there is no limit
@@ -1283,7 +1151,6 @@ public class BasicDataSource
return this.maxIdle;
}
-
/**
* Gets the value of the <code>maxOpenPreparedStatements</code> property.
*
@@ -1294,11 +1161,9 @@ public class BasicDataSource
return this.maxOpenPreparedStatements;
}
-
/**
* <p>
- * Returns the maximum number of active connections that can be allocated
at
- * the same time.
+ * Returns the maximum number of active connections that can be allocated
at the same time.
* </p>
* <p>
* A negative number means that there is no limit.
@@ -1311,11 +1176,9 @@ public class BasicDataSource
return this.maxTotal;
}
-
/**
- * Returns the maximum number of milliseconds that the pool will wait for a
- * connection to be returned before throwing an exception. A value less
than
- * or equal to zero means the pool is set to wait indefinitely.
+ * Returns the maximum number of milliseconds that the pool will wait for
a connection to be returned before
+ * throwing an exception. A value less than or equal to zero means the
pool is set to wait indefinitely.
*
* @return the maxWaitMillis property value
*/
@@ -1324,7 +1187,6 @@ public class BasicDataSource
return this.maxWaitMillis;
}
-
/**
* Returns the {@link #minEvictableIdleTimeMillis} property.
*
@@ -1336,11 +1198,9 @@ public class BasicDataSource
return this.minEvictableIdleTimeMillis;
}
-
/**
- * Returns the minimum number of idle connections in the pool. The pool
- * attempts to ensure that minIdle connections are available when the idle
- * object evictor runs. The value of this property has no effect unless
+ * Returns the minimum number of idle connections in the pool. The pool
attempts to ensure that minIdle connections
+ * are available when the idle object evictor runs. The value of this
property has no effect unless
* {@link #timeBetweenEvictionRunsMillis} has a positive value.
*
* @return the minimum number of idle connections
@@ -1351,10 +1211,8 @@ public class BasicDataSource
return this.minIdle;
}
-
/**
- * [Read Only] The current number of active connections that have been
- * allocated from this data source.
+ * [Read Only] The current number of active connections that have been
allocated from this data source.
*
* @return the current number of active connections
*/
@@ -1368,10 +1226,8 @@ public class BasicDataSource
return 0;
}
-
/**
- * [Read Only] The current number of idle connections that are waiting to
be
- * allocated from this data source.
+ * [Read Only] The current number of idle connections that are waiting to
be allocated from this data source.
*
* @return the current number of idle connections
*/
@@ -1385,7 +1241,6 @@ public class BasicDataSource
return 0;
}
-
/**
* Returns the value of the {@link #numTestsPerEvictionRun} property.
*
@@ -1397,13 +1252,11 @@ public class BasicDataSource
return this.numTestsPerEvictionRun;
}
-
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
throw new SQLFeatureNotSupportedException();
}
-
/**
* Returns the password passed to the JDBC driver to establish connections.
*
@@ -1414,29 +1267,24 @@ public class BasicDataSource
return this.password;
}
-
protected ObjectName getRegisteredJmxName() {
return ObjectNameWrapper.unwrap(registeredJmxObjectName);
}
-
/**
* <p>
- * Flag to remove abandoned connections if they exceed the
- * removeAbandonedTimeout when borrowObject is invoked.
+ * Flag to remove abandoned connections if they exceed the
removeAbandonedTimeout when borrowObject is invoked.
* </p>
* <p>
* The default value is false.
* </p>
* <p>
- * If set to true a connection is considered abandoned and eligible for
- * removal if it has not been used for more than
- * {@link #getRemoveAbandonedTimeout() removeAbandonedTimeout} seconds.
+ * If set to true a connection is considered abandoned and eligible for
removal if it has not been used for more
+ * than {@link #getRemoveAbandonedTimeout() removeAbandonedTimeout}
seconds.
* </p>
* <p>
- * Abandoned connections are identified and removed when
- * {@link #getConnection()} is invoked and all of the following conditions
- * hold:
+ * Abandoned connections are identified and removed when {@link
#getConnection()} is invoked and all of the
+ * following conditions hold:
* </p>
* <ul>
* <li>{@link #getRemoveAbandonedOnBorrow()}</li>
@@ -1454,11 +1302,9 @@ public class BasicDataSource
return false;
}
-
/**
* <p>
- * Flag to remove abandoned connections if they exceed the
- * removeAbandonedTimeout during pool maintenance.
+ * Flag to remove abandoned connections if they exceed the
removeAbandonedTimeout during pool maintenance.
* </p>
*
* <p>
@@ -1466,9 +1312,8 @@ public class BasicDataSource
* </p>
*
* <p>
- * If set to true a connection is considered abandoned and eligible for
- * removal if it has not been used for more than
- * {@link #getRemoveAbandonedTimeout() removeAbandonedTimeout} seconds.
+ * If set to true a connection is considered abandoned and eligible for
removal if it has not been used for more
+ * than {@link #getRemoveAbandonedTimeout() removeAbandonedTimeout}
seconds.
* </p>
*
* @see #getRemoveAbandonedTimeout()
@@ -1481,25 +1326,21 @@ public class BasicDataSource
return false;
}
-
/**
* <p>
* Timeout in seconds before an abandoned connection can be removed.
* </p>
* <p>
- * Creating a Statement, PreparedStatement or CallableStatement or using
one
- * of these to execute a query (using one of the execute methods) resets
the
- * lastUsed property of the parent connection.
+ * Creating a Statement, PreparedStatement or CallableStatement or using
one of these to execute a query (using one
+ * of the execute methods) resets the lastUsed property of the parent
connection.
* </p>
* <p>
* Abandoned connection cleanup happens when:
* </p>
* <ul>
- * <li>{@link #getRemoveAbandonedOnBorrow()} or
- * {@link #getRemoveAbandonedOnMaintenance()} = true</li>
+ * <li>{@link #getRemoveAbandonedOnBorrow()} or {@link
#getRemoveAbandonedOnMaintenance()} = true</li>
* <li>{@link #getNumIdle() numIdle} < 2</li>
- * <li>{@link #getNumActive() numActive} > {@link #getMaxTotal()
- * maxTotal} - 3</li>
+ * <li>{@link #getNumActive() numActive} > {@link #getMaxTotal()
maxTotal} - 3</li>
* </ul>
* <p>
* The default value is 300 seconds.
@@ -1513,48 +1354,38 @@ public class BasicDataSource
return 300;
}
-
/**
- * Gets the current value of the flag that controls whether a connection
- * will be rolled back when it is returned to the pool if auto commit is
not
- * enabled and the connection is not read only.
+ * Gets the current value of the flag that controls whether a connection
will be rolled back when it is returned to
+ * the pool if auto commit is not enabled and the connection is not read
only.
*
- * @return whether a connection will be rolled back when it is returned to
- * the pool.
+ * @return whether a connection will be rolled back when it is returned to
the pool.
*/
public boolean getRollbackOnReturn() {
return rollbackOnReturn;
}
-
/**
* <p>
- * Returns the minimum amount of time a connection may sit idle in the pool
- * before it is eligible for eviction by the idle object evictor, with the
- * extra condition that at least "minIdle" connections remain in the pool.
+ * Returns the minimum amount of time a connection may sit idle in the
pool before it is eligible for eviction by
+ * the idle object evictor, with the extra condition that at least
"minIdle" connections remain in the pool.
* </p>
*
* <p>
- * When {@link #getMinEvictableIdleTimeMillis() minEvictableIdleTimeMillis}
- * is set to a positive value, minEvictableIdleTimeMillis is examined first
- * by the idle connection evictor - i.e. when idle connections are visited
- * by the evictor, idle time is first compared against
- * {@code minEvictableIdleTimeMillis} (without considering the number of
- * idle connections in the pool) and then against
- * {@code softMinEvictableIdleTimeMillis}, including the {@code minIdle},
- * constraint.
+ * When {@link #getMinEvictableIdleTimeMillis()
minEvictableIdleTimeMillis} is set to a positive value,
+ * minEvictableIdleTimeMillis is examined first by the idle connection
evictor - i.e. when idle connections are
+ * visited by the evictor, idle time is first compared against {@code
minEvictableIdleTimeMillis} (without
+ * considering the number of idle connections in the pool) and then
against {@code softMinEvictableIdleTimeMillis},
+ * including the {@code minIdle}, constraint.
* </p>
*
- * @return minimum amount of time a connection may sit idle in the pool
- * before it is eligible for eviction, assuming there are minIdle
- * idle connections in the pool
+ * @return minimum amount of time a connection may sit idle in the pool
before it is eligible for eviction, assuming
+ * there are minIdle idle connections in the pool
*/
@Override
public synchronized long getSoftMinEvictableIdleTimeMillis() {
return softMinEvictableIdleTimeMillis;
}
-
/**
* Returns the {@link #testOnBorrow} property.
*
@@ -1567,12 +1398,10 @@ public class BasicDataSource
return this.testOnBorrow;
}
-
/**
* Returns the {@link #testOnCreate} property.
*
- * @return true if objects are validated immediately after they are created
- * by the pool
+ * @return true if objects are validated immediately after they are
created by the pool
* @see #testOnCreate
*/
@Override
@@ -1580,7 +1409,6 @@ public class BasicDataSource
return this.testOnCreate;
}
-
/**
* Returns the value of the {@link #testOnReturn} property.
*
@@ -1591,7 +1419,6 @@ public class BasicDataSource
return this.testOnReturn;
}
-
/**
* Returns the value of the {@link #testWhileIdle} property.
*
@@ -1603,7 +1430,6 @@ public class BasicDataSource
return this.testWhileIdle;
}
-
/**
* Returns the value of the {@link #timeBetweenEvictionRunsMillis}
property.
*
@@ -1615,34 +1441,28 @@ public class BasicDataSource
return this.timeBetweenEvictionRunsMillis;
}
-
/**
* Returns the JDBC connection {@link #url} property.
*
- * @return the {@link #url} passed to the JDBC driver to establish
- * connections
+ * @return the {@link #url} passed to the JDBC driver to establish
connections
*/
@Override
public synchronized String getUrl() {
return this.url;
}
-
/**
* Returns the JDBC connection {@link #userName} property.
*
- * @return the {@link #userName} passed to the JDBC driver to establish
- * connections
+ * @return the {@link #userName} passed to the JDBC driver to establish
connections
*/
@Override
public String getUsername() {
return this.userName;
}
-
/**
- * Returns the validation query used to validate connections before
- * returning them.
+ * Returns the validation query used to validate connections before
returning them.
*
* @return the SQL validation query
* @see #validationQuery
@@ -1652,7 +1472,6 @@ public class BasicDataSource
return this.validationQuery;
}
-
/**
* Returns the validation query timeout.
*
@@ -1663,10 +1482,9 @@ public class BasicDataSource
return validationQueryTimeoutSeconds;
}
-
/**
- * Manually invalidates a connection, effectively requesting the pool to
try
- * to close it, remove it from the pool and reclaim pool capacity.
+ * Manually invalidates a connection, effectively requesting the pool to
try to close it, remove it from the pool
+ * and reclaim pool capacity.
*
* @param connection The Connection to invalidate.
*
@@ -1678,8 +1496,7 @@ public class BasicDataSource
return;
}
if (connectionPool == null) {
- throw new IllegalStateException(
- "Cannot invalidate connection: ConnectionPool is null.");
+ throw new IllegalStateException("Cannot invalidate connection:
ConnectionPool is null.");
}
final PoolableConnection poolableConnection;
@@ -1690,19 +1507,16 @@ public class BasicDataSource
"Cannot invalidate connection: Connection is not a
poolable connection.");
}
} catch (final SQLException e) {
- throw new IllegalStateException(
- "Cannot invalidate connection: Unwrapping poolable
connection failed.", e);
+ throw new IllegalStateException("Cannot invalidate connection:
Unwrapping poolable connection failed.", e);
}
try {
connectionPool.invalidateObject(poolableConnection);
} catch (final Exception e) {
- throw new IllegalStateException("Invalidating connection threw
unexpected exception",
- e);
+ throw new IllegalStateException("Invalidating connection threw
unexpected exception", e);
}
}
-
/**
* Manually evicts idle connections.
*
@@ -1715,22 +1529,18 @@ public class BasicDataSource
}
}
-
/**
* Returns the value of the accessToUnderlyingConnectionAllowed property.
*
- * @return true if access to the underlying connection is allowed, false
- * otherwise.
+ * @return true if access to the underlying connection is allowed, false
otherwise.
*/
@Override
public synchronized boolean isAccessToUnderlyingConnectionAllowed() {
return this.accessToUnderlyingConnectionAllowed;
}
-
/**
- * If true, this data source is closed and no more connections can be
- * retrieved from this datasource.
+ * If true, this data source is closed and no more connections can be
retrieved from this datasource.
*
* @return true, if the data source is closed; false otherwise
*/
@@ -1739,19 +1549,16 @@ public class BasicDataSource
return closed;
}
-
/**
* Delegates in a null-safe manner to {@link String#isEmpty()}.
*
* @param value the string to test, may be null.
- * @return boolean false if value is null, otherwise
- * {@link String#isEmpty()}.
+ * @return boolean false if value is null, otherwise {@link
String#isEmpty()}.
*/
private boolean isEmpty(String value) {
return value == null ? true : value.trim().isEmpty();
}
-
/**
* Returns true if we are pooling statements.
*
@@ -1762,13 +1569,11 @@ public class BasicDataSource
return this.poolPreparedStatements;
}
-
@Override
public boolean isWrapperFor(final Class<?> iface) throws SQLException {
return false;
}
-
private void jmxRegister() {
// Return immediately if this DataSource has already been registered
if (registeredJmxObjectName != null) {
@@ -1782,37 +1587,31 @@ public class BasicDataSource
try {
ObjectNameWrapper.wrap(requestedName).registerMBean(this);
} catch (final MalformedObjectNameException e) {
- log.warn("The requested JMX name [" + requestedName +
- "] was not valid and will be ignored.");
+ log.warn("The requested JMX name [" + requestedName + "] was not
valid and will be ignored.");
}
}
-
protected void log(final String message) {
if (logWriter != null) {
logWriter.println(message);
}
}
-
@Override
public void postDeregister() {
// NO-OP
}
-
@Override
public void postRegister(final Boolean registrationDone) {
// NO-OP
}
-
@Override
public void preDeregister() throws Exception {
// NO-OP
}
-
@Override
public ObjectName preRegister(final MBeanServer server, final ObjectName
objectName) {
final String requestedName = getJmxName();
@@ -1820,8 +1619,7 @@ public class BasicDataSource
try {
registeredJmxObjectName =
ObjectNameWrapper.wrap(requestedName);
} catch (final MalformedObjectNameException e) {
- log.warn("The requested JMX name [" + requestedName +
- "] was not valid and will be ignored.");
+ log.warn("The requested JMX name [" + requestedName + "] was
not valid and will be ignored.");
}
}
if (registeredJmxObjectName == null) {
@@ -1830,7 +1628,6 @@ public class BasicDataSource
return ObjectNameWrapper.unwrap(registeredJmxObjectName);
}
-
/**
* Removes a custom connection property.
*
@@ -1841,10 +1638,8 @@ public class BasicDataSource
connectionProperties.remove(name);
}
-
/**
- * Sets the print writer to be used by this configuration to log
information
- * on abandoned objects.
+ * Sets the print writer to be used by this configuration to log
information on abandoned objects.
*
* @param logWriter The new log writer
*/
@@ -1859,16 +1654,13 @@ public class BasicDataSource
}
}
-
/**
- * If the connection pool implements
- * {@link org.apache.commons.pool2.UsageTracking UsageTracking}, configure
- * whether the connection pool should record a stack trace every time a
- * method is called on a pooled connection and retain the most recent stack
- * trace to aid debugging of abandoned connections.
+ * If the connection pool implements {@link
org.apache.commons.pool2.UsageTracking UsageTracking}, configure whether
+ * the connection pool should record a stack trace every time a method is
called on a pooled connection and retain
+ * the most recent stack trace to aid debugging of abandoned connections.
*
- * @param usageTracking A value of <code>true</code> will enable the
- * recording of a stack trace on every use of a pooled
connection
+ * @param usageTracking A value of <code>true</code> will enable the
recording of a stack trace on every use of a
+ * pooled connection
*/
public void setAbandonedUsageTracking(final boolean usageTracking) {
if (abandonedConfig == null) {
@@ -1881,17 +1673,14 @@ public class BasicDataSource
}
}
-
/**
* <p>
- * Sets the value of the accessToUnderlyingConnectionAllowed property. It
- * controls if the PoolGuard allows access to the underlying connection.
- * (Default: false)
+ * Sets the value of the accessToUnderlyingConnectionAllowed property. It
controls if the PoolGuard allows access to
+ * the underlying connection. (Default: false)
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -1901,23 +1690,19 @@ public class BasicDataSource
this.accessToUnderlyingConnectionAllowed = allow;
}
-
/**
- * Sets the value of the flag that controls whether or not connections
being
- * returned to the pool will be checked and configured with
- * {@link Connection#setAutoCommit(boolean) Connection.setAutoCommit(true)}
- * if the auto commit setting is {@code false} when the connection is
- * returned. It is <code>true</code> by default.
+ * Sets the value of the flag that controls whether or not connections
being returned to the pool will be checked
+ * and configured with {@link Connection#setAutoCommit(boolean)
Connection.setAutoCommit(true)} if the auto commit
+ * setting is {@code false} when the connection is returned. It is
<code>true</code> by default.
*
- * @param autoCommitOnReturn Whether or not connections being returned to
- * the pool will be checked and configured with auto-commit.
+ * @param autoCommitOnReturn Whether or not connections being returned to
the pool will be checked and configured
+ * with auto-commit.
* @since 2.6.0
*/
public void setAutoCommitOnReturn(final boolean autoCommitOnReturn) {
this.autoCommitOnReturn = autoCommitOnReturn;
}
-
/**
* Sets the state caching flag.
*
@@ -1927,19 +1712,15 @@ public class BasicDataSource
this.cacheState = cacheState;
}
-
/**
- * Sets the list of SQL statements to be executed when a physical
connection
- * is first created.
+ * Sets the list of SQL statements to be executed when a physical
connection is first created.
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
- * @param connectionInitSqls Collection of SQL statements to execute on
- * connection creation
+ * @param connectionInitSqls Collection of SQL statements to execute on
connection creation
*/
public void setConnectionInitSqls(final Collection<String>
connectionInitSqls) {
if (connectionInitSqls != null && connectionInitSqls.size() > 0) {
@@ -1958,7 +1739,6 @@ public class BasicDataSource
}
}
-
// ----------------------------------------------------- DataSource Methods
/**
@@ -1967,12 +1747,10 @@ public class BasicDataSource
* Format of the string must be [propertyName=property;]*
* </p>
* <p>
- * NOTE - The "user" and "password" properties will be added explicitly, so
- * they do not need to be included here.
+ * NOTE - The "user" and "password" properties will be added explicitly,
so they do not need to be included here.
* </p>
*
- * @param connectionProperties the connection properties used to create new
- * connections
+ * @param connectionProperties the connection properties used to create
new connections
*/
public void setConnectionProperties(final String connectionProperties) {
Objects.requireNonNull(connectionProperties, "connectionProperties is
null");
@@ -1995,16 +1773,13 @@ public class BasicDataSource
this.connectionProperties = properties;
}
-
/**
* <p>
- * Sets default auto-commit state of connections returned by this
- * datasource.
+ * Sets default auto-commit state of connections returned by this
datasource.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2014,15 +1789,13 @@ public class BasicDataSource
this.defaultAutoCommit = defaultAutoCommit;
}
-
/**
* <p>
* Sets the default catalog.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2036,11 +1809,9 @@ public class BasicDataSource
}
}
-
/**
- * Sets the default query timeout that will be used for
- * {@link java.sql.Statement Statement}s created from this connection.
- * <code>null</code> means that the driver default will be used.
+ * Sets the default query timeout that will be used for {@link
java.sql.Statement Statement}s created from this
+ * connection. <code>null</code> means that the driver default will be
used.
*
* @param defaultQueryTimeoutSeconds The default query timeout in seconds.
*/
@@ -2048,15 +1819,13 @@ public class BasicDataSource
this.defaultQueryTimeoutSeconds = defaultQueryTimeoutSeconds;
}
-
/**
* <p>
* Sets defaultReadonly property.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2066,15 +1835,13 @@ public class BasicDataSource
this.defaultReadOnly = defaultReadOnly;
}
-
/**
* <p>
* Sets the default schema.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2089,51 +1856,42 @@ public class BasicDataSource
}
}
-
/**
* <p>
* Sets the default transaction isolation state for returned connections.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
- * @param defaultTransactionIsolation the default transaction isolation
- * state
+ * @param defaultTransactionIsolation the default transaction isolation
state
* @see Connection#getTransactionIsolation
*/
public void setDefaultTransactionIsolation(final int
defaultTransactionIsolation) {
this.defaultTransactionIsolation = defaultTransactionIsolation;
}
-
/**
* Sets the SQL_STATE codes considered to signal fatal conditions.
* <p>
- * Overrides the defaults in {@link Utils#DISCONNECTION_SQL_CODES} (plus
- * anything starting with {@link Utils#DISCONNECTION_SQL_CODE_PREFIX}). If
- * this property is non-null and {@link #getFastFailValidation()} is
- * {@code true}, whenever connections created by this datasource generate
- * exceptions with SQL_STATE codes in this list, they will be marked as
- * "fatally disconnected" and subsequent validations will fail fast (no
- * attempt at isValid or validation query).
+ * Overrides the defaults in {@link Utils#DISCONNECTION_SQL_CODES} (plus
anything starting with
+ * {@link Utils#DISCONNECTION_SQL_CODE_PREFIX}). If this property is
non-null and {@link #getFastFailValidation()}
+ * is {@code true}, whenever connections created by this datasource
generate exceptions with SQL_STATE codes in this
+ * list, they will be marked as "fatally disconnected" and subsequent
validations will fail fast (no attempt at
+ * isValid or validation query).
* </p>
* <p>
- * If {@link #getFastFailValidation()} is {@code false} setting this
- * property has no effect.
+ * If {@link #getFastFailValidation()} is {@code false} setting this
property has no effect.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: {@code getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: {@code getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter}.
* </p>
*
- * @param disconnectionSqlCodes SQL_STATE codes considered to signal fatal
- * conditions
+ * @param disconnectionSqlCodes SQL_STATE codes considered to signal fatal
conditions
* @since 2.1
*/
public void setDisconnectionSqlCodes(final Collection<String>
disconnectionSqlCodes) {
@@ -2153,13 +1911,11 @@ public class BasicDataSource
}
}
-
/**
* Sets the JDBC Driver instance to use for this pool.
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2169,34 +1925,29 @@ public class BasicDataSource
this.driver = driver;
}
-
/**
* <p>
* Sets the class loader to be used to load the JDBC driver.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
- * @param driverClassLoader the class loader with which to load the JDBC
- * driver
+ * @param driverClassLoader the class loader with which to load the JDBC
driver
*/
public synchronized void setDriverClassLoader(final ClassLoader
driverClassLoader) {
this.driverClassLoader = driverClassLoader;
}
-
/**
* <p>
* Sets the JDBC driver class name.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2210,7 +1961,6 @@ public class BasicDataSource
}
}
-
/**
* Sets the ConnectionFactory class name.
*
@@ -2226,16 +1976,13 @@ public class BasicDataSource
}
}
-
/**
- * Sets the value of the flag that controls whether or not connections
being
- * returned to the pool will be checked and configured with
- * {@link Connection#setAutoCommit(boolean) Connection.setAutoCommit(true)}
- * if the auto commit setting is {@code false} when the connection is
- * returned. It is <code>true</code> by default.
+ * Sets the value of the flag that controls whether or not connections
being returned to the pool will be checked
+ * and configured with {@link Connection#setAutoCommit(boolean)
Connection.setAutoCommit(true)} if the auto commit
+ * setting is {@code false} when the connection is returned. It is
<code>true</code> by default.
*
- * @param autoCommitOnReturn Whether or not connections being returned to
- * the pool will be checked and configured with auto-commit.
+ * @param autoCommitOnReturn Whether or not connections being returned to
the pool will be checked and configured
+ * with auto-commit.
* @deprecated Use {@link #setAutoCommitOnReturn(boolean)}.
*/
@Deprecated
@@ -2243,12 +1990,10 @@ public class BasicDataSource
this.autoCommitOnReturn = autoCommitOnReturn;
}
-
/**
* Sets the EvictionPolicy implementation to use with this connection pool.
*
- * @param evictionPolicyClassName The fully qualified class name of the
- * EvictionPolicy implementation
+ * @param evictionPolicyClassName The fully qualified class name of the
EvictionPolicy implementation
*/
public synchronized void setEvictionPolicyClassName(final String
evictionPolicyClassName) {
if (connectionPool != null) {
@@ -2257,43 +2002,36 @@ public class BasicDataSource
this.evictionPolicyClassName = evictionPolicyClassName;
}
-
/**
* @see #getFastFailValidation()
- * @param fastFailValidation true means connections created by this factory
- * will fast fail validation
+ * @param fastFailValidation true means connections created by this
factory will fast fail validation
* @since 2.1
*/
public void setFastFailValidation(final boolean fastFailValidation) {
this.fastFailValidation = fastFailValidation;
}
-
/**
* <p>
* Sets the initial size of the connection pool.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
- * @param initialSize the number of connections created when the pool is
- * initialized
+ * @param initialSize the number of connections created when the pool is
initialized
*/
public synchronized void setInitialSize(final int initialSize) {
this.initialSize = initialSize;
}
-
/**
- * Sets the JMX name that has been requested for this DataSource. If the
- * requested name is not valid, an alternative may be chosen. This
- * DataSource will attempt to register itself using this name. If another
- * component registers this DataSource with JMX and this name is valid this
- * name will be used in preference to any specified by the other component.
+ * Sets the JMX name that has been requested for this DataSource. If the
requested name is not valid, an alternative
+ * may be chosen. This DataSource will attempt to register itself using
this name. If another component registers
+ * this DataSource with JMX and this name is valid this name will be used
in preference to any specified by the
+ * other component.
*
* @param jmxName The JMX name that has been requested for this DataSource
*/
@@ -2301,10 +2039,8 @@ public class BasicDataSource
this.jmxName = jmxName;
}
-
/**
- * Sets the LIFO property. True means the pool behaves as a LIFO queue;
- * false means FIFO.
+ * Sets the LIFO property. True means the pool behaves as a LIFO queue;
false means FIFO.
*
* @param lifo the new value for the LIFO property
*/
@@ -2315,7 +2051,6 @@ public class BasicDataSource
}
}
-
/**
* @param logAbandoned new logAbandoned property value
*/
@@ -2330,23 +2065,18 @@ public class BasicDataSource
}
}
-
/**
- * When {@link #getMaxConnLifetimeMillis()} is set to limit connection
- * lifetime, this property determines whether or not log messages are
- * generated when the pool closes connections due to maximum lifetime
- * exceeded. Set this property to false to suppress log messages when
- * connections expire.
+ * When {@link #getMaxConnLifetimeMillis()} is set to limit connection
lifetime, this property determines whether or
+ * not log messages are generated when the pool closes connections due to
maximum lifetime exceeded. Set this
+ * property to false to suppress log messages when connections expire.
*
- * @param logExpiredConnections Whether or not log messages are generated
- * when the pool closes connections due to maximum lifetime
- * exceeded.
+ * @param logExpiredConnections Whether or not log messages are generated
when the pool closes connections due to
+ * maximum lifetime exceeded.
*/
public void setLogExpiredConnections(final boolean logExpiredConnections) {
this.logExpiredConnections = logExpiredConnections;
}
-
/**
* <strong>BasicDataSource does NOT support this method. </strong>
*
@@ -2354,14 +2084,13 @@ public class BasicDataSource
* Set the login timeout (in seconds) for connecting to the database.
* </p>
* <p>
- * Calls {@link #createDataSource()}, so has the side effect of
initializing
- * the connection pool.
+ * Calls {@link #createDataSource()}, so has the side effect of
initializing the connection pool.
* </p>
*
* @param loginTimeout The new login timeout, or zero for no timeout
- * @throws UnsupportedOperationException If the DataSource implementation
- * does not support the login timeout feature.
- * @throws SQLException if a database access error occurs
+ * @throws UnsupportedOperationException If the DataSource implementation
does not support the login timeout
+ * feature.
+ * @throws SQLException if a database access error occurs
*/
@Override
public void setLoginTimeout(final int loginTimeout) throws SQLException {
@@ -2370,14 +2099,12 @@ public class BasicDataSource
throw new UnsupportedOperationException("Not supported by
BasicDataSource");
}
-
/**
* <p>
* Sets the log writer being used by this data source.
* </p>
* <p>
- * Calls {@link #createDataSource()}, so has the side effect of
initializing
- * the connection pool.
+ * Calls {@link #createDataSource()}, so has the side effect of
initializing the connection pool.
* </p>
*
* @param logWriter The new log writer
@@ -2389,30 +2116,26 @@ public class BasicDataSource
this.logWriter = logWriter;
}
-
/**
* <p>
- * Sets the maximum permitted lifetime of a connection in milliseconds. A
- * value of zero or less indicates an infinite lifetime.
+ * Sets the maximum permitted lifetime of a connection in milliseconds. A
value of zero or less indicates an
+ * infinite lifetime.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
- * @param maxConnLifetimeMillis The maximum permitted lifetime of a
- * connection in milliseconds.
+ * @param maxConnLifetimeMillis The maximum permitted lifetime of a
connection in milliseconds.
*/
public void setMaxConnLifetimeMillis(final long maxConnLifetimeMillis) {
this.maxConnLifetimeMillis = maxConnLifetimeMillis;
}
-
/**
- * Sets the maximum number of connections that can remain idle in the pool.
- * Excess idle connections are destroyed on return to the pool.
+ * Sets the maximum number of connections that can remain idle in the
pool. Excess idle connections are destroyed on
+ * return to the pool.
*
* @see #getMaxIdle()
* @param maxIdle the new value for maxIdle
@@ -2424,15 +2147,13 @@ public class BasicDataSource
}
}
-
/**
* <p>
* Sets the value of the <code>maxOpenPreparedStatements</code> property.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2442,10 +2163,9 @@ public class BasicDataSource
this.maxOpenPreparedStatements = maxOpenStatements;
}
-
/**
- * Sets the maximum total number of idle and borrows connections that can
be
- * active at the same time. Use a negative value for no limit.
+ * Sets the maximum total number of idle and borrows connections that can
be active at the same time. Use a negative
+ * value for no limit.
*
* @param maxTotal the new value for maxTotal
* @see #getMaxTotal()
@@ -2457,10 +2177,8 @@ public class BasicDataSource
}
}
-
/**
- * Sets the MaxWaitMillis property. Use -1 to make the pool wait
- * indefinitely.
+ * Sets the MaxWaitMillis property. Use -1 to make the pool wait
indefinitely.
*
* @param maxWaitMillis the new value for MaxWaitMillis
* @see #getMaxWaitMillis()
@@ -2472,12 +2190,10 @@ public class BasicDataSource
}
}
-
/**
* Sets the {@link #minEvictableIdleTimeMillis} property.
*
- * @param minEvictableIdleTimeMillis the minimum amount of time an object
- * may sit idle in the pool
+ * @param minEvictableIdleTimeMillis the minimum amount of time an object
may sit idle in the pool
* @see #minEvictableIdleTimeMillis
*/
public synchronized void setMinEvictableIdleTimeMillis(final long
minEvictableIdleTimeMillis) {
@@ -2487,11 +2203,9 @@ public class BasicDataSource
}
}
-
/**
- * Sets the minimum number of idle connections in the pool. The pool
- * attempts to ensure that minIdle connections are available when the idle
- * object evictor runs. The value of this property has no effect unless
+ * Sets the minimum number of idle connections in the pool. The pool
attempts to ensure that minIdle connections are
+ * available when the idle object evictor runs. The value of this property
has no effect unless
* {@link #timeBetweenEvictionRunsMillis} has a positive value.
*
* @param minIdle the new value for minIdle
@@ -2504,12 +2218,10 @@ public class BasicDataSource
}
}
-
/**
* Sets the value of the {@link #numTestsPerEvictionRun} property.
*
- * @param numTestsPerEvictionRun the new {@link #numTestsPerEvictionRun}
- * value
+ * @param numTestsPerEvictionRun the new {@link #numTestsPerEvictionRun}
value
* @see #numTestsPerEvictionRun
*/
public synchronized void setNumTestsPerEvictionRun(final int
numTestsPerEvictionRun) {
@@ -2519,7 +2231,6 @@ public class BasicDataSource
}
}
-
// ------------------------------------------------------ Protected Methods
/**
@@ -2527,9 +2238,8 @@ public class BasicDataSource
* Sets the {@link #password}.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2539,15 +2249,13 @@ public class BasicDataSource
this.password = password;
}
-
/**
* <p>
* Sets whether to pool statements or not.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2557,10 +2265,9 @@ public class BasicDataSource
this.poolPreparedStatements = poolingStatements;
}
-
/**
- * @param removeAbandonedOnBorrow true means abandoned connections may be
- * removed when connections are borrowed from the pool.
+ * @param removeAbandonedOnBorrow true means abandoned connections may be
removed when connections are borrowed from
+ * the pool.
* @see #getRemoveAbandonedOnBorrow()
*/
public void setRemoveAbandonedOnBorrow(final boolean
removeAbandonedOnBorrow) {
@@ -2574,10 +2281,8 @@ public class BasicDataSource
}
}
-
/**
- * @param removeAbandonedOnMaintenance true means abandoned connections may
- * be removed on pool maintenance.
+ * @param removeAbandonedOnMaintenance true means abandoned connections
may be removed on pool maintenance.
* @see #getRemoveAbandonedOnMaintenance()
*/
public void setRemoveAbandonedOnMaintenance(final boolean
removeAbandonedOnMaintenance) {
@@ -2591,16 +2296,13 @@ public class BasicDataSource
}
}
-
/**
* <p>
- * Sets the timeout in seconds before an abandoned connection can be
- * removed.
+ * Sets the timeout in seconds before an abandoned connection can be
removed.
* </p>
*
* <p>
- * Setting this property has no effect if
- * {@link #getRemoveAbandonedOnBorrow()} and
+ * Setting this property has no effect if {@link
#getRemoveAbandonedOnBorrow()} and
* {@link #getRemoveAbandonedOnMaintenance()} are false.
* </p>
*
@@ -2620,43 +2322,35 @@ public class BasicDataSource
}
}
-
/**
- * Sets the flag that controls if a connection will be rolled back when it
- * is returned to the pool if auto commit is not enabled and the connection
- * is not read only.
+ * Sets the flag that controls if a connection will be rolled back when it
is returned to the pool if auto commit is
+ * not enabled and the connection is not read only.
*
- * @param rollbackOnReturn whether a connection will be rolled back when it
- * is returned to the pool.
+ * @param rollbackOnReturn whether a connection will be rolled back when
it is returned to the pool.
*/
public void setRollbackOnReturn(final boolean rollbackOnReturn) {
this.rollbackOnReturn = rollbackOnReturn;
}
-
/**
- * Sets the minimum amount of time a connection may sit idle in the pool
- * before it is eligible for eviction by the idle object evictor, with the
- * extra condition that at least "minIdle" connections remain in the pool.
+ * Sets the minimum amount of time a connection may sit idle in the pool
before it is eligible for eviction by the
+ * idle object evictor, with the extra condition that at least "minIdle"
connections remain in the pool.
*
- * @param softMinEvictableIdleTimeMillis minimum amount of time a
connection
- * may sit idle in the pool before it is eligible for eviction,
- * assuming there are minIdle idle connections in the pool.
+ * @param softMinEvictableIdleTimeMillis minimum amount of time a
connection may sit idle in the pool before it is
+ * eligible for eviction, assuming
there are minIdle idle connections in the
+ * pool.
* @see #getSoftMinEvictableIdleTimeMillis
*/
- public synchronized void setSoftMinEvictableIdleTimeMillis(
- final long softMinEvictableIdleTimeMillis) {
+ public synchronized void setSoftMinEvictableIdleTimeMillis(final long
softMinEvictableIdleTimeMillis) {
this.softMinEvictableIdleTimeMillis = softMinEvictableIdleTimeMillis;
if (connectionPool != null) {
connectionPool.setSoftMinEvictableIdleTimeMillis(softMinEvictableIdleTimeMillis);
}
}
-
/**
- * Sets the {@link #testOnBorrow} property. This property determines
whether
- * or not the pool will validate objects before they are borrowed from the
- * pool.
+ * Sets the {@link #testOnBorrow} property. This property determines
whether or not the pool will validate objects
+ * before they are borrowed from the pool.
*
* @param testOnBorrow new value for testOnBorrow property
*/
@@ -2667,11 +2361,9 @@ public class BasicDataSource
}
}
-
/**
- * Sets the {@link #testOnCreate} property. This property determines
whether
- * or not the pool will validate objects immediately after they are created
- * by the pool
+ * Sets the {@link #testOnCreate} property. This property determines
whether or not the pool will validate objects
+ * immediately after they are created by the pool
*
* @param testOnCreate new value for testOnCreate property
*/
@@ -2682,11 +2374,9 @@ public class BasicDataSource
}
}
-
/**
- * Sets the <code>testOnReturn</code> property. This property determines
- * whether or not the pool will validate objects before they are returned
to
- * the pool.
+ * Sets the <code>testOnReturn</code> property. This property determines
whether or not the pool will validate
+ * objects before they are returned to the pool.
*
* @param testOnReturn new value for testOnReturn property
*/
@@ -2697,10 +2387,9 @@ public class BasicDataSource
}
}
-
/**
- * Sets the <code>testWhileIdle</code> property. This property determines
- * whether or not the idle object evictor will validate connections.
+ * Sets the <code>testWhileIdle</code> property. This property determines
whether or not the idle object evictor
+ * will validate connections.
*
* @param testWhileIdle new value for testWhileIdle property
*/
@@ -2711,30 +2400,26 @@ public class BasicDataSource
}
}
-
/**
* Sets the {@link #timeBetweenEvictionRunsMillis} property.
*
* @param timeBetweenEvictionRunsMillis the new time between evictor runs
* @see #timeBetweenEvictionRunsMillis
*/
- public synchronized void setTimeBetweenEvictionRunsMillis(
- final long timeBetweenEvictionRunsMillis) {
+ public synchronized void setTimeBetweenEvictionRunsMillis(final long
timeBetweenEvictionRunsMillis) {
this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
if (connectionPool != null) {
connectionPool.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
}
}
-
/**
* <p>
* Sets the {@link #url}.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2744,15 +2429,13 @@ public class BasicDataSource
this.url = url;
}
-
/**
* <p>
* Sets the {@link #userName}.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2762,15 +2445,13 @@ public class BasicDataSource
this.userName = userName;
}
-
/**
* <p>
* Sets the {@link #validationQuery}.
* </p>
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
@@ -2784,27 +2465,21 @@ public class BasicDataSource
}
}
-
/**
- * Sets the validation query timeout, the amount of time, in seconds, that
- * connection validation will wait for a response from the database when
- * executing a validation query. Use a value less than or equal to 0 for no
- * timeout.
+ * Sets the validation query timeout, the amount of time, in seconds, that
connection validation will wait for a
+ * response from the database when executing a validation query. Use a
value less than or equal to 0 for no timeout.
* <p>
- * Note: this method currently has no effect once the pool has been
- * initialized. The pool is initialized the first time one of the following
- * methods is invoked: <code>getConnection, setLogwriter,
+ * Note: this method currently has no effect once the pool has been
initialized. The pool is initialized the first
+ * time one of the following methods is invoked: <code>getConnection,
setLogwriter,
* setLoginTimeout, getLoginTimeout, getLogWriter.</code>
* </p>
*
- * @param validationQueryTimeoutSeconds new validation query timeout value
- * in seconds
+ * @param validationQueryTimeoutSeconds new validation query timeout value
in seconds
*/
public void setValidationQueryTimeout(final int
validationQueryTimeoutSeconds) {
this.validationQueryTimeoutSeconds = validationQueryTimeoutSeconds;
}
-
/**
* Starts the connection pool maintenance task, if configured.
*/
@@ -2814,13 +2489,11 @@ public class BasicDataSource
}
}
-
@Override
public <T> T unwrap(final Class<T> iface) throws SQLException {
throw new SQLException("BasicDataSource is not a wrapper.");
}
-
private void updateJmxName(final GenericObjectPoolConfig<?> config) {
if (registeredJmxObjectName == null) {
return;
@@ -2831,7 +2504,6 @@ public class BasicDataSource
config.setJmxNamePrefix(Constants.JMX_CONNECTION_POOL_PREFIX);
}
-
private ConnectionFactory createConnectionFactory(final Driver driver)
throws SQLException {
if (connectionFactoryClassName != null) {
try {
@@ -2840,8 +2512,8 @@ public class BasicDataSource
.getConstructor(Driver.class, String.class,
Properties.class)
.newInstance(driver, url, connectionProperties);
} catch (final Exception t) {
- final String message = "Cannot load ConnectionFactory
implementation '" +
- connectionFactoryClassName + "'";
+ final String message = "Cannot load ConnectionFactory
implementation '" + connectionFactoryClassName
+ + "'";
logWriter.println(message);
t.printStackTrace(logWriter);
throw new SQLException(message, t);