You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2016/05/13 18:49:32 UTC

svn commit: r1743719 [1/8] - in /tomcat/tc8.5.x/trunk: ./ java/org/apache/tomcat/dbcp/dbcp2/ java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/ java/org/apache/tomcat/dbcp/dbcp2/datasources/ webapps/docs/

Author: markt
Date: Fri May 13 18:49:32 2016
New Revision: 1743719

URL: http://svn.apache.org/viewvc?rev=1743719&view=rev
Log:
Update internal fork of Commons DBCP 2

Modified:
    tomcat/tc8.5.x/trunk/   (props changed)
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/   (props changed)
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSourceFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DataSourceConnectionFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DelegatingCallableStatement.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DelegatingDatabaseMetaData.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DelegatingPreparedStatement.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DelegatingResultSet.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DelegatingStatement.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DriverConnectionFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DriverManagerConnectionFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/LifetimeExceededException.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PStmtKey.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolableConnection.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolableConnectionFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolingConnection.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolingDataSource.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/PoolingDriver.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/SwallowedExceptionLogger.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/Utils.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/ConnectionImpl.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/PStmtKeyCPDS.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/PooledConnectionImpl.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/package-info.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/CPDSConnectionFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSource.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSourceFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/KeyedCPDSConnectionFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/PerUserPoolDataSource.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/PerUserPoolDataSourceFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/PoolKey.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/PooledConnectionAndInfo.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/SharedPoolDataSource.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/SharedPoolDataSourceFactory.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/datasources/UserPassKey.java
    tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml

Propchange: tomcat/tc8.5.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri May 13 18:49:32 2016
@@ -1 +1 @@
-/tomcat/trunk:1734785,1734799,1734845,1734928,1735041,1735044,1735480,1735577,1735597,1735599-1735600,1735615,1736145,1736162,1736209,1736280,1736297,1736299,1736489,1736646,1736703,1736836,1736849,1737104-1737105,1737112,1737117,1737119-1737120,1737155,1737157,1737192,1737280,1737339,1737632,1737664,1737715,1737748,1737785,1737834,1737860,1737959,1738005,1738007,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738261,1738589,1738623-1738625,1738643,1738816,1738850,1738855,1738946-1738948,1738953-1738954,1738979,1738982,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739191,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740495,1740508-1740509,1740520,1740535,1740707,1740803,1740810,1740969,1740980,1740991,1740997,1741015,1741033,1741036,1741058,1741060,1741080,1741147,1741159,1741164,1741173,1741181,1741190,1741197,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741501,1741677
 ,1741892,1741896,1741984,1742023,1742042,1742071,1742090,1742093,1742101,1742105,1742111,1742139,1742146,1742148,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742387,1742448,1742509-1742512,1742917,1742919,1742933,1742975-1742976,1742984,1742986,1743019,1743115,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696
+/tomcat/trunk:1734785,1734799,1734845,1734928,1735041,1735044,1735480,1735577,1735597,1735599-1735600,1735615,1736145,1736162,1736209,1736280,1736297,1736299,1736489,1736646,1736703,1736836,1736849,1737104-1737105,1737112,1737117,1737119-1737120,1737155,1737157,1737192,1737280,1737339,1737632,1737664,1737715,1737748,1737785,1737834,1737860,1737959,1738005,1738007,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738261,1738589,1738623-1738625,1738643,1738816,1738850,1738855,1738946-1738948,1738953-1738954,1738979,1738982,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739191,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740495,1740508-1740509,1740520,1740535,1740707,1740803,1740810,1740969,1740980,1740991,1740997,1741015,1741033,1741036,1741058,1741060,1741080,1741147,1741159,1741164,1741173,1741181,1741190,1741197,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741501,1741677
 ,1741892,1741896,1741984,1742023,1742042,1742071,1742090,1742093,1742101,1742105,1742111,1742139,1742146,1742148,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742387,1742448,1742509-1742512,1742917,1742919,1742933,1742975-1742976,1742984,1742986,1743019,1743115,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743697

Propchange: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri May 13 18:49:32 2016
@@ -1 +1,3 @@
-/commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2:1593516-1725730
+/commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2:1593516-1743696
+/commons/proper/dbcp/trunk/src/main/resources/org/apache/commons/dbcp2:1593516-1743696
+/tomcat/trunk/java/org/apache/tomcat/dbcp/dbcp2:1743697

Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java?rev=1743719&r1=1743718&r2=1743719&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java Fri May 13 18:49:32 2016
@@ -54,7 +54,7 @@ public class AbandonedTrace implements T
      *
      * @param parent AbandonedTrace parent object
      */
