Author: cbegin Date: Sun Mar 21 21:09:19 2010 New Revision: 925899 URL: http://svn.apache.org/viewvc?rev=925899&view=rev Log: Added unit test to demonstrate read-only returns same instance.
Modified: 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/test/java/org/apache/ibatis/binding/BindingTest.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java 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=925899&r1=925898&r2=925899&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 Sun Mar 21 21:09:19 2010 @@ -81,7 +81,9 @@ public class CachingExecutor implements try { delegate.rollback(required); } finally { - tcm.rollback(); + if (required) { + tcm.rollback(); + } } } Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java?rev=925899&r1=925898&r2=925899&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java Sun Mar 21 21:09:19 2010 @@ -230,12 +230,16 @@ public class BindingTest { @Test public void shouldSelectOneAuthorFromCache() { + Author author1 = selectOneAuthor(); + Author author2 = selectOneAuthor(); + assertTrue("Same (cached) instance should be returned unless rollback is called.", author1 == author2); + } + + private Author selectOneAuthor() { SqlSession session = sqlSessionFactory.openSession(); try { BoundAuthorMapper mapper = session.getMapper(BoundAuthorMapper.class); - Author author1 = mapper.selectAuthor(101); - Author author2 = mapper.selectAuthor(101); - assertTrue("Same (cached) instance should be returned unless rollback is called.", author1 == author2); + return mapper.selectAuthor(101); } finally { session.close(); } Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java?rev=925899&r1=925898&r2=925899&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java Sun Mar 21 21:09:19 2010 @@ -8,6 +8,7 @@ import org.apache.ibatis.session.RowBoun import java.util.List; +...@cachenamespace(readWrite = false) public interface BoundAuthorMapper { //======================================================