You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2008/11/10 18:09:40 UTC

svn commit: r712701 - in /tomcat/trunk/modules/jdbc-pool: .classpath java/org/apache/tomcat/jdbc/pool/PoolProperties.java test/org/apache/tomcat/jdbc/test/DefaultTestCase.java test/org/apache/tomcat/jdbc/test/TwoDataSources.java

Author: fhanik
Date: Mon Nov 10 09:09:40 2008
New Revision: 712701

URL: http://svn.apache.org/viewvc?rev=712701&view=rev
Log:
Added test case to test two concurrent datasources, fixed the flag to turn on the sweeper

Added:
    tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TwoDataSources.java
Modified:
    tomcat/trunk/modules/jdbc-pool/.classpath
    tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
    tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java

Modified: tomcat/trunk/modules/jdbc-pool/.classpath
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/.classpath?rev=712701&r1=712700&r2=712701&view=diff
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/.classpath (original)
+++ tomcat/trunk/modules/jdbc-pool/.classpath Mon Nov 10 09:09:40 2008
@@ -3,9 +3,9 @@
 	<classpathentry kind="src" path="java"/>
 	<classpathentry kind="src" path="test"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/tomcat6-deps/dbcp/tomcat-dbcp.jar"/>
-	<classpathentry kind="var" path="TOMCAT_LIBS_BASE"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/tomcat-trunk"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
+	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/tomcat6-deps/dbcp/tomcat-dbcp.jar"/>
+	<classpathentry kind="lib" path="mysql-connector-java-5.1.6-bin.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>

Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java?rev=712701&r1=712700&r2=712701&view=diff
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java (original)
+++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java Mon Nov 10 09:09:40 2008
@@ -391,7 +391,7 @@
     public boolean isPoolSweeperEnabled() {
         boolean result = getTimeBetweenEvictionRunsMillis()>0;
         result = result && (isRemoveAbandoned() && getRemoveAbandonedTimeout()>0);
-        result = result && (isTestWhileIdle() && getValidationQuery()!=null);
+        result = result || (isTestWhileIdle() && getValidationQuery()!=null);
         return result;
     }
 }

Modified: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java?rev=712701&r1=712700&r2=712701&view=diff
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java (original)
+++ tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java Mon Nov 10 09:09:40 2008
@@ -39,7 +39,8 @@
         super(name);
     }
 
-    protected void init() throws Exception {
+    public DataSourceProxy createDefaultDataSource() {
+        DataSourceProxy datasource = null;
         PoolProperties p = new DefaultProperties();
         p.setJmxEnabled(false);
         p.setTestWhileIdle(false);
@@ -57,6 +58,11 @@
         p.setRemoveAbandoned(false);
         datasource = new org.apache.tomcat.jdbc.pool.DataSourceProxy();
         datasource.setPoolProperties(p);
+        return datasource;
+    }
+    
+    protected void init() throws Exception {
+        this.datasource = createDefaultDataSource();
     }
 
     protected void transferProperties() {
@@ -92,6 +98,7 @@
 
 
     protected void tearDown() throws Exception {
+        try {datasource.close();}catch(Exception ignore){}
         datasource = null;
         tDatasource = null;
         System.gc();

Added: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TwoDataSources.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TwoDataSources.java?rev=712701&view=auto
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TwoDataSources.java (added)
+++ tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/TwoDataSources.java Mon Nov 10 09:09:40 2008
@@ -0,0 +1,53 @@
+package org.apache.tomcat.jdbc.test;
+
+import java.sql.Connection;
+
+import org.apache.tomcat.jdbc.pool.DataSourceProxy;
+
+public class TwoDataSources extends DefaultTestCase {
+
+    public TwoDataSources(String name) {
+        super(name);
+    }
+    
+    public void testTwoDataSources() throws Exception {
+        DataSourceProxy d1 = this.createDefaultDataSource();
+        DataSourceProxy d2 = this.createDefaultDataSource();
+        d1.setRemoveAbandoned(true);
+        d1.setRemoveAbandonedTimeout(10);
+        d1.setTimeBetweenEvictionRunsMillis(1000);
+        d2.setRemoveAbandoned(false);
+        Connection c1 = d1.getConnection();
+        Connection c2 = d2.getConnection();
+        Thread.sleep(15000);
+        try {
+            c1.createStatement();
+            this.assertTrue("Connection should have been abandoned.",false);
+        }catch (Exception x) {
+            this.assertTrue("This is correct, c1 is abandoned",true);
+        }
+
+        try {
+            c2.createStatement();
+            this.assertTrue("Connection should not have been abandoned.",true);
+        }catch (Exception x) {
+            this.assertTrue("Connection c2 should be working",false);
+        }
+        try {
+            c1.close();
+            this.assertTrue("Connection should have been closed.",false);
+        }catch (Exception x) {
+            this.assertTrue("This is correct, c1 is closed",true);
+        }
+        try {
+            c2.close();
+            this.assertTrue("Connection c2 should not have been closed.",true);
+        }catch (Exception x) {
+            this.assertTrue("Connection c2 should be working",false);
+        }
+        
+
+        
+    }
+
+}



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