Author: cbegin
Date: Tue Mar 23 02:46:53 2010
New Revision: 926441
URL: http://svn.apache.org/viewvc?rev=926441&view=rev
Log:
fixed transactional cache that was not committing implicitly on session close
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/loader/ResultLoader.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java?rev=926441&r1=926440&r2=926441&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java
Tue Mar 23 02:46:53 2010
@@ -61,7 +61,7 @@ public class ExternalTransaction extends
try {
isolationLevel.restoreIsolationLevel(executor.getTransaction().getConnection());
} finally {
- executor.close();
+ executor.close(false);
executor = null;
}
}
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java?rev=926441&r1=926440&r2=926441&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java
Tue Mar 23 02:46:53 2010
@@ -61,7 +61,7 @@ public class JdbcTransaction extends Bas
try {
isolationLevel.restoreIsolationLevel(executor.getTransaction().getConnection());
} finally {
- executor.close();
+ executor.close(false);
executor = null;
}
}
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java?rev=926441&r1=926440&r2=926441&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java
Tue Mar 23 02:46:53 2010
@@ -106,7 +106,7 @@ public class JtaTransaction extends Base
try {
isolationLevel.restoreIsolationLevel(executor.getTransaction().getConnection());
} finally {
- executor.close();
+ executor.close(false);
executor = null;
}
}
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java?rev=926441&r1=926440&r2=926441&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
Tue Mar 23 02:46:53 2010
@@ -43,9 +43,13 @@ public abstract class BaseExecutor imple
return transaction;
}
- public void close() {
+ public void close(boolean forceRollback) {
try {
- if (transaction != null) transaction.close();
+ try {
+ rollback(forceRollback);
+ } finally {
+ if (transaction != null) transaction.close();
+ }
} catch (SQLException e) {
// Ignore. There's nothing that can be done at this point.
} finally {
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java?rev=926441&r1=926440&r2=926441&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java
Tue Mar 23 02:46:53 2010
@@ -25,11 +25,15 @@ public class CachingExecutor implements
return delegate.getTransaction();
}
- public void close() {
- delegate.close();
- tcm.commit();
+ public void close(boolean forceRollback) {
+ try {
+ tcm.commit();
+ } finally {
+ delegate.close(forceRollback);
+ }
}
+
public boolean isClosed() {
return delegate.isClosed();
}
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java?rev=926441&r1=926440&r2=926441&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java
Tue Mar 23 02:46:53 2010
@@ -34,8 +34,8 @@ public interface Executor {
Transaction getTransaction();
- void close();
-
+ void close(boolean forceRollback);
+
boolean isClosed();
}
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/loader/ResultLoader.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/loader/ResultLoader.java?rev=926441&r1=926440&r2=926441&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/loader/ResultLoader.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/loader/ResultLoader.java
Tue Mar 23 02:46:53 2010
@@ -72,7 +72,7 @@ public class ResultLoader {
return localExecutor.query(mappedStatement, parameterObject,
RowBounds.DEFAULT, Executor.NO_RESULT_HANDLER);
} finally {
if (localExecutor != executor) {
- localExecutor.close();
+ localExecutor.close(false);
}
}
}
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java?rev=926441&r1=926440&r2=926441&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java
Tue Mar 23 02:46:53 2010
@@ -143,11 +143,8 @@ public class DefaultSqlSession implement
public void close() {
try {
- try {
- rollback(false);
- } finally {
- executor.close();
- }
+ executor.close(isCommitOrRollbackRequired(false));
+ dirty = false;
} catch (Exception e) {
throw ExceptionFactory.wrapException("Error closing transaction. Cause:
" + e, e);
} finally {
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java?rev=926441&r1=926440&r2=926441&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
Tue Mar 23 02:46:53 2010
@@ -9,7 +9,7 @@ import org.apache.ibatis.session.RowBoun
import java.util.List;
import java.util.Map;
-...@cachenamespace
+...@cachenamespace(readWrite = false)
public interface BoundBlogMapper {
//======================================================