Author: markt
Date: Wed Feb 18 16:46:36 2009
New Revision: 745569

URL: http://svn.apache.org/viewvc?rev=745569&view=rev
Log:
Fix DBCP-4. This patch is a trade-off that provides developers an option to 
redirect the logging output without adding a new dependency on commons-logging 
or j.u.l.
App servers using DBCP will need to continue to use their existing mechanisms 
for redirecting stdout.

Modified:
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedConfig.java
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedConfig.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedConfig.java?rev=745569&r1=745568&r2=745569&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedConfig.java 
(original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedConfig.java 
Wed Feb 18 16:46:36 2009
@@ -17,6 +17,8 @@
 
 package org.apache.commons.dbcp;
 
+import java.io.PrintWriter;
+
 /**
  * Configuration settings for handling abandoned db connections.
  *                                                            
@@ -130,4 +132,29 @@
         this.logAbandoned = logAbandoned;
     }
 
+    /**
+     * PrintWriter to use to log information on abandoned objects.
+     */
+    private PrintWriter logWriter = new PrintWriter(System.out);
+    
+    /**
+     * Returns the log writer being used by this configuration to log
+     * information on abandoned objects. If not set, a PrintWriter based on
+     * System.out is used.
+     *
+     * @return log writer in use
+     */
+    public PrintWriter getLogWriter() {
+        return logWriter;
+    }
+    
+    /**
+     * Sets the log writer to be used by this configuration to log
+     * information on abandoned objects.
+     * 
+     * @param logWriter The new log writer
+     */
+    public void setLogWriter(PrintWriter logWriter) {
+        this.logWriter = logWriter;
+    }
 }

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java?rev=745569&r1=745568&r2=745569&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java 
(original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java 
Wed Feb 18 16:46:36 2009
@@ -188,9 +188,9 @@
      * created this object.
      */
     public void printStackTrace() {
-        if (createdBy != null) {
-            System.out.println(format.format(new Date(createdTime)));
-            createdBy.printStackTrace(System.out);
+        if (createdBy != null && config != null) {
+            config.getLogWriter().println(format.format(new 
Date(createdTime)));
+            createdBy.printStackTrace(config.getLogWriter());
         }
         synchronized(this.trace) {
             Iterator it = this.trace.iterator();


Reply via email to