[Jboss-cvs] JBossAS SVN: r55015 - branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Aug 1 22:44:35 EDT 2006
Author: weston.price at jboss.com
Date: 2006-08-01 22:44:34 -0400 (Tue, 01 Aug 2006)
New Revision: 55015
Added:
branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/StaleConnectionCheckerUnitTestCase.java
Log:
[JBAS-3453] StaleConnection checker patch implementation.
Added: branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/StaleConnectionCheckerUnitTestCase.java
===================================================================
--- branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/StaleConnectionCheckerUnitTestCase.java 2006-08-02 02:43:49 UTC (rev 55014)
+++ branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/StaleConnectionCheckerUnitTestCase.java 2006-08-02 02:44:34 UTC (rev 55015)
@@ -0,0 +1,133 @@
+package org.jboss.test.jca.test;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.jboss.logging.Logger;
+import org.jboss.resource.adapter.jdbc.StaleConnectionException;
+import org.jboss.resource.adapter.jdbc.WrappedConnection;
+import org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory;
+import org.jboss.resource.connectionmanager.InternalManagedConnectionPool;
+import org.jboss.resource.connectionmanager.JBossManagedConnectionPool;
+import org.jboss.resource.connectionmanager.ManagedConnectionPool;
+import org.jboss.resource.connectionmanager.NoTxConnectionManager;
+import org.jboss.test.JBossTestCase;
+import org.jboss.test.jca.jdbc.TestConnection;
+
+public class StaleConnectionCheckerUnitTestCase extends JBossTestCase
+{
+ Logger log = Logger.getLogger(StaleConnectionCheckerUnitTestCase.class);
+
+ public StaleConnectionCheckerUnitTestCase(String name)
+ {
+ super(name);
+
+ }
+ public void testNullStaleConnectionChecker() throws Exception
+ {
+
+ LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
+
+ mcf.setDriverClass("org.jboss.test.jca.jdbc.TestDriver");
+ mcf.setConnectionURL("jdbc:jboss-test-adapter");
+ mcf.setStaleConnectionCheckerClassName("non-stale");
+ mcf.setExceptionSorterClassName("org.jboss.test.jca.support.MockExceptionSorter");
+ InternalManagedConnectionPool.PoolParams pp = new InternalManagedConnectionPool.PoolParams();
+ pp.minSize = 1;
+ pp.maxSize = 2;
+ pp.blockingTimeout = 10000;
+
+ ManagedConnectionPool mcp = new JBossManagedConnectionPool.OnePool(mcf, pp, false, log);
+ NoTxConnectionManager noTxn = new NoTxConnectionManager(null, mcp);
+ mcp.setConnectionListenerFactory(noTxn);
+ Connection conn = (Connection)noTxn.allocateConnection(mcf, null);
+ TestConnection uc = (TestConnection)((WrappedConnection)conn).getUnderlyingConnection();
+ uc.setFail(true);
+
+ try
+ {
+ conn.createStatement().execute("blah");
+
+ }catch(SQLException e)
+ {
+ //Normal
+ assertFalse("Should not be StaleConnectionException", e instanceof StaleConnectionException);
+
+ }
+
+ }
+
+ public void testNonStaleConnection() throws Exception
+ {
+ LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
+
+ mcf.setDriverClass("org.jboss.test.jca.jdbc.TestDriver");
+ mcf.setConnectionURL("jdbc:jboss-test-adapter");
+ mcf.setStaleConnectionCheckerClassName("org.jboss.test.jca.support.MockStaleConnectionCheckerFalse");
+ mcf.setExceptionSorterClassName("org.jboss.test.jca.support.MockExceptionSorter");
+
+ InternalManagedConnectionPool.PoolParams pp = new InternalManagedConnectionPool.PoolParams();
+ pp.minSize = 1;
+ pp.maxSize = 2;
+ pp.blockingTimeout = 10000;
+
+ ManagedConnectionPool mcp = new JBossManagedConnectionPool.OnePool(mcf, pp, false, log);
+ NoTxConnectionManager noTxn = new NoTxConnectionManager(null, mcp);
+ mcp.setConnectionListenerFactory(noTxn);
+ Connection conn = (Connection)noTxn.allocateConnection(mcf, null);
+ TestConnection uc = (TestConnection)((WrappedConnection)conn).getUnderlyingConnection();
+ uc.setFail(true);
+
+ try
+ {
+ conn.createStatement().execute("blah");
+
+ }catch(SQLException e)
+ {
+ //Normal
+ assertFalse("Should not be StaleConnectionException", e instanceof StaleConnectionException);
+ assertTrue("Connection error should be fatal", mcp.getConnectionDestroyedCount() > 0);
+
+ }
+
+ assertTrue("Exception should be falal", mcp.getConnectionDestroyedCount() > 0);
+
+ }
+
+
+ public void testStaleConnection() throws Exception
+ {
+
+ LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
+
+ mcf.setDriverClass("org.jboss.test.jca.jdbc.TestDriver");
+ mcf.setConnectionURL("jdbc:jboss-test-adapter");
+ mcf.setStaleConnectionCheckerClassName("org.jboss.test.jca.support.MockStaleConnectionCheckerTrue");
+ InternalManagedConnectionPool.PoolParams pp = new InternalManagedConnectionPool.PoolParams();
+ pp.minSize = 1;
+ pp.maxSize = 2;
+ pp.blockingTimeout = 10000;
+
+ ManagedConnectionPool mcp = new JBossManagedConnectionPool.OnePool(mcf, pp, false, log);
+ NoTxConnectionManager noTxn = new NoTxConnectionManager(null, mcp);
+ mcp.setConnectionListenerFactory(noTxn);
+ Connection conn = (Connection)noTxn.allocateConnection(mcf, null);
+ TestConnection uc = (TestConnection)((WrappedConnection)conn).getUnderlyingConnection();
+ uc.setFail(true);
+
+ try
+ {
+ conn.createStatement().execute("blah");
+
+ }catch(SQLException e)
+ {
+ //Normal
+ assertTrue("Should be StaleConnectionException", e instanceof StaleConnectionException);
+
+ }
+
+ assertTrue("StaleConnectionException should not destroy connection", mcp.getConnectionDestroyedCount() == 0);
+
+ }
+
+}
More information about the jboss-cvs-commits
mailing list