[ 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