Author: fhanik
Date: Tue Mar 20 17:32:47 2012
New Revision: 1303031

URL: http://svn.apache.org/viewvc?rev=1303031&view=rev
Log:
https://issues.apache.org/bugzilla/show_bug.cgi?id=50860 add option to log 
validation errors

Modified:
    
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
    
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java
    
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
    
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
    
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java

Modified: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java?rev=1303031&r1=1303030&r2=1303031&view=diff
==============================================================================
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
 Tue Mar 20 17:32:47 2012
@@ -1252,4 +1252,20 @@ public class DataSourceProxy implements 
         return getPoolProperties().getUseDisposableConnectionFacade();
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setLogValidationErrors(boolean logValidationErrors) {
+        getPoolProperties().setLogValidationErrors(logValidationErrors);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean getLogValidationErrors() {
+        return getPoolProperties().getLogValidationErrors();
+    }
+
 }

Modified: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java?rev=1303031&r1=1303030&r2=1303031&view=diff
==============================================================================
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java
 Tue Mar 20 17:32:47 2012
@@ -835,4 +835,16 @@ public interface PoolConfiguration {
      */
     public boolean getUseDisposableConnectionFacade();
 
+    /**
+     * Set to true if you wish that errors from validation should be logged as 
error messages.
+     * @param logValidationErrors set to true to log validation errors
+     */
+    public void setLogValidationErrors(boolean logValidationErrors);
+
+    /**
+     * Returns true if errors that happen during validation will be logged
+     * @return true if errors that happen during validation will be logged
+     */
+    public boolean getLogValidationErrors();
+
 }

Modified: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java?rev=1303031&r1=1303030&r2=1303031&view=diff
==============================================================================
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
 Tue Mar 20 17:32:47 2012
@@ -86,7 +86,8 @@ public class PoolProperties implements P
     protected boolean alternateUsernameAllowed = false;
     protected boolean commitOnReturn = false;
     protected boolean rollbackOnReturn = false;
-    protected boolean useDisposableConnectionFacade;
+    protected boolean useDisposableConnectionFacade = false;
+    protected boolean logValidationErrors = false;
 
 
     /**
@@ -1212,6 +1213,22 @@ public class PoolProperties implements P
         return useDisposableConnectionFacade;
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setLogValidationErrors(boolean logValidationErrors) {
+        this.logValidationErrors = logValidationErrors;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean getLogValidationErrors() {
+        return this.logValidationErrors;
+    }
+
     @Override
     protected Object clone() throws CloneNotSupportedException {
         // TODO Auto-generated method stub

Modified: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java?rev=1303031&r1=1303030&r2=1303031&view=diff
==============================================================================
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
 Tue Mar 20 17:32:47 2012
@@ -420,6 +420,9 @@ public class PooledConnection {
                 this.lastValidated = now;
                 return true;
             } else {
+                if (getPoolProperties().getLogValidationErrors()) {
+                    log.error("Custom validation through 
"+poolProperties.getValidator()+" failed.");
+                }
                 return false;
             }
         }
@@ -441,9 +444,12 @@ public class PooledConnection {
             stmt.close();
             this.lastValidated = now;
             return true;
-        } catch (Exception ignore) {
-            if (log.isDebugEnabled())
-                log.debug("Unable to validate object:",ignore);
+        } catch (Exception ex) {
+            if (getPoolProperties().getLogValidationErrors()) {
+                log.warn("SQL Validation error", ex);
+            } else if (log.isDebugEnabled()) {
+                log.debug("Unable to validate object:",ex);
+            }
             if (stmt!=null)
                 try { stmt.close();} catch (Exception ignore2){/*NOOP*/}
         }

Modified: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java?rev=1303031&r1=1303030&r2=1303031&view=diff
==============================================================================
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java
 Tue Mar 20 17:32:47 2012
@@ -794,6 +794,24 @@ public class ConnectionPool extends Noti
         return getPoolProperties().getUseDisposableConnectionFacade();
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setLogValidationErrors(boolean logValidationErrors) {
+        getPoolProperties().setLogValidationErrors(logValidationErrors);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean getLogValidationErrors() {
+        return getPoolProperties().getLogValidationErrors();
+    }
+
+
+
 
 
 }



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

Reply via email to