Author: hiranya
Date: Sun Jul 21 01:28:59 2013
New Revision: 1505250

URL: http://svn.apache.org/r1505250
Log:
Applying the patch for SYNAPSE-871. Prevent calling the 
datasource.getConnection() twice for a single DB interaction.

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBLookupMediator.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java?rev=1505250&r1=1505249&r2=1505250&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
 Sun Jul 21 01:28:59 2013
@@ -200,12 +200,13 @@ public abstract class AbstractDBMediator
 
     /**
      * Return a Prepared statement for the given Statement object, which is 
ready to be executed
-     * @param stmnt SQL stataement to be executed
+     * @param stmnt SQL statement to be executed
+     * @param con The connection to be used
      * @param msgCtx Current message context
      * @return a PreparedStatement
      * @throws SQLException on error
      */
-    protected PreparedStatement getPreparedStatement(Statement stmnt,
+    protected PreparedStatement getPreparedStatement(Statement stmnt, 
Connection con,
                                                      MessageContext msgCtx) 
throws SQLException {
 
         SynapseLog synLog = getLog(msgCtx);
@@ -215,7 +216,6 @@ public abstract class AbstractDBMediator
                 " and preparing statement : " + stmnt.getRawStatement());
         }
 
-        Connection con = getDataSource().getConnection();
         if (con == null) {
             String msg = "Connection from DataSource " + getDSName() + " is 
null.";
             log.error(msg);

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBLookupMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBLookupMediator.java?rev=1505250&r1=1505249&r2=1505250&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBLookupMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBLookupMediator.java
 Sun Jul 21 01:28:59 2013
@@ -41,8 +41,8 @@ public class DBLookupMediator extends Ab
         Connection con = null;
         ResultSet rs = null;
         try {
-            PreparedStatement ps = getPreparedStatement(stmnt, msgCtx);
-            con = ps.getConnection();
+            con = this.getDataSource().getConnection();
+            PreparedStatement ps = getPreparedStatement(stmnt, con, msgCtx);
             rs = ps.executeQuery();
 
             if (rs.next()) {
@@ -90,7 +90,7 @@ public class DBLookupMediator extends Ab
             if (rs != null) {
                 try {
                     rs.close();
-                } catch (SQLException e) {}
+                } catch (SQLException ignore) {}
             }
             if (con != null) {
                 try {

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java?rev=1505250&r1=1505249&r2=1505250&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/DBReportMediator.java
 Sun Jul 21 01:28:59 2013
@@ -50,7 +50,8 @@ public class DBReportMediator extends Ab
 
         Connection con = null;
         try {
-            PreparedStatement ps = getPreparedStatement(stmnt, msgCtx);
+            con = this.getDataSource().getConnection();
+            PreparedStatement ps = getPreparedStatement(stmnt, con, msgCtx);
             con = ps.getConnection();
             int count = ps.executeUpdate();
 


Reply via email to