[ 
http://issues.apache.org/jira/browse/IBATIS-338?page=comments#action_12434043 ] 
            
adamb commented on IBATIS-338:
------------------------------

This is acually an iBATIS fault after all.
Throwable.java has a getCause() method which returns null if cause==this.
NestedSQLException.java redefines a cause member variable, and doesn't user 
super.getCause().

Simplest fix is to:

public String toString() {
    if (super.getCause() == null) {
      return super.toString();
    } else {
      return super.toString() + CAUSED_BY + super.getCause().toString();
    }
  }

but it would be cleaner to remove the cause member variable and the getCause 
override altogether.

> NestedSqlException stack overflow
> ---------------------------------
>
>                 Key: IBATIS-338
>                 URL: http://issues.apache.org/jira/browse/IBATIS-338
>             Project: iBatis for Java
>          Issue Type: Bug
>    Affects Versions: 2.1.5
>            Reporter: adamb
>
> ...
> at 
> com.ibatis.common.jdbc.exception.NestedSQLException.toString(NestedSQLException.java:113)
> at 
> com.ibatis.common.jdbc.exception.NestedSQLException.toString(NestedSQLException.java:113)
> ...
> In the code you can see that if cause==this then the 
> NestedSqlException.toString() method will infinitely recurse causing a stack 
> overflow.  I'm not sure what is causeing (cause==this) to be set to this 
> though...

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to