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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]