[
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