The StackOverFlowError commons-dbcp2 rollback

245 views Asked by At

Suddenly in one of the environment we see the below repeated lines of dbcp2 and eventually the StackOverFlowError.

The Hibernate (3.6.10) getHibernateSession().getTransaction().rollback() is called in our code. It uses commons-dbcp2(2.6.0). The jdbcdriver is ojdbc8-12.2.0.1, Oracle 12C, and Java is 1.8.

The below lines repeat for more than 3000 times. I suspect some bug in dbcp2? why does it loops in own methods. If anyone of you have come across similar issue kindly share. Thinking to update the dependencies to latest for hibernate, commons-dbcp2 and commons-io.


            at org.apache.commons.pool2.impl.GenericKeyedObjectPool.toStringAppendFields(GenericKeyedObjectPool.java:1605)
            at org.apache.commons.pool2.BaseObject.toString(BaseObject.java:31)
            at org.apache.commons.dbcp2.PoolingConnection.toString(PoolingConnection.java:606)
            at java.lang.String.valueOf(String.java:3408)
            at java.lang.StringBuilder.append(StringBuilder.java:516)
            at org.apache.commons.pool2.impl.GenericKeyedObjectPool.toStringAppendFields(GenericKeyedObjectPool.java:1605)
            at org.apache.commons.pool2.BaseObject.toString(BaseObject.java:31)
            at org.apache.commons.dbcp2.PoolingConnection.toString(PoolingConnection.java:606)
            at java.lang.String.valueOf(String.java:3408)
            at java.lang.StringBuilder.append(StringBuilder.java:516)
            at org.apache.commons.pool2.impl.GenericKeyedObjectPool.toStringAppendFields(GenericKeyedObjectPool.java:1605)

[Updated:20210818] The code snippet which we use to rollback, as sample is below:

this.getHibernateSession().getTransaction().rollback();
this.getHibernateSession().clear();
this.getHibernateSession().getTransaction().begin();
        
0

There are 0 answers