java - JSR-352 : Stackoverflow error in DB2DataStoreHelper.findMappingClass -


caused by: java.lang.stackoverflowerror @ java.lang.integer.valueof(integer.java:844) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:430) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) @ com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) @

........

this com.ibm.websphere.rsadapter.db2datastorehelper.findmappingclass(db2datastorehelper.java:445) keeps happening till there stackoverflow error. error occurs when call executebatch() in writers writeitems() not sure or why happens.

this question asked 3 years ago user facing similar problem. there no responses , re running did not help.

infinite loop in db2 jdbc driver

this looks bug how sqlexception getting created.

what happening in db2datastorehelper.findmappingclass() in scenario this:

public class<?> findmappingclass(sqlexception e) {     // check if 'e' in error map anywhere,      // if is, return class.      // otherwise, check next exception in chain     sqlexception next = e.getnextexception();     return findmappingclass(next); } 

so if have 2 or more sqlexceptions create cycle, such as:

sqlexception = new sqlexception(); sqlexception b = new sqlexception();  a.setnextexception(b); b.setnextexception(a); 

then exception invalid, because creates cycle. therefore, code attempts process sqlexception chain run infinite loop observing.

review application code make sure there no cycles created in of exceptions.


Comments