Author: jleroux
Date: Thu Jun 16 12:15:23 2016
New Revision: 1748695

URL: http://svn.apache.org/viewvc?rev=1748695&view=rev
Log:
"Applied fix from trunk for revision: 1748689" 
------------------------------------------------------------------------
r1748689 | jleroux | 2016-06-16 13:46:03 +0200 (jeu. 16 juin 2016) | 10 lignes

Fixes "The Connection Pool Status feature in webtools is broken" - 
https://issues.apache.org/jira/browse/OFBIZ-7363

The Connection Pool Status feature was introduced by OFBIZ-4864 hence 1st in 
R13.07 where it still work well (see demo), as the connection pooling. But has 
been broken since, with the pooling.
Fortunately, it's easy to fix and has no implications has long has you don't 
enable verbose logging (the DebugManagedDataSource only extends 
ManagedDataSource for verbose logging and to generate the info needed for the 
Connection Pool Status feature).

I fixed it by using directly the DebugManagedDataSource. It's not an issue as 
long as you don't set the logging level to verbose which is anyway not 
something you would do in production. In case you do so and don't want to be 
disturbed in the log (focusing on something else), it's still easy to comment 
out the line from DebugManagedDataSource. I also fixed some type warnings while 
at it.

I also removed this old comment
        // Hmm... then how do we close the JDBC connections?
Because "we" don't close JDBC connections, DBPC takes care of that (or at least 
should, I did not check).
------------------------------------------------------------------------


Modified:
    ofbiz/branches/release15.12/   (props changed)
    
ofbiz/branches/release15.12/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java

Propchange: ofbiz/branches/release15.12/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jun 16 12:15:23 2016
@@ -9,4 +9,4 @@
 /ofbiz/branches/json-integration-refactoring:1634077-1635900
 /ofbiz/branches/multitenant20100310:921280-927264
 /ofbiz/branches/release13.07:1547657
-/ofbiz/trunk:1722712,1723007,1723248,1724402,1724411,1724566,1724689,1724763,1724916,1724918,1724925,1724930,1724940,1724943,1724946,1724951,1724957,1724975,1724978,1725006,1725217,1725257,1725561,1725574,1726388,1726486,1726493,1726828,1727894,1728398,1728411,1729005,1729078,1729609,1729809,1730035,1730456,1730735-1730736,1730747,1730758,1730882,1730889,1731382,1731396,1732454,1732570,1732721,1733951,1733956,1734246,1734269,1734276,1734912,1734918,1735021,1735244,1735385,1735398,1735569,1735731,1735734,1735750,1735753,1735756,1735759,1735773,1736083,1736087,1736272,1736434,1736628,1736851,1736854,1736890,1737156,1737440,1738235,1738303,1738407,1738902,1739438,1739448,1739571,1740008,1740442,1740629,1741146,1741563,1741684,1741925,1741930,1741960,1742018,1742097,1742103,1742712,1742737,1742741,1743025,1743027,1743230,1743411-1743412,1743656,1743937,1744117,1744198,1744396,1744662,1744768,1744773,1744873,1744911,1745111,1745264,1745428,1745438,1745573,1745577,1745592,1745751,1746228,
 
1746422,1746459,1746524,1746527,1746536,1746601,1746676,1746714,1746755,1746805,1746832,1746890,1747223,1747349,1747498,1747639,1747642,1747646,1747650,1747661,1747956,1747959,1747963,1748121,1748133,1748206,1748218,1748223,1748260,1748357,1748394,1748401,1748543,1748559
+/ofbiz/trunk:1722712,1723007,1723248,1724402,1724411,1724566,1724689,1724763,1724916,1724918,1724925,1724930,1724940,1724943,1724946,1724951,1724957,1724975,1724978,1725006,1725217,1725257,1725561,1725574,1726388,1726486,1726493,1726828,1727894,1728398,1728411,1729005,1729078,1729609,1729809,1730035,1730456,1730735-1730736,1730747,1730758,1730882,1730889,1731382,1731396,1732454,1732570,1732721,1733951,1733956,1734246,1734269,1734276,1734912,1734918,1735021,1735244,1735385,1735398,1735569,1735731,1735734,1735750,1735753,1735756,1735759,1735773,1736083,1736087,1736272,1736434,1736628,1736851,1736854,1736890,1737156,1737440,1738235,1738303,1738407,1738902,1739438,1739448,1739571,1740008,1740442,1740629,1741146,1741563,1741684,1741925,1741930,1741960,1742018,1742097,1742103,1742712,1742737,1742741,1743025,1743027,1743230,1743411-1743412,1743656,1743937,1744117,1744198,1744396,1744662,1744768,1744773,1744873,1744911,1745111,1745264,1745428,1745438,1745573,1745577,1745592,1745751,1746228,
 
1746422,1746459,1746524,1746527,1746536,1746601,1746676,1746714,1746755,1746805,1746832,1746890,1747223,1747349,1747498,1747639,1747642,1747646,1747650,1747661,1747956,1747959,1747963,1748121,1748133,1748206,1748218,1748223,1748260,1748357,1748394,1748401,1748543,1748559,1748689

Modified: 
ofbiz/branches/release15.12/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java?rev=1748695&r1=1748694&r2=1748695&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java
 (original)
+++ 
ofbiz/branches/release15.12/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java
 Thu Jun 16 12:15:23 2016
@@ -31,7 +31,6 @@ import javax.transaction.TransactionMana
 import org.apache.commons.dbcp2.DriverConnectionFactory;
 import org.apache.commons.dbcp2.PoolableConnectionFactory;
 import org.apache.commons.dbcp2.managed.LocalXAConnectionFactory;
-import org.apache.commons.dbcp2.managed.ManagedDataSource;
 import org.apache.commons.dbcp2.managed.PoolableManagedConnectionFactory;
 import org.apache.commons.dbcp2.managed.XAConnectionFactory;
 import org.apache.commons.pool2.impl.GenericObjectPool;
@@ -54,11 +53,11 @@ import org.ofbiz.entity.transaction.Tran
 public class DBCPConnectionFactory implements ConnectionFactory {
 
     public static final String module = DBCPConnectionFactory.class.getName();
-    protected static final ConcurrentHashMap<String, ManagedDataSource> 
dsCache = new ConcurrentHashMap<String, ManagedDataSource>();
+    protected static final ConcurrentHashMap<String, DebugManagedDataSource> 
dsCache = new ConcurrentHashMap<String, DebugManagedDataSource>();
 
     public Connection getConnection(GenericHelperInfo helperInfo, JdbcElement 
abstractJdbc) throws SQLException, GenericEntityException {
         String cacheKey = helperInfo.getHelperFullName();
-        ManagedDataSource mds = dsCache.get(cacheKey);
+        DebugManagedDataSource mds = dsCache.get(cacheKey);
         if (mds != null) {
             return TransactionUtil.getCursorConnection(helperInfo, 
mds.getConnection());
         }
@@ -144,7 +143,7 @@ public class DBCPConnectionFactory imple
         GenericObjectPool pool = new GenericObjectPool(factory, poolConfig);
         factory.setPool(pool);
 
-        mds = new ManagedDataSource(pool, xacf.getTransactionRegistry());
+        mds = new DebugManagedDataSource(pool, xacf.getTransactionRegistry());
         //mds = new DebugManagedDataSource(pool, 
xacf.getTransactionRegistry()); // Useful to debug the usage of connections in 
the pool
         mds.setAccessToUnderlyingConnectionAllowed(true);
 
@@ -163,9 +162,9 @@ public class DBCPConnectionFactory imple
 
     public static Map<String, Object> getDataSourceInfo(String helperName) {
         Map<String, Object> dataSourceInfo = new HashMap<String, Object>();
-        ManagedDataSource mds = dsCache.get(helperName);
+        DebugManagedDataSource mds = dsCache.get(helperName);
         if (mds instanceof DebugManagedDataSource) {
-            dataSourceInfo = ((DebugManagedDataSource)mds).getInfo();
+            dataSourceInfo = mds.getInfo();
         }
         return dataSourceInfo;
     }


Reply via email to