You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2006/11/21 06:49:45 UTC

svn commit: r477515 - in /ibatis/trunk/java/mapper/mapper2: build/version.properties src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java src/com/ibatis/sqlmap/engine/scope/SessionScope.java

Author: cbegin
Date: Mon Nov 20 21:49:44 2006
New Revision: 477515

URL: http://svn.apache.org/viewvc?view=rev&rev=477515
Log:
Fixed IBATIS-369

Modified:
    ibatis/trunk/java/mapper/mapper2/build/version.properties
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/SessionScope.java

Modified: ibatis/trunk/java/mapper/mapper2/build/version.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/build/version.properties?view=diff&rev=477515&r1=477514&r2=477515
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/build/version.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/build/version.properties Mon Nov 20 21:49:44 2006
@@ -1,5 +1,5 @@
 #Build version info
-#Fri Nov 03 20:18:15 MST 2006
+#Mon Nov 20 22:45:11 MST 2006
 version=2.3.0
-buildDate=2006/11/03 20\:18
-buildNum=666
+buildDate=2006/11/20 22\:45
+buildNum=669

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java?view=diff&rev=477515&r1=477514&r2=477515
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java Mon Nov 20 21:49:44 2006
@@ -460,43 +460,45 @@
   }
 
   private PreparedStatement prepareStatement(SessionScope session, Connection conn, String sql, Integer rsType) throws SQLException {
+    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient)session.getSqlMapExecutor()).getDelegate();
     if (session.hasPreparedStatementFor(sql)) {
       return session.getPreparedStatement((sql));
     } else {
       PreparedStatement ps = conn.prepareStatement(sql, rsType.intValue(), ResultSet.CONCUR_READ_ONLY);
-      session.putPreparedStatement(sql, ps);
+      session.putPreparedStatement(delegate, sql, ps);
       return ps;
     }
   }
 
   private CallableStatement prepareCall(SessionScope session, Connection conn, String sql, Integer rsType) throws SQLException {
+    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient)session.getSqlMapExecutor()).getDelegate();
     if (session.hasPreparedStatementFor(sql)) {
       return (CallableStatement) session.getPreparedStatement((sql));
     } else {
       CallableStatement cs = conn.prepareCall(sql, rsType.intValue(), ResultSet.CONCUR_READ_ONLY);
-      session.putPreparedStatement(sql, cs);
+      session.putPreparedStatement(delegate, sql, cs);
       return cs;
     }
   }
 
   private static PreparedStatement prepareStatement(SessionScope session, Connection conn, String sql) throws SQLException {
     SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient)session.getSqlMapExecutor()).getDelegate();
-    if (delegate.isStatementCacheEnabled() && session.hasPreparedStatementFor(sql)) {
+    if (session.hasPreparedStatementFor(sql)) {
       return session.getPreparedStatement((sql));
     } else {
       PreparedStatement ps = conn.prepareStatement(sql);
-      session.putPreparedStatement(sql, ps);
+      session.putPreparedStatement(delegate, sql, ps);
       return ps;
     }
   }
 
   private CallableStatement prepareCall(SessionScope session, Connection conn, String sql) throws SQLException {
     SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient)session.getSqlMapExecutor()).getDelegate();
-    if (delegate.isStatementCacheEnabled() && session.hasPreparedStatementFor(sql)) {
+    if (session.hasPreparedStatementFor(sql)) {
       return (CallableStatement) session.getPreparedStatement((sql));
     } else {
       CallableStatement cs = conn.prepareCall(sql);
-      session.putPreparedStatement(sql, cs);
+      session.putPreparedStatement(delegate, sql, cs);
       return cs;
     }
   }

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/SessionScope.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/SessionScope.java?view=diff&rev=477515&r1=477514&r2=477515
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/SessionScope.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/SessionScope.java Mon Nov 20 21:49:44 2006
@@ -21,6 +21,7 @@
 import com.ibatis.sqlmap.client.SqlMapTransactionManager;
 import com.ibatis.sqlmap.engine.transaction.Transaction;
 import com.ibatis.sqlmap.engine.transaction.TransactionState;
+import com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate;
 
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
@@ -241,11 +242,13 @@
     return ps;
   }
 
-  public void putPreparedStatement(String sql, PreparedStatement ps) {
-    if (!isInBatch()) {
-      if (hasPreparedStatementFor(sql))
-        throw new SqlMapException("Duplicate prepared statement found.  This is likely a bug.");
-      preparedStatements.put(sql, ps);
+  public void putPreparedStatement(SqlMapExecutorDelegate delegate, String sql, PreparedStatement ps) {
+    if (delegate.isStatementCacheEnabled()) {
+      if (!isInBatch()) {
+        if (hasPreparedStatementFor(sql))
+          throw new SqlMapException("Duplicate prepared statement found.  This is likely a bug.");
+        preparedStatements.put(sql, ps);
+      }
     }
   }