Revert "static connection holder doesnt exist anymore" This reverts commit 39cbaca105ab2f087d3ebc73c9bec728e7cd6cd8.
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3f71bbde Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3f71bbde Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3f71bbde Branch: refs/heads/tomee-1.7.x Commit: 3f71bbde8955faec8e0edb56f803b83d2b9fbd95 Parents: 2a7fc7e Author: Jonathan Gallimore <[email protected]> Authored: Thu Jul 30 13:46:11 2015 +0100 Committer: Jonathan Gallimore <[email protected]> Committed: Thu Jul 30 13:46:11 2015 +0100 ---------------------------------------------------------------------- .../resource/jdbc/UTManagedDataSourceTest.java | 27 +++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/3f71bbde/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/UTManagedDataSourceTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/UTManagedDataSourceTest.java b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/UTManagedDataSourceTest.java index 77f9049..146a5b3 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/UTManagedDataSourceTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/UTManagedDataSourceTest.java @@ -19,18 +19,14 @@ package org.apache.openejb.resource.jdbc; import org.apache.openejb.jee.EjbJar; import org.apache.openejb.jee.SingletonBean; import org.apache.openejb.junit.ApplicationComposer; +import org.apache.openejb.resource.jdbc.managed.local.ManagedConnection; import org.apache.openejb.testing.Configuration; import org.apache.openejb.testing.Module; +import org.junit.After; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.Properties; import javax.annotation.Resource; import javax.ejb.EJB; import javax.ejb.LocalBean; @@ -38,8 +34,18 @@ import javax.ejb.Singleton; import javax.ejb.TransactionManagement; import javax.ejb.TransactionManagementType; import javax.sql.DataSource; +import javax.transaction.Transaction; import javax.transaction.UserTransaction; +import java.lang.reflect.Field; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Map; +import java.util.Properties; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -203,6 +209,15 @@ public class UTManagedDataSourceTest { assertFalse(exists(12)); } + @After + public void checkTxMapIsEmpty() throws Exception { // avoid memory leak + final Field map = ManagedConnection.class.getDeclaredField("CONNECTION_BY_TX_BY_DS"); + map.setAccessible(true); + final Map<DataSource, Map<Transaction, Connection>> instance = (Map<DataSource, Map<Transaction, Connection>>) map.get(null); + assertEquals(1, instance.size()); + assertEquals(0, instance.values().iterator().next().size()); + } + private static boolean exists(final int id) throws Exception { final Connection connection = DriverManager.getConnection(URL, USER, PASSWORD); final Statement statement = connection.createStatement();