-    public AbandonedTrace(AbandonedTrace parent) {
+    public AbandonedTrace(final AbandonedTrace parent) {
         init(parent);
     }
 
@@ -63,7 +63,7 @@ public class AbandonedTrace implements T
      *
      * @param parent AbandonedTrace parent object
      */
-    private void init(AbandonedTrace parent) {
+    private void init(final AbandonedTrace parent) {
         if (parent != null) {
             parent.addTrace(this);
         }
@@ -92,7 +92,7 @@ public class AbandonedTrace implements T
      *
      * @param time time in ms
      */
-    protected void setLastUsed(long time) {
+    protected void setLastUsed(final long time) {
         lastUsed = time;
     }
 
@@ -102,7 +102,7 @@ public class AbandonedTrace implements T
      *
      * @param trace AbandonedTrace object to add
      */
-    protected void addTrace(AbandonedTrace trace) {
+    protected void addTrace(final AbandonedTrace trace) {
         synchronized (this.traceList) {
             this.traceList.add(new WeakReference<>(trace));
         }
@@ -125,15 +125,15 @@ public class AbandonedTrace implements T
      * @return List of objects
      */
     protected List<AbandonedTrace> getTrace() {
-        int size = traceList.size();
+        final int size = traceList.size();
         if (size == 0) {
             return Collections.emptyList();
         }
-        ArrayList<AbandonedTrace> result = new ArrayList<>(size);
+        final ArrayList<AbandonedTrace> result = new ArrayList<>(size);
         synchronized (this.traceList) {
-            Iterator<WeakReference<AbandonedTrace>> iter = traceList.iterator();
+            final Iterator<WeakReference<AbandonedTrace>> iter = traceList.iterator();
             while (iter.hasNext()) {
-                WeakReference<AbandonedTrace> ref = iter.next();
+                final WeakReference<AbandonedTrace> ref = iter.next();
                 if (ref.get() == null) {
                     // Clean-up since we are here anyway
                     iter.remove();
@@ -150,11 +150,11 @@ public class AbandonedTrace implements T
      *
      * @param trace AbandonedTrace object to remove
      */
-    protected void removeTrace(AbandonedTrace trace) {
+    protected void removeTrace(final AbandonedTrace trace) {
         synchronized(this.traceList) {
-            Iterator<WeakReference<AbandonedTrace>> iter = traceList.iterator();
+            final Iterator<WeakReference<AbandonedTrace>> iter = traceList.iterator();
             while (iter.hasNext()) {
-                WeakReference<AbandonedTrace> ref = iter.next();
+                final WeakReference<AbandonedTrace> ref = iter.next();
                 if (trace.equals(ref.get())) {
                     iter.remove();
                     break;

Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java?rev=1743719&r1=1743718&r2=1743719&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java Fri May 13 18:49:32 2016
@@ -59,7 +59,7 @@ import org.apache.tomcat.dbcp.pool2.impl
 /**
  * <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-dbcp</em> and <em>commons-pool</em> packages,
+ * combine the <em>commons-dbcp2</em> and <em>commons-pool2</em> packages,
  * but provides a "one stop shopping" solution for basic requirements.</p>
  *
  * @author Glenn L. Nielsen
@@ -80,8 +80,8 @@ public class BasicDataSource implements
             // but the following classes are not loaded and therefore require
             // explicit loading.
             if (Utils.IS_SECURITY_ENABLED) {
-                ClassLoader loader = BasicDataSource.class.getClassLoader();
-                String dbcpPackageName = BasicDataSource.class.getPackage().getName();
+                final ClassLoader loader = BasicDataSource.class.getClassLoader();
+                final String dbcpPackageName = BasicDataSource.class.getPackage().getName();
                 loader.loadClass(dbcpPackageName + ".BasicDataSource$PaGetConnection");
                 loader.loadClass(dbcpPackageName + ".DelegatingCallableStatement");
                 loader.loadClass(dbcpPackageName + ".DelegatingDatabaseMetaData");
@@ -92,11 +92,11 @@ public class BasicDataSource implements
                 loader.loadClass(dbcpPackageName + ".PoolingConnection$StatementType");
                 loader.loadClass(dbcpPackageName + ".PStmtKey");
 
-                String poolPackageName = PooledObject.class.getPackage().getName();
+                final String poolPackageName = PooledObject.class.getPackage().getName();
                 loader.loadClass(poolPackageName + ".impl.LinkedBlockingDeque$Node");
                 loader.loadClass(poolPackageName + ".impl.GenericKeyedObjectPool$ObjectDeque");
             }
-        } catch (ClassNotFoundException cnfe) {
+        } catch (final ClassNotFoundException cnfe) {
             throw new IllegalStateException("Unable to pre-load classes", cnfe);
         }
     }
@@ -129,7 +129,7 @@ public class BasicDataSource implements
      *
      * @param defaultAutoCommit default auto-commit value
      */
-    public void setDefaultAutoCommit(Boolean defaultAutoCommit) {
+    public void setDefaultAutoCommit(final Boolean defaultAutoCommit) {
         this.defaultAutoCommit = defaultAutoCommit;
     }
 
@@ -159,7 +159,7 @@ public class BasicDataSource implements
      *
      * @param defaultReadOnly default read-only value
      */
-    public void setDefaultReadOnly(Boolean defaultReadOnly) {
+    public void setDefaultReadOnly(final Boolean defaultReadOnly) {
         this.defaultReadOnly = defaultReadOnly;
     }
 
@@ -193,7 +193,7 @@ public class BasicDataSource implements
      * state
      * @see Connection#getTransactionIsolation
      */
-    public void setDefaultTransactionIsolation(int defaultTransactionIsolation) {
+    public void setDefaultTransactionIsolation(final int defaultTransactionIsolation) {
         this.defaultTransactionIsolation = defaultTransactionIsolation;
     }
 
@@ -217,7 +217,7 @@ public class BasicDataSource implements
      * default will be used.
      * @param defaultQueryTimeout The new default timeout
      */
-    public void setDefaultQueryTimeout(Integer defaultQueryTimeout) {
+    public void setDefaultQueryTimeout(final Integer defaultQueryTimeout) {
         this.defaultQueryTimeout = defaultQueryTimeout;
     }
 
@@ -247,7 +247,7 @@ public class BasicDataSource implements
      *
      * @param defaultCatalog the default catalog
      */
-    public void setDefaultCatalog(String defaultCatalog) {
+    public void setDefaultCatalog(final String defaultCatalog) {
         if (defaultCatalog != null && defaultCatalog.trim().length() > 0) {
             this.defaultCatalog = defaultCatalog;
         }
@@ -277,7 +277,7 @@ public class BasicDataSource implements
      *
      * @param cacheState    The new value for the state caching flag
      */
-    public void setCacheState(boolean cacheState) {
+    public void setCacheState(final boolean cacheState) {
         this.cacheState = cacheState;
     }
 
@@ -310,7 +310,7 @@ public class BasicDataSource implements
      *
      * @param driver The driver to use
      */
-    public synchronized void setDriver(Driver driver) {
+    public synchronized void setDriver(final Driver driver) {
         this.driver = driver;
     }
 
@@ -320,13 +320,13 @@ public class BasicDataSource implements
     private String driverClassName = null;
 
     /**
-     * Returns the jdbc driver class name.
+     * 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)}.
      *
-     * @return the jdbc driver class name
+     * @return the JDBC driver class name
      */
     @Override
     public synchronized String getDriverClassName() {
@@ -334,16 +334,16 @@ public class BasicDataSource implements
     }
 
     /**
-     * <p>Sets the jdbc driver class name.</p>
+     * <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,
      * setLoginTimeout, getLoginTimeout, getLogWriter.</code></p>
      *
-     * @param driverClassName the class name of the jdbc driver
+     * @param driverClassName the class name of the JDBC driver
      */
-    public synchronized void setDriverClassName(String driverClassName) {
+    public synchronized void setDriverClassName(final String driverClassName) {
         if (driverClassName != null && driverClassName.trim().length() > 0) {
             this.driverClassName = driverClassName;
         }
@@ -386,7 +386,7 @@ public class BasicDataSource implements
      *                          driver
      */
     public synchronized void setDriverClassLoader(
-            ClassLoader driverClassLoader) {
+            final ClassLoader driverClassLoader) {
         this.driverClassLoader = driverClassLoader;
     }
 
@@ -414,7 +414,7 @@ public class BasicDataSource implements
      *
      * @param lifo the new value for the LIFO property
      */
-    public synchronized void setLifo(boolean lifo) {
+    public synchronized void setLifo(final boolean lifo) {
         this.lifo = lifo;
         if (connectionPool != null) {
             connectionPool.setLifo(lifo);
@@ -447,7 +447,7 @@ public class BasicDataSource implements
      * @param maxTotal the new value for maxTotal
      * @see #getMaxTotal()
      */
-    public synchronized void setMaxTotal(int maxTotal) {
+    public synchronized void setMaxTotal(final int maxTotal) {
         this.maxTotal = maxTotal;
         if (connectionPool != null) {
             connectionPool.setMaxTotal(maxTotal);
@@ -486,7 +486,7 @@ public class BasicDataSource implements
      * @see #getMaxIdle()
      * @param maxIdle the new value for maxIdle
      */
-    public synchronized void setMaxIdle(int maxIdle) {
+    public synchronized void setMaxIdle(final int maxIdle) {
         this.maxIdle = maxIdle;
         if (connectionPool != null) {
             connectionPool.setMaxIdle(maxIdle);
@@ -525,7 +525,7 @@ public class BasicDataSource implements
      * @param minIdle the new value for minIdle
      * @see GenericObjectPool#setMinIdle(int)
      */
-    public synchronized void setMinIdle(int minIdle) {
+    public synchronized void setMinIdle(final int minIdle) {
        this.minIdle = minIdle;
        if (connectionPool != null) {
            connectionPool.setMinIdle(minIdle);
@@ -559,7 +559,7 @@ public class BasicDataSource implements
      * @param initialSize the number of connections created when the pool
      * is initialized
      */
-    public synchronized void setInitialSize(int initialSize) {
+    public synchronized void setInitialSize(final int initialSize) {
         this.initialSize = initialSize;
     }
 
@@ -590,7 +590,7 @@ public class BasicDataSource implements
      * @param maxWaitMillis the new value for MaxWaitMillis
      * @see #getMaxWaitMillis()
      */
-    public synchronized void setMaxWaitMillis(long maxWaitMillis) {
+    public synchronized void setMaxWaitMillis(final long maxWaitMillis) {
         this.maxWaitMillis = maxWaitMillis;
         if (connectionPool != null) {
             connectionPool.setMaxWaitMillis(maxWaitMillis);
@@ -623,7 +623,7 @@ public class BasicDataSource implements
      *
      * @param poolingStatements pooling on or off
      */
-    public synchronized void setPoolPreparedStatements(boolean poolingStatements) {
+    public synchronized void setPoolPreparedStatements(final boolean poolingStatements) {
         this.poolPreparedStatements = poolingStatements;
     }
 
@@ -662,7 +662,7 @@ public class BasicDataSource implements
      *
      * @param maxOpenStatements the new maximum number of prepared statements
      */
-    public synchronized void setMaxOpenPreparedStatements(int maxOpenStatements) {
+    public synchronized void setMaxOpenPreparedStatements(final int maxOpenStatements) {
         this.maxOpenPreparedStatements = maxOpenStatements;
     }
 
@@ -693,7 +693,7 @@ public class BasicDataSource implements
      *
      * @param testOnCreate new value for testOnCreate property
      */
-    public synchronized void setTestOnCreate(boolean testOnCreate) {
+    public synchronized void setTestOnCreate(final boolean testOnCreate) {
         this.testOnCreate = testOnCreate;
         if (connectionPool != null) {
             connectionPool.setTestOnCreate(testOnCreate);
@@ -727,7 +727,7 @@ public class BasicDataSource implements
      *
      * @param testOnBorrow new value for testOnBorrow property
      */
-    public synchronized void setTestOnBorrow(boolean testOnBorrow) {
+    public synchronized void setTestOnBorrow(final boolean testOnBorrow) {
         this.testOnBorrow = testOnBorrow;
         if (connectionPool != null) {
             connectionPool.setTestOnBorrow(testOnBorrow);
@@ -758,7 +758,7 @@ public class BasicDataSource implements
      *
      * @param testOnReturn new value for testOnReturn property
      */
-    public synchronized void setTestOnReturn(boolean testOnReturn) {
+    public synchronized void setTestOnReturn(final boolean testOnReturn) {
         this.testOnReturn = testOnReturn;
         if (connectionPool != null) {
             connectionPool.setTestOnReturn(testOnReturn);
@@ -791,7 +791,7 @@ public class BasicDataSource implements
      * @param timeBetweenEvictionRunsMillis the new time between evictor runs
      * @see #timeBetweenEvictionRunsMillis
      */
-    public synchronized void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) {
+    public synchronized void setTimeBetweenEvictionRunsMillis(final long timeBetweenEvictionRunsMillis) {
         this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
         if (connectionPool != null) {
             connectionPool.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
@@ -824,7 +824,7 @@ public class BasicDataSource implements
      * value
      * @see #numTestsPerEvictionRun
      */
-    public synchronized void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) {
+    public synchronized void setNumTestsPerEvictionRun(final int numTestsPerEvictionRun) {
         this.numTestsPerEvictionRun = numTestsPerEvictionRun;
         if (connectionPool != null) {
             connectionPool.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
@@ -856,7 +856,7 @@ public class BasicDataSource implements
      * may sit idle in the pool
      * @see #minEvictableIdleTimeMillis
      */
-    public synchronized void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) {
+    public synchronized void setMinEvictableIdleTimeMillis(final long minEvictableIdleTimeMillis) {
         this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
         if (connectionPool != null) {
             connectionPool.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
@@ -883,7 +883,7 @@ public class BasicDataSource implements
      * assuming there are minIdle idle connections in the pool.
      * @see #getSoftMinEvictableIdleTimeMillis
      */
-    public synchronized void setSoftMinEvictableIdleTimeMillis(long softMinEvictableIdleTimeMillis) {
+    public synchronized void setSoftMinEvictableIdleTimeMillis(final long softMinEvictableIdleTimeMillis) {
         this.softMinEvictableIdleTimeMillis = softMinEvictableIdleTimeMillis;
         if (connectionPool != null) {
             connectionPool.setSoftMinEvictableIdleTimeMillis(softMinEvictableIdleTimeMillis);
@@ -896,8 +896,8 @@ public class BasicDataSource implements
      * the extra condition that at least "minIdle" connections remain in the
      * pool.</p>
      *
-     * <p>When {@link #getMinEvictableIdleTimeMillis() miniEvictableIdleTimeMillis}
-     * is set to a positive value, miniEvictableIdleTimeMillis is examined
+     * <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
@@ -932,7 +932,7 @@ public class BasicDataSource implements
      *                                  EvictionPolicy implementation
      */
     public synchronized void setEvictionPolicyClassName(
-            String evictionPolicyClassName) {
+            final String evictionPolicyClassName) {
         if (connectionPool != null) {
             connectionPool.setEvictionPolicyClassName(evictionPolicyClassName);
         }
@@ -964,7 +964,7 @@ public class BasicDataSource implements
      *
      * @param testWhileIdle new value for testWhileIdle property
      */
-    public synchronized void setTestWhileIdle(boolean testWhileIdle) {
+    public synchronized void setTestWhileIdle(final boolean testWhileIdle) {
         this.testWhileIdle = testWhileIdle;
         if (connectionPool != null) {
             connectionPool.setTestWhileIdle(testWhileIdle);
@@ -980,7 +980,7 @@ public class BasicDataSource implements
     @Override
     public int getNumActive() {
         // Copy reference to avoid NPE if close happens after null check
-        GenericObjectPool<PoolableConnection> pool = connectionPool;
+        final GenericObjectPool<PoolableConnection> pool = connectionPool;
         if (pool != null) {
             return pool.getNumActive();
         }
@@ -997,7 +997,7 @@ public class BasicDataSource implements
     @Override
     public int getNumIdle() {
         // Copy reference to avoid NPE if close happens after null check
-        GenericObjectPool<PoolableConnection> pool = connectionPool;
+        final GenericObjectPool<PoolableConnection> pool = connectionPool;
         if (pool != null) {
             return pool.getNumIdle();
         }
@@ -1030,7 +1030,7 @@ public class BasicDataSource implements
      *
      * @param password new value for the password
      */
-    public void setPassword(String password) {
+    public void setPassword(final String password) {
         this.password = password;
     }
 
@@ -1061,7 +1061,7 @@ public class BasicDataSource implements
      *
      * @param url the new value for the JDBC connection url
      */
-    public synchronized void setUrl(String url) {
+    public synchronized void setUrl(final String url) {
         this.url = url;
     }
 
@@ -1092,7 +1092,7 @@ public class BasicDataSource implements
      *
      * @param username the new value for the JDBC connection username
      */
-    public void setUsername(String username) {
+    public void setUsername(final String username) {
         this.username = username;
     }
 
@@ -1127,7 +1127,7 @@ public class BasicDataSource implements
      *
      * @param validationQuery the new value for the validation query
      */
-    public void setValidationQuery(String validationQuery) {
+    public void setValidationQuery(final String validationQuery) {
         if (validationQuery != null && validationQuery.trim().length() > 0) {
             this.validationQuery = validationQuery;
         } else {
@@ -1163,7 +1163,7 @@ public class BasicDataSource implements
      *
      * @param timeout new validation query timeout value in seconds
      */
-    public void setValidationQueryTimeout(int timeout) {
+    public void setValidationQueryTimeout(final int timeout) {
         this.validationQueryTimeout = timeout;
     }
 
@@ -1185,7 +1185,7 @@ public class BasicDataSource implements
      * @return initialization SQL statements
      */
     public List<String> getConnectionInitSqls() {
-        List<String> result = connectionInitSqls;
+        final List<String> result = connectionInitSqls;
         if (result == null) {
             return Collections.emptyList();
         }
@@ -1198,7 +1198,7 @@ public class BasicDataSource implements
      */
     @Override
     public String[] getConnectionInitSqlsAsArray() {
-        Collection<String> result = getConnectionInitSqls();
+        final Collection<String> result = getConnectionInitSqls();
         return result.toArray(new String[result.size()]);
     }
 
@@ -1214,10 +1214,10 @@ public class BasicDataSource implements
      * @param connectionInitSqls Collection of SQL statements to execute
      * on connection creation
      */
-    public void setConnectionInitSqls(Collection<String> connectionInitSqls) {
+    public void setConnectionInitSqls(final Collection<String> connectionInitSqls) {
         if (connectionInitSqls != null && connectionInitSqls.size() > 0) {
             ArrayList<String> newVal = null;
-            for (String s : connectionInitSqls) {
+            for (final String s : connectionInitSqls) {
             if (s != null && s.trim().length() > 0) {
                     if (newVal == null) {
                         newVal = new ArrayList<>();
@@ -1260,7 +1260,7 @@ public class BasicDataSource implements
      *
      * @param allow Access to the underlying connection is granted when true.
      */
-    public synchronized void setAccessToUnderlyingConnectionAllowed(boolean allow) {
+    public synchronized void setAccessToUnderlyingConnectionAllowed(final boolean allow) {
         this.accessToUnderlyingConnectionAllowed = allow;
     }
 
@@ -1300,7 +1300,7 @@ public class BasicDataSource implements
      * setLoginTimeout, getLoginTimeout, getLogWriter.</code></p>
      * @param maxConnLifetimeMillis The maximum connection lifetime
      */
-    public void setMaxConnLifetimeMillis(long maxConnLifetimeMillis) {
+    public void setMaxConnLifetimeMillis(final long maxConnLifetimeMillis) {
         this.maxConnLifetimeMillis = maxConnLifetimeMillis;
     }
 
@@ -1311,7 +1311,7 @@ public class BasicDataSource implements
      * to false to suppress log messages when connections expire.
      * @param logExpiredConnections <code>true</code> to log expired connections
      */
-    public void setLogExpiredConnections(boolean logExpiredConnections) {
+    public void setLogExpiredConnections(final boolean logExpiredConnections) {
         this.logExpiredConnections = logExpiredConnections;
     }
 
@@ -1333,7 +1333,7 @@ public class BasicDataSource implements
      * name will be used in preference to any specified by the other component.
      * @param jmxName The JMX name
      */
-    public void setJmxName(String jmxName) {
+    public void setJmxName(final String jmxName) {
         this.jmxName = jmxName;
     }
 
@@ -1360,7 +1360,7 @@ public class BasicDataSource implements
      * is returned. It is <code>true</code> by default.
      * @param enableAutoCommitOnReturn The new value
      */
-    public void setEnableAutoCommitOnReturn(boolean enableAutoCommitOnReturn) {
+    public void setEnableAutoCommitOnReturn(final boolean enableAutoCommitOnReturn) {
         this.enableAutoCommitOnReturn = enableAutoCommitOnReturn;
     }
 
@@ -1382,7 +1382,7 @@ public class BasicDataSource implements
      * is not read only.
      * @param rollbackOnReturn The new value
      */
-    public void setRollbackOnReturn(boolean rollbackOnReturn) {
+    public void setRollbackOnReturn(final boolean rollbackOnReturn) {
         this.rollbackOnReturn = rollbackOnReturn;
     }
 
@@ -1395,7 +1395,7 @@ public class BasicDataSource implements
      * @since 2.1
      */
     public Set<String> getDisconnectionSqlCodes() {
-        Set<String> result = disconnectionSqlCodes;
+        final Set<String> result = disconnectionSqlCodes;
         if (result == null) {
             return Collections.emptySet();
         }
@@ -1410,7 +1410,7 @@ public class BasicDataSource implements
      */
     @Override
     public String[] getDisconnectionSqlCodesAsArray() {
-        Collection<String> result = getDisconnectionSqlCodes();
+        final Collection<String> result = getDisconnectionSqlCodes();
         return result.toArray(new String[result.size()]);
     }
 
@@ -1436,10 +1436,10 @@ public class BasicDataSource implements
      * @param disconnectionSqlCodes SQL_STATE codes considered to signal fatal conditions
      * @since 2.1
      */
-    public void setDisconnectionSqlCodes(Collection<String> disconnectionSqlCodes) {
+    public void setDisconnectionSqlCodes(final Collection<String> disconnectionSqlCodes) {
         if (disconnectionSqlCodes != null && disconnectionSqlCodes.size() > 0) {
             HashSet<String> newVal = null;
-            for (String s : disconnectionSqlCodes) {
+            for (final String s : disconnectionSqlCodes) {
             if (s != null && s.trim().length() > 0) {
                     if (newVal == null) {
                         newVal = new HashSet<>();
@@ -1475,7 +1475,7 @@ public class BasicDataSource implements
      * fast fail validation
      * @since 2.1
      */
-    public void setFastFailValidation(boolean fastFailValidation) {
+    public void setFastFailValidation(final boolean fastFailValidation) {
         this.fastFailValidation = fastFailValidation;
     }
 
@@ -1529,11 +1529,11 @@ public class BasicDataSource implements
     @Override
     public Connection getConnection() throws SQLException {
         if (Utils.IS_SECURITY_ENABLED) {
-            PrivilegedExceptionAction<Connection> action = new PaGetConnection();
+            final PrivilegedExceptionAction<Connection> action = new PaGetConnection();
             try {
                 return AccessController.doPrivileged(action);
-            } catch (PrivilegedActionException e) {
-                Throwable cause = e.getCause();
+            } catch (final PrivilegedActionException e) {
+                final Throwable cause = e.getCause();
                 if (cause instanceof SQLException) {
                     throw (SQLException) cause;
                 }
@@ -1556,7 +1556,7 @@ public class BasicDataSource implements
      * @return nothing - always throws UnsupportedOperationException
      */
     @Override
-    public Connection getConnection(String user, String pass) throws SQLException {
+    public Connection getConnection(final String user, final String pass) throws SQLException {
         // This method isn't supported by the PoolingDataSource returned by
         // the createDataSource
         throw new UnsupportedOperationException("Not supported by BasicDataSource");
@@ -1614,7 +1614,7 @@ public class BasicDataSource implements
      * @throws SQLException if a database access error occurs
      */
     @Override
-    public void setLoginTimeout(int loginTimeout) throws SQLException {
+    public void setLoginTimeout(final int loginTimeout) throws SQLException {
         // This method isn't supported by the PoolingDataSource returned by
         // the createDataSource
         throw new UnsupportedOperationException("Not supported by BasicDataSource");
@@ -1631,7 +1631,7 @@ public class BasicDataSource implements
      * @throws SQLException if a database access error occurs
      */
     @Override
-    public void setLogWriter(PrintWriter logWriter) throws SQLException {
+    public void setLogWriter(final PrintWriter logWriter) throws SQLException {
         createDataSource().setLogWriter(logWriter);
         this.logWriter = logWriter;
     }
@@ -1671,7 +1671,7 @@ public class BasicDataSource implements
      * @see #getRemoveAbandonedOnMaintenance()
      */
     public void setRemoveAbandonedOnMaintenance(
-            boolean removeAbandonedOnMaintenance) {
+            final boolean removeAbandonedOnMaintenance) {
         if (abandonedConfig == null) {
             abandonedConfig = new AbandonedConfig();
         }
@@ -1704,7 +1704,7 @@ public class BasicDataSource implements
      *                                removed when connections are borrowed from the pool.
      * @see #getRemoveAbandonedOnBorrow()
      */
-    public void setRemoveAbandonedOnBorrow(boolean removeAbandonedOnBorrow) {
+    public void setRemoveAbandonedOnBorrow(final boolean removeAbandonedOnBorrow) {
         if (abandonedConfig == null) {
             abandonedConfig = new AbandonedConfig();
         }
@@ -1749,7 +1749,7 @@ public class BasicDataSource implements
      * @see #getRemoveAbandonedOnBorrow()
      * @see #getRemoveAbandonedOnMaintenance()
      */
-    public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) {
+    public void setRemoveAbandonedTimeout(final int removeAbandonedTimeout) {
         if (abandonedConfig == null) {
             abandonedConfig = new AbandonedConfig();
         }
@@ -1777,7 +1777,7 @@ public class BasicDataSource implements
     /**
      * @param logAbandoned new logAbandoned property value
      */
-    public void setLogAbandoned(boolean logAbandoned) {
+    public void setLogAbandoned(final boolean logAbandoned) {
         if (abandonedConfig == null) {
             abandonedConfig = new AbandonedConfig();
         }
@@ -1802,7 +1802,7 @@ public class BasicDataSource implements
      *
      * @param logWriter The new log writer
      */
-    public void setAbandonedLogWriter(PrintWriter logWriter) {
+    public void setAbandonedLogWriter(final PrintWriter logWriter) {
         if (abandonedConfig == null) {
             abandonedConfig = new AbandonedConfig();
         }
@@ -1835,7 +1835,7 @@ public class BasicDataSource implements
      *                              the recording of a stack trace on every use
      *                              of a pooled connection
      */
-    public void setAbandonedUsageTracking(boolean usageTracking) {
+    public void setAbandonedUsageTracking(final boolean usageTracking) {
         if (abandonedConfig == null) {
             abandonedConfig = new AbandonedConfig();
         }
@@ -1854,7 +1854,7 @@ public class BasicDataSource implements
      * @param name Name of the custom connection property
      * @param value Value of the custom connection property
      */
-    public void addConnectionProperty(String name, String value) {
+    public void addConnectionProperty(final String name, final String value) {
         connectionProperties.put(name, value);
     }
 
@@ -1864,7 +1864,7 @@ public class BasicDataSource implements
      * @param name Name of the custom connection property to remove
      * @see #addConnectionProperty(String, String)
      */
-    public void removeConnectionProperty(String name) {
+    public void removeConnectionProperty(final String name) {
         connectionProperties.remove(name);
     }
 
@@ -1879,19 +1879,19 @@ public class BasicDataSource implements
      * @param connectionProperties the connection properties used to
      * create new connections
      */
-    public void setConnectionProperties(String connectionProperties) {
+    public void setConnectionProperties(final String connectionProperties) {
         if (connectionProperties == null) {
             throw new NullPointerException("connectionProperties is null");
         }
 
-        String[] entries = connectionProperties.split(";");
-        Properties properties = new Properties();
-        for (String entry : entries) {
+        final String[] entries = connectionProperties.split(";");
+        final Properties properties = new Properties();
+        for (final String entry : entries) {
             if (entry.length() > 0) {
-                int index = entry.indexOf('=');
+                final int index = entry.indexOf('=');
                 if (index > 0) {
-                    String name = entry.substring(0, index);
-                    String value = entry.substring(index + 1);
+                    final String name = entry.substring(0, index);
+                    final String value = entry.substring(index + 1);
                     properties.setProperty(name, value);
                 } else {
                     // no value is empty string which is how java.util.Properties works
@@ -1923,26 +1923,26 @@ public class BasicDataSource implements
     @Override
     public synchronized void close() throws SQLException {
         if (registeredJmxName != null) {
-            MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+            final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
             try {
                 mbs.unregisterMBean(registeredJmxName);
-            } catch (JMException e) {
+            } catch (final JMException e) {
                 log.warn("Failed to unregister the JMX name: " + registeredJmxName, e);
             } finally {
                 registeredJmxName = null;
             }
         }
         closed = true;
-        GenericObjectPool<?> oldpool = connectionPool;
+        final GenericObjectPool<?> oldpool = connectionPool;
         connectionPool = null;
         dataSource = null;
         try {
             if (oldpool != null) {
                 oldpool.close();
             }
-        } catch(RuntimeException e) {
+        } catch(final RuntimeException e) {
             throw e;
-        } catch(Exception e) {
+        } catch(final Exception e) {
             throw new SQLException(Utils.getMessage("pool.close.fail"), e);
         }
     }
@@ -1957,12 +1957,12 @@ public class BasicDataSource implements
     }
 
     @Override
-    public boolean isWrapperFor(Class<?> iface) throws SQLException {
+    public boolean isWrapperFor(final Class<?> iface) throws SQLException {
         return false;
     }
 
     @Override
-    public <T> T unwrap(Class<T> iface) throws SQLException {
+    public <T> T unwrap(final Class<T> iface) throws SQLException {
         throw new SQLException("BasicDataSource is not a wrapper.");
     }
 
@@ -1979,7 +1979,7 @@ public class BasicDataSource implements
      *             if invalidating the connection failed.
      * @since 2.1
      */
-    public void invalidateConnection(Connection connection) throws IllegalStateException {
+    public void invalidateConnection(final Connection connection) throws IllegalStateException {
         if (connection == null) {
             return;
         }
@@ -1994,13 +1994,13 @@ public class BasicDataSource implements
                 throw new IllegalStateException(
                         "Cannot invalidate connection: Connection is not a poolable connection.");
             }
-        } catch (SQLException e) {
+        } catch (final SQLException e) {
             throw new IllegalStateException("Cannot invalidate connection: Unwrapping poolable connection failed.", e);
         }
 
         try {
             connectionPool.invalidateObject(poolableConnection);
-        } catch (Exception e) {
+        } catch (final Exception e) {
             throw new IllegalStateException("Invalidating connection threw unexpected exception", e);
         }
     }
@@ -2034,7 +2034,7 @@ public class BasicDataSource implements
             jmxRegister();
 
             // create factory which returns raw physical connections
-            ConnectionFactory driverConnectionFactory = createConnectionFactory();
+            final ConnectionFactory driverConnectionFactory = createConnectionFactory();
 
             // Set up the poolable connection factory
             boolean success = false;
@@ -2047,11 +2047,11 @@ public class BasicDataSource implements
                 poolableConnectionFactory.setMaxOpenPrepatedStatements(
                         maxOpenPreparedStatements);
                 success = true;
-            } catch (SQLException se) {
+            } catch (final SQLException se) {
                 throw se;
-            } catch (RuntimeException rte) {
+            } catch (final RuntimeException rte) {
                 throw rte;
-            } catch (Exception ex) {
+            } catch (final Exception ex) {
                 throw new SQLException("Error creating connection factory", ex);
             }
 
@@ -2067,11 +2067,11 @@ public class BasicDataSource implements
                 newDataSource = createDataSourceInstance();
                 newDataSource.setLogWriter(logWriter);
                 success = true;
-            } catch (SQLException se) {
+            } catch (final SQLException se) {
                 throw se;
-            } catch (RuntimeException rte) {
+            } catch (final RuntimeException rte) {
                 throw rte;
-            } catch (Exception ex) {
+            } catch (final Exception ex) {
                 throw new SQLException("Error creating datasource", ex);
             } finally {
                 if (!success) {
@@ -2084,7 +2084,7 @@ public class BasicDataSource implements
                 for (int i = 0 ; i < initialSize ; i++) {
                     connectionPool.addObject();
                 }
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 closeConnectionPool();
                 throw new SQLException("Error preloading the connection pool", e);
             }
@@ -2132,13 +2132,13 @@ public class BasicDataSource implements
                             driverFromCCL = Class.forName(
                                     driverClassName, true, driverClassLoader);
                         }
-                    } catch (ClassNotFoundException cnfe) {
+                    } catch (final ClassNotFoundException cnfe) {
                         driverFromCCL = Thread.currentThread(
                                 ).getContextClassLoader().loadClass(
                                         driverClassName);
                     }
-                } catch (Exception t) {
-                    String message = "Cannot load JDBC driver class '" +
+                } catch (final Exception t) {
+                    final String message = "Cannot load JDBC driver class '" +
                         driverClassName + "'";
                     logWriter.println(message);
                     t.printStackTrace(logWriter);
@@ -2158,8 +2158,8 @@ public class BasicDataSource implements
                         throw new SQLException("No suitable driver", "08001");
                     }
                 }
-            } catch (Exception t) {
-                String message = "Cannot create JDBC driver of class '" +
+            } catch (final Exception t) {
+                final String message = "Cannot create JDBC driver of class '" +
                     (driverClassName != null ? driverClassName : "") +
                     "' for connect URL '" + url + "'";
                 logWriter.println(message);
@@ -2169,21 +2169,21 @@ public class BasicDataSource implements
         }
 
         // Set up the driver connection factory we will use
-        String user = username;
+        final String user = username;
         if (user != null) {
             connectionProperties.put("user", user);
         } else {
             log("DBCP DataSource configured without a 'username'");
         }
 
-        String pwd = password;
+        final String pwd = password;
         if (pwd != null) {
             connectionProperties.put("password", pwd);
         } else {
             log("DBCP DataSource configured without a 'password'");
         }
 
-        ConnectionFactory driverConnectionFactory =
+        final ConnectionFactory driverConnectionFactory =
                 new DriverConnectionFactory(driverToUse, url, connectionProperties);
         return driverConnectionFactory;
     }
@@ -2199,9 +2199,9 @@ public class BasicDataSource implements
      * to be started.
      * @param factory The connection factory
      */
-    protected void createConnectionPool(PoolableConnectionFactory factory) {
+    protected void createConnectionPool(final PoolableConnectionFactory factory) {
         // Create an object pool to contain our active connections
-        GenericObjectPoolConfig config = new GenericObjectPoolConfig();
+        final GenericObjectPoolConfig config = new GenericObjectPoolConfig();
         updateJmxName(config);
         config.setJmxEnabled(registeredJmxName != null);  // Disable JMX on the underlying pool if the DS is not registered.
         GenericObjectPool<PoolableConnection> gop;
@@ -2222,6 +2222,7 @@ public class BasicDataSource implements
         gop.setTestOnReturn(testOnReturn);
         gop.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
         gop.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+        gop.setSoftMinEvictableIdleTimeMillis(softMinEvictableIdleTimeMillis);
         gop.setTestWhileIdle(testWhileIdle);
         gop.setLifo(lifo);
         gop.setSwallowedExceptionListener(new SwallowedExceptionLogger(log, logExpiredConnections));
@@ -2234,13 +2235,13 @@ public class BasicDataSource implements
      * Closes the connection pool, silently swallowing any exception that occurs.
      */
     private void closeConnectionPool() {
-        GenericObjectPool<?> oldpool = connectionPool;
+        final GenericObjectPool<?> oldpool = connectionPool;
         connectionPool = null;
         try {
             if (oldpool != null) {
                 oldpool.close();
             }
-        } catch(Exception e) {
+        } catch(final Exception e) {
             /* Ignore */
         }
     }
@@ -2261,7 +2262,7 @@ public class BasicDataSource implements
      * @throws SQLException if unable to create a datasource instance
      */
     protected DataSource createDataSourceInstance() throws SQLException {
-        PoolingDataSource<PoolableConnection> pds = new PoolingDataSource<>(connectionPool);
+        final PoolingDataSource<PoolableConnection> pds = new PoolingDataSource<>(connectionPool);
         pds.setAccessToUnderlyingConnectionAllowed(isAccessToUnderlyingConnectionAllowed());
         return pds;
     }
@@ -2275,7 +2276,7 @@ public class BasicDataSource implements
      * @throws SQLException if an error occurs creating the PoolableConnectionFactory
      */
     protected PoolableConnectionFactory createPoolableConnectionFactory(
-            ConnectionFactory driverConnectionFactory) throws SQLException {
+            final ConnectionFactory driverConnectionFactory) throws SQLException {
         PoolableConnectionFactory connectionFactory = null;
         try {
             connectionFactory = new PoolableConnectionFactory(driverConnectionFactory, registeredJmxName);
@@ -2296,16 +2297,16 @@ public class BasicDataSource implements
             connectionFactory.setFastFailValidation(fastFailValidation);
             connectionFactory.setDisconnectionSqlCodes(disconnectionSqlCodes);
             validateConnectionFactory(connectionFactory);
-        } catch (RuntimeException e) {
+        } catch (final RuntimeException e) {
             throw e;
-        } catch (Exception e) {
+        } catch (final Exception e) {
             throw new SQLException("Cannot create PoolableConnectionFactory (" + e.getMessage() + ")", e);
         }
         return connectionFactory;
     }
 
     protected static void validateConnectionFactory(
-            PoolableConnectionFactory connectionFactory) throws Exception {
+            final PoolableConnectionFactory connectionFactory) throws Exception {
         PoolableConnection conn = null;
         PooledObject<PoolableConnection> p = null;
         try {
@@ -2322,7 +2323,7 @@ public class BasicDataSource implements
         }
     }
 
-    protected void log(String message) {
+    protected void log(final String message) {
         if (logWriter != null) {
             logWriter.println(message);
         }
@@ -2339,20 +2340,20 @@ public class BasicDataSource implements
             return;
         }
         // Return immediately if no JMX name has been specified
-        String requestedName = getJmxName();
+        final String requestedName = getJmxName();
         if (requestedName == null) {
             return;
         }
         ObjectName oname;
         try {
              oname = new ObjectName(requestedName);
-        } catch (MalformedObjectNameException e) {
+        } catch (final MalformedObjectNameException e) {
             log.warn("The requested JMX name [" + requestedName +
                     "] was not valid and will be ignored.");
             return;
         }
 
-        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+        final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
         try {
             mbs.registerMBean(this, oname);
         } catch (InstanceAlreadyExistsException | MBeanRegistrationException
@@ -2362,12 +2363,12 @@ public class BasicDataSource implements
     }
 
     @Override
-    public ObjectName preRegister(MBeanServer server, ObjectName name) {
-        String requestedName = getJmxName();
+    public ObjectName preRegister(final MBeanServer server, final ObjectName name) {
+        final String requestedName = getJmxName();
         if (requestedName != null) {
             try {
                 registeredJmxName = new ObjectName(requestedName);
-            } catch (MalformedObjectNameException e) {
+            } catch (final MalformedObjectNameException e) {
                 log.warn("The requested JMX name [" + requestedName +
                         "] was not valid and will be ignored.");
             }
@@ -2379,7 +2380,7 @@ public class BasicDataSource implements
     }
 
     @Override
-    public void postRegister(Boolean registrationDone) {
+    public void postRegister(final Boolean registrationDone) {
         // NO-OP
     }
 
@@ -2393,11 +2394,11 @@ public class BasicDataSource implements
         // NO-OP
     }
 
-    private void updateJmxName(GenericObjectPoolConfig config) {
+    private void updateJmxName(final GenericObjectPoolConfig config) {
         if (registeredJmxName == null) {
             return;
         }
-        StringBuilder base = new StringBuilder(registeredJmxName.toString());
+        final StringBuilder base = new StringBuilder(registeredJmxName.toString());
         base.append(Constants.JMX_CONNECTION_POOL_BASE_EXT);
         config.setJmxNameBase(base.toString());
         config.setJmxNamePrefix(Constants.JMX_CONNECTION_POOL_PREFIX);

Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSourceFactory.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSourceFactory.java?rev=1743719&r1=1743718&r2=1743719&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSourceFactory.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSourceFactory.java Fri May 13 18:49:32 2016
@@ -239,7 +239,7 @@ public class BasicDataSourceFactory impl
      * @exception Exception if an exception occurs creating the instance
      */
     @Override
-    public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment)
+    public Object getObjectInstance(final Object obj, final Name name, final Context nameCtx, final Hashtable<?,?> environment)
         throws Exception {
 
         // We only know how to deal with <code>javax.naming.Reference</code>s
@@ -247,7 +247,7 @@ public class BasicDataSourceFactory impl
         if (obj == null || !(obj instanceof Reference)) {
             return null;
         }
-        Reference ref = (Reference) obj;
+        final Reference ref = (Reference) obj;
         if (!"javax.sql.DataSource".equals(ref.getClassName())) {
             return null;
         }
@@ -256,18 +256,18 @@ public class BasicDataSourceFactory impl
         final List<String> warnings = new ArrayList<>();
         final List<String> infoMessages = new ArrayList<>();
         validatePropertyNames(ref, name, warnings, infoMessages);
-        for (String warning : warnings) {
+        for (final String warning : warnings) {
             log.warn(warning);
         }
-        for (String infoMessage : infoMessages) {
+        for (final String infoMessage : infoMessages) {
             log.info(infoMessage);
         }
 
-        Properties properties = new Properties();
-        for (String propertyName : ALL_PROPERTIES) {
-            RefAddr ra = ref.get(propertyName);
+        final Properties properties = new Properties();
+        for (final String propertyName : ALL_PROPERTIES) {
+            final RefAddr ra = ref.get(propertyName);
             if (ra != null) {
-                String propertyValue = ra.getContent().toString();
+                final String propertyValue = ra.getContent().toString();
                 properties.setProperty(propertyName, propertyValue);
             }
         }
@@ -284,12 +284,12 @@ public class BasicDataSourceFactory impl
      * @param warnings container for warning messages
      * @param infoMessages container for info messages
      */
-    private void validatePropertyNames(Reference ref, Name name, List<String> warnings,
-                                      List<String> infoMessages) {
+    private void validatePropertyNames(final Reference ref, final Name name, final List<String> warnings,
+                                      final List<String> infoMessages) {
         final List<String> allPropsAsList = Arrays.asList(ALL_PROPERTIES);
         final String nameString = name != null ? "Name = " + name.toString() + " " : "";
         if (NUPROP_WARNTEXT!=null && !NUPROP_WARNTEXT.keySet().isEmpty()) {
-            for (String propertyName : NUPROP_WARNTEXT.keySet()) {
+            for (final String propertyName : NUPROP_WARNTEXT.keySet()) {
                 final RefAddr ra = ref.get(propertyName);
                 if (ra != null && !allPropsAsList.contains(ra.getType())) {
                     final StringBuilder stringBuilder = new StringBuilder(nameString);
@@ -335,8 +335,8 @@ public class BasicDataSourceFactory impl
      * @return the data source instance
      * @throws Exception if an error occurs creating the data source
      */
-    public static BasicDataSource createDataSource(Properties properties) throws Exception {
-        BasicDataSource dataSource = new BasicDataSource();
+    public static BasicDataSource createDataSource(final Properties properties) throws Exception {
+        final BasicDataSource dataSource = new BasicDataSource();
         String value = null;
 
         value = properties.getProperty(PROP_DEFAULTAUTOCOMMIT);
@@ -370,7 +370,7 @@ public class BasicDataSourceFactory impl
             else {
                 try {
                     level = Integer.parseInt(value);
-                } catch (NumberFormatException e) {
+                } catch (final NumberFormatException e) {
                     System.err.println("Could not parse defaultTransactionIsolation: " + value);
                     System.err.println("WARNING: defaultTransactionIsolation not set");
                     System.err.println("using default value of database driver");
@@ -542,10 +542,10 @@ public class BasicDataSourceFactory impl
 
         value = properties.getProperty(PROP_CONNECTIONPROPERTIES);
         if (value != null) {
-          Properties p = getProperties(value);
-          Enumeration<?> e = p.propertyNames();
+          final Properties p = getProperties(value);
+          final Enumeration<?> e = p.propertyNames();
           while (e.hasMoreElements()) {
-            String propertyName = (String) e.nextElement();
+            final String propertyName = (String) e.nextElement();
             dataSource.addConnectionProperty(propertyName, p.getProperty(propertyName));
           }
         }
@@ -606,8 +606,8 @@ public class BasicDataSourceFactory impl
      * @return Properties
      * @throws Exception
      */
-    private static Properties getProperties(String propText) throws Exception {
-      Properties p = new Properties();
+    private static Properties getProperties(final String propText) throws Exception {
+      final Properties p = new Properties();
       if (propText != null) {
         p.load(new ByteArrayInputStream(
                 propText.replace(';', '\n').getBytes(StandardCharsets.ISO_8859_1)));
@@ -621,9 +621,9 @@ public class BasicDataSourceFactory impl
      * @param delimiter character used to separate values in the list
      * @return String Collection of values
      */
-    private static Collection<String> parseList(String value, char delimiter) {
-        StringTokenizer tokenizer = new StringTokenizer(value, Character.toString(delimiter));
-        Collection<String> tokens = new ArrayList<>(tokenizer.countTokens());
+    private static Collection<String> parseList(final String value, final char delimiter) {
+        final StringTokenizer tokenizer = new StringTokenizer(value, Character.toString(delimiter));
+        final Collection<String> tokens = new ArrayList<>(tokenizer.countTokens());
         while (tokenizer.hasMoreTokens()) {
             tokens.add(tokenizer.nextToken());
         }

Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DataSourceConnectionFactory.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DataSourceConnectionFactory.java?rev=1743719&r1=1743718&r2=1743719&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DataSourceConnectionFactory.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/dbcp/dbcp2/DataSourceConnectionFactory.java Fri May 13 18:49:32 2016
@@ -28,11 +28,11 @@ import javax.sql.DataSource;
  * @since 2.0
  */
 public class DataSourceConnectionFactory implements ConnectionFactory {
-    public DataSourceConnectionFactory(DataSource source) {
+    public DataSourceConnectionFactory(final DataSource source) {
         this(source,null,null);
     }
 
-    public DataSourceConnectionFactory(DataSource source, String uname, String passwd) {
+    public DataSourceConnectionFactory(final DataSource source, final String uname, final String passwd) {
         _source = source;
         _uname = uname;
         _passwd = passwd;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org