Author: cbegin
Date: Fri Jan 2 20:55:55 2009
New Revision: 730909
URL: http://svn.apache.org/viewvc?rev=730909&view=rev
Log:
Refactored ErrorContext
Improved error messages in general
Added 1:M collections test
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/parameter/DefaultParameterHandler.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigParser.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ErrorContextTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
Fri Jan 2 20:55:55 2009
@@ -9,7 +9,6 @@
import org.apache.ibatis.mapping.Configuration;
import java.util.List;
-import java.sql.SQLException;
public class DefaultSqlSession implements SqlSession {
@@ -54,7 +53,7 @@
try {
MappedStatement ms = configuration.getMappedStatement(statement);
return executor.query(ms, parameter, offset, limit, handler);
- } catch (SQLException e) {
+ } catch (Exception e) {
throw ExceptionFactory.wrapException("Error querying database. Cause: "
+ e, e);
}
}
@@ -78,7 +77,7 @@
dirty = true;
MappedStatement ms = configuration.getMappedStatement(statement);
return executor.update(ms, parameter);
- } catch (SQLException e) {
+ } catch (Exception e) {
throw ExceptionFactory.wrapException("Error updating database. Cause: "
+ e, e);
}
}
@@ -99,7 +98,7 @@
try {
executor.commit(isCommitOrRollbackRequired(force));
dirty = false;
- } catch (SQLException e) {
+ } catch (Exception e) {
throw ExceptionFactory.wrapException("Error committing transaction.
Cause: " + e, e);
}
}
@@ -112,7 +111,7 @@
try {
executor.rollback(isCommitOrRollbackRequired(force));
dirty = false;
- } catch (SQLException e) {
+ } catch (Exception e) {
throw ExceptionFactory.wrapException("Error rolling back transaction.
Cause: " + e, e);
}
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java
Fri Jan 2 20:55:55 2009
@@ -1,11 +1,11 @@
package org.apache.ibatis.api.exceptions;
-import java.sql.SQLException;
+import org.apache.ibatis.executor.ErrorContext;
public class ExceptionFactory {
public static RuntimeException wrapException(String message, Exception e) {
- return new RuntimeSqlException(message, e);
+ return new
RuntimeSqlException(ErrorContext.instance().message(message).cause(e).toString(),
e);
}
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
Fri Jan 2 20:55:55 2009
@@ -3,7 +3,6 @@
import org.apache.ibatis.cache.CacheKey;
import org.apache.ibatis.cache.impl.PerpetualCache;
import org.apache.ibatis.executor.result.ResultHandler;
-import org.apache.ibatis.logging.*;
import org.apache.ibatis.mapping.*;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.type.TypeHandlerRegistry;
@@ -44,6 +43,7 @@
}
public int update(MappedStatement ms, Object parameter) throws SQLException {
+ ErrorContext.instance().resource(ms.getResource()).activity("executing an
update").object(ms.getId());
localCache.clear();
return doUpdate(ms, parameter);
}
@@ -54,6 +54,7 @@
}
public List query(MappedStatement ms, Object parameter, int offset, int
limit, ResultHandler resultHandler) throws SQLException {
+ ErrorContext.instance().resource(ms.getResource()).activity("executing a
query").object(ms.getId());
List list;
try {
queryStack++;
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java
Fri Jan 2 20:55:55 2009
@@ -2,125 +2,122 @@
public class ErrorContext {
- private static final ThreadLocal<ErrorContext> local = new
ThreadLocal<ErrorContext>();
+ private static String NEWLINE; // Can't be final due to a weird Java
compiler issue.
+ private static final ThreadLocal<ErrorContext> LOCAL = new
ThreadLocal<ErrorContext>();
- public static void set(String resource, String activity, String objectId,
String moreInfo) {
- _local()._set(resource,activity,objectId,moreInfo);
- }
-
- public static void set(String activity, String objectId, String moreInfo) {
- _local()._set(activity,objectId,moreInfo);
- }
-
- public static void set(String objectId, String moreInfo) {
- _local()._set(objectId,moreInfo);
- }
-
- public static void set(String moreInfo) {
- _local()._set(moreInfo);
- }
-
- public static void set(Throwable cause) {
- _local()._set(cause);
- }
+ private String resource;
+ private String activity;
+ private String object;
+ private String message;
+ private String sql;
+ private Throwable cause;
- public static String description() {
- return _local()._toString();
+ static {
+ try {
+ NEWLINE = System.getProperty("line.separator");
+ } catch (Throwable t) {
+ NEWLINE = "\n";
+ }
}
- public static void reset() {
- _local()._reset();
+ private ErrorContext() {
}
- private static ErrorContext _local() {
- ErrorContext context = local.get();
+ public static ErrorContext instance() {
+ ErrorContext context = LOCAL.get();
if (context == null) {
context = new ErrorContext();
- local.set(context);
+ LOCAL.set(context);
}
return context;
}
- private String resource;
- private String activity;
- private String objectId;
- private String moreInfo;
- private Throwable cause;
-
- private ErrorContext() {
+ public ErrorContext resource(String resource) {
+ this.resource = resource;
+ return this;
}
- private void _set(String resource, String activity, String objectId, String
moreInfo) {
- this.resource = resource;
+ public ErrorContext activity(String activity) {
this.activity = activity;
- this.objectId = objectId;
- this.moreInfo = moreInfo;
+ return this;
}
- private void _set(String activity, String objectId, String moreInfo) {
- this.activity = activity;
- this.objectId = objectId;
- this.moreInfo = moreInfo;
+ public ErrorContext object(String object) {
+ this.object = object;
+ return this;
}
- private void _set(String objectId, String moreInfo) {
- this.objectId = objectId;
- this.moreInfo = moreInfo;
+ public ErrorContext message(String message) {
+ this.message = message;
+ return this;
}
- private void _set(String moreInfo) {
- this.moreInfo = moreInfo;
+ public ErrorContext sql(String sql) {
+ this.sql = sql;
+ return this;
}
- private void _set(Throwable cause) {
+ public ErrorContext cause(Throwable cause) {
this.cause = cause;
+ return this;
+ }
+
+ public ErrorContext reset() {
+ resource = null;
+ activity = null;
+ object = null;
+ message = null;
+ sql = null;
+ cause = null;
+ return this;
}
- private String _toString() {
- StringBuffer message = new StringBuffer();
+ public String toString() {
+ StringBuffer description = new StringBuffer();
+
+ // message
+ if (this.message != null) {
+ description.append(NEWLINE);
+ description.append("### ");
+ description.append(this.message);
+ }
// resource
if (resource != null) {
- message.append(" \n*** The error occurred in ");
- message.append(resource);
- message.append(".");
+ description.append(NEWLINE);
+ description.append("### The error may exist in ");
+ description.append(resource);
}
- // activity
- if (activity != null) {
- message.append(" \n*** The error occurred while ");
- message.append(activity);
- message.append(".");
+ // object
+ if (object != null) {
+ description.append(NEWLINE);
+ description.append("### The error may involve ");
+ description.append(object);
}
- // object
- if (objectId != null) {
- message.append(" \n*** Check ");
- message.append(objectId);
- message.append(".");
+ // activity
+ if (activity != null) {
+ description.append(NEWLINE);
+ description.append("### The error occurred while ");
+ description.append(activity);
}
- // more info
- if (moreInfo != null) {
- message.append(" \n*** ");
- message.append(moreInfo);
+ // activity
+ if (sql != null) {
+ description.append(NEWLINE);
+ description.append("### SQL: ");
+ description.append(sql.replace('\n',' ').replace('\r','
').replace('\t',' ').trim());
}
// cause
if (cause != null) {
- message.append(" \n*** Cause: ");
- message.append(cause.toString());
+ description.append(NEWLINE);
+ description.append("### Cause: ");
+ description.append(cause.toString());
}
- return message.toString();
- }
-
- private void _reset() {
- resource = null;
- activity = null;
- objectId = null;
- moreInfo = null;
- cause = null;
+ return description.toString();
}
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/parameter/DefaultParameterHandler.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/parameter/DefaultParameterHandler.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/parameter/DefaultParameterHandler.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/parameter/DefaultParameterHandler.java
Fri Jan 2 20:55:55 2009
@@ -3,7 +3,7 @@
import org.apache.ibatis.mapping.*;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.type.*;
-import org.apache.ibatis.executor.ExecutorException;
+import org.apache.ibatis.executor.*;
import java.sql.*;
import java.util.List;
@@ -27,6 +27,7 @@
public void setParameters(PreparedStatement ps)
throws SQLException {
+ ErrorContext.instance().activity("setting
parameters").object(mappedStatement.getParameterMap().getId());
List<ParameterMapping> parameterMappings =
mappedStatement.getDynamicParameterMappings(parameterObject);
if (parameterMappings != null) {
MetaObject metaObject = parameterObject == null ? null :
MetaObject.forObject(parameterObject);
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
Fri Jan 2 20:55:55 2009
@@ -1,8 +1,7 @@
package org.apache.ibatis.executor.resultset;
import org.apache.ibatis.cache.CacheKey;
-import org.apache.ibatis.executor.Executor;
-import org.apache.ibatis.executor.ExecutorException;
+import org.apache.ibatis.executor.*;
import org.apache.ibatis.executor.loader.*;
import org.apache.ibatis.executor.parameter.ParameterHandler;
import org.apache.ibatis.executor.result.*;
@@ -54,6 +53,7 @@
try {
for (int i = 0, n = mappedStatement.getResultMaps().size(); i < n;
i++) {
ResultMap resultMap = mappedStatement.getResultMaps().get(i);
+ ErrorContext.instance().activity("handling result
set").object(resultMap.getId());
if (resultHandler == null) {
DefaultResultHandler defaultResultHandler = new
DefaultResultHandler();
handleResults(rs, resultMap, defaultResultHandler, rowOffset,
rowLimit);
@@ -80,7 +80,7 @@
}
public void handleOutputParameters(CallableStatement callableStatement)
throws SQLException {
- ParameterMap parameterMap = mappedStatement.getParameterMap();
+ ErrorContext.instance().activity("handling output parameters");
MetaObject metaParam = MetaObject.forObject(parameterObject);
List<ParameterMapping> parameterMappings =
mappedStatement.getDynamicParameterMappings(parameterObject);
for (int i = 0; i < parameterMappings.size(); i++) {
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java
Fri Jan 2 20:55:55 2009
@@ -50,6 +50,7 @@
public Statement prepare(Connection connection)
throws SQLException {
+ ErrorContext.instance().sql(sql);
Statement statement = null;
try {
statement = instantiateStatement(connection);
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
Fri Jan 2 20:55:55 2009
@@ -6,6 +6,7 @@
public class MappedStatement {
+ private String resource;
private Configuration configuration;
private String id;
private Integer fetchSize;
@@ -35,6 +36,11 @@
mappedStatement.timeout = configuration.getDefaultStatementTimeout();
}
+ public Builder resource(String resource) {
+ mappedStatement.resource = resource;
+ return this;
+ }
+
public String id() {
return mappedStatement.id;
}
@@ -94,6 +100,10 @@
}
+ public String getResource() {
+ return resource;
+ }
+
public Configuration getConfiguration() {
return configuration;
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigParser.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigParser.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigParser.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigParser.java
Fri Jan 2 20:55:55 2009
@@ -9,6 +9,7 @@
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.datasource.DataSourceFactory;
import org.apache.ibatis.transaction.TransactionFactory;
+import org.apache.ibatis.executor.ErrorContext;
import java.io.Reader;
import java.util.*;
@@ -32,6 +33,7 @@
}
public MapperConfigParser(Reader reader, String environment, Properties
props) {
+ ErrorContext.instance().resource("SQL Mapper Configuration");
this.parsed = false;
this.reader = reader;
this.environment = environment;
@@ -214,14 +216,18 @@
String url = context.getStringAttribute("url");
Reader reader;
if (resource != null && url == null) {
+ ErrorContext.instance().resource(resource);
reader = Resources.getResourceAsReader(resource);
+ MapperParser mapperParser = new MapperParser(reader, configuration,
resource);
+ mapperParser.parse();
} else if (url != null && resource == null) {
+ ErrorContext.instance().resource(url);
reader = Resources.getUrlAsReader(url);
+ MapperParser mapperParser = new MapperParser(reader, configuration, url);
+ mapperParser.parse();
} else {
throw new ParserException("A mapper element may only specify a url or
resource, but not both.");
}
- MapperParser mapperParser = new MapperParser(reader, configuration);
- mapperParser.parse();
}
private boolean isSpecifiedEnvironment() {
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java
Fri Jan 2 20:55:55 2009
@@ -5,6 +5,7 @@
import org.apache.ibatis.type.*;
import org.apache.ibatis.xml.*;
import org.apache.ibatis.cache.Cache;
+import org.apache.ibatis.executor.ErrorContext;
import java.io.Reader;
import java.util.*;
@@ -15,6 +16,8 @@
protected Reader reader;
protected NodeletParser parser;
+ private String resource;
+
private ParameterMap.Builder parameterMapBuilder;
private List<ParameterMapping> parameterMappings;
@@ -26,7 +29,9 @@
private Cache cache;
- public MapperParser(Reader reader, Configuration configuration) {
+ public MapperParser(Reader reader, Configuration configuration, String
resource) {
+ ErrorContext.instance().resource(resource);
+ this.resource = resource;
this.reader = reader;
this.configuration = configuration;
@@ -283,10 +288,11 @@
String id = context.getStringAttribute("id");
id = applyNamespace(id);
- String sql = context.getStringBody();
+ //String sql = context.getStringBody();
SqlSource sqlSource = new SqlSourceParser(configuration).parse(context);
MappedStatement.Builder statementBuilder = new
MappedStatement.Builder(configuration, id, sqlSource);
+ statementBuilder.resource(resource);
Integer fetchSize = context.getIntAttribute("fetchSize", null);
statementBuilder.fetchSize(fetchSize);
statementBuilder.statementType(statementType);
@@ -384,8 +390,8 @@
ResultMapping.Builder builder = new ResultMapping.Builder(configuration,
property, column, javaTypeClass);
builder.jdbcType(jdbcTypeEnum);
- builder.nestedQueryId(nestedSelect);
- builder.nestedResultMapId(nestedResultMap);
+ builder.nestedQueryId(applyNamespace(nestedSelect));
+ builder.nestedResultMapId(applyNamespace(nestedResultMap));
builder.typeHandler(typeHandlerInstance);
return builder;
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
Fri Jan 2 20:55:55 2009
@@ -161,13 +161,14 @@
}
}
- @Test @Ignore
+ @Test
public void shouldSelectBlogWithPostsUsingSubSelect() throws Exception {
SqlSession session = sqlMapper.openSession();
try {
Blog blog = (Blog)
session.selectOne("com.domain.BlogMapper.selectBlogWithPostsUsingSubSelect", 1);
-
- System.out.println(blog.getTitle());
+ Assert.assertEquals("Jim Business", blog.getTitle());
+ Assert.assertEquals(2, blog.getPosts().size());
+ Assert.assertEquals("Corn nuts",blog.getPosts().get(0).getSubject());
} finally {
session.close();
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ErrorContextTest.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ErrorContextTest.java?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ErrorContextTest.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ErrorContextTest.java
Fri Jan 2 20:55:55 2009
@@ -6,25 +6,26 @@
@Test
public void shouldShowProgressiveErrorContextBuilding() {
- ErrorContext.set("somefile.xml", "some activity", "some object", "Here's
more info.");
- ErrorContext.description().startsWith("*** The error occurred in
somefile.xml.");
- ErrorContext.reset();
-
- ErrorContext.set("some activity", "some object", "Here's more info.");
- ErrorContext.description().startsWith("*** The error occurred while some
activity.");
- ErrorContext.reset();
-
- ErrorContext.set("some object", "Here's more info.");
- ErrorContext.description().startsWith("*** Check some object.");
- ErrorContext.reset();
-
- ErrorContext.set("Here's more info.");
- ErrorContext.description().startsWith("*** Here's more info.");
- ErrorContext.reset();
-
- ErrorContext.set(new Exception("test"));
- ErrorContext.description().startsWith("*** Cause: java.lang.Exception:
test");
- ErrorContext.reset();
+ ErrorContext context = ErrorContext.instance();
+ context.resource("somefile.xml").activity("some activity").object("some
object").message("Here's more info.");
+ context.toString().startsWith("### The error occurred in somefile.xml.");
+ context.reset();
+
+ context.activity("some activity").object("some object").message("Here's
more info.");
+ context.toString().startsWith("### The error occurred while some
activity.");
+ context.reset();
+
+ context.object("some object").message("Here's more info.");
+ context.toString().startsWith("### Check some object.");
+ context.reset();
+
+ context.message("Here's more info.");
+ context.toString().startsWith("### Here's more info.");
+ context.reset();
+
+ context.cause(new Exception("test"));
+ context.toString().startsWith("### Cause: java.lang.Exception: test");
+ context.reset();
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml?rev=730909&r1=730908&r2=730909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
Fri Jan 2 20:55:55 2009
@@ -9,15 +9,15 @@
<resultMap id="blogWithPosts" type="Blog">
<id property="id" column="id" />
<result property="title" column="title" />
- <collection property="posts" column="id" javaType="Post"
select="selectPostsForBlog" />
+ <collection property="posts" column="id" select="selectPostsForBlog" />
</resultMap>
<select id="selectBlogWithPostsUsingSubSelect" parameterType="int"
resultMap="blogWithPosts">
- select * from Blog where id = ${id}
+ select * from Blog where id = #{id}
</select>
<select id="selectPostsForBlog" parameterType="int" resultType="Post" >
- select * from Post where blog_id = ${blog_id}
+ select * from Post where blog_id = #{blog_id}
</select>
</mapper>
\ No newline at end of file