You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2009/12/05 03:53:57 UTC

svn commit: r887486 - /ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/UnknownTypeHandler.java

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;
   }