Author: cbegin Date: Sat Dec 5 02:53:51 2009 New Revision: 887486 URL: http://svn.apache.org/viewvc?rev=887486&view=rev Log: Fixed stack overflow on UnknownTypeHandler
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/UnknownTypeHandler.java Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/UnknownTypeHandler.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/UnknownTypeHandler.java?rev=887486&r1=887485&r2=887486&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/UnknownTypeHandler.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/UnknownTypeHandler.java Sat Dec 5 02:53:51 2009 @@ -7,6 +7,8 @@ public class UnknownTypeHandler extends BaseTypeHandler { + private static final ObjectTypeHandler OBJECT_TYPE_HANDLER = new ObjectTypeHandler(); + private TypeHandlerRegistry typeHandlerRegistry; public UnknownTypeHandler(TypeHandlerRegistry typeHandlerRegistry) { @@ -32,9 +34,12 @@ private TypeHandler resolveTypeHandler(Object parameter, JdbcType jdbcType) { TypeHandler handler; if (parameter == null) { - handler = typeHandlerRegistry.getTypeHandler(Object.class); + handler = OBJECT_TYPE_HANDLER; } else { handler = typeHandlerRegistry.getTypeHandler(parameter.getClass(), jdbcType); + if (handler instanceof UnknownTypeHandler) { + handler = OBJECT_TYPE_HANDLER; + } } return handler; }