Author: cbegin
Date: Sat Oct 17 15:54:00 2009
New Revision: 826273
URL: http://svn.apache.org/viewvc?rev=826273&view=rev
Log:
avoid NPE on closed executor.
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
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=826273&r1=826272&r2=826273&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
Sat Oct 17 15:54:00 2009
@@ -36,6 +36,7 @@
}
public Transaction getTransaction() {
+ if (closed) throw new ExecutorException("Executor was closed.");
return transaction;
}
@@ -59,17 +60,20 @@
public int update(MappedStatement ms, Object parameter) throws SQLException {
ErrorContext.instance().resource(ms.getResource()).activity("executing an
update").object(ms.getId());
+ if (closed) throw new ExecutorException("Executor was closed.");
localCache.clear();
return doUpdate(ms, parameter);
}
public List flushStatements() throws SQLException {
+ if (closed) throw new ExecutorException("Executor was closed.");
batchResults.addAll(doFlushStatements());
return batchResults;
}
public List query(MappedStatement ms, Object parameter, RowBounds rowBounds,
ResultHandler resultHandler) throws SQLException {
ErrorContext.instance().resource(ms.getResource()).activity("executing a
query").object(ms.getId());
+ if (closed) throw new ExecutorException("Executor was closed.");
List list;
try {
queryStack++;
@@ -97,10 +101,12 @@
}
public void deferLoad(MappedStatement ms, MetaObject resultObject, String
property, CacheKey key) {
+ if (closed) throw new ExecutorException("Executor was closed.");
deferredLoads.add(new DeferredLoad(ms, resultObject, property, key));
}
public CacheKey createCacheKey(MappedStatement ms, Object parameterObject,
RowBounds rowBounds) {
+ if (closed) throw new ExecutorException("Executor was closed.");
BoundSql boundSql = ms.getBoundSql(parameterObject);
CacheKey cacheKey = new CacheKey();
cacheKey.update(ms.getId());