Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UnexpectedRollbackException - JTA transaction unexpectedly rolled back

When I run the below code, I get UnexpectedRollbackException instead of ArrayIndexOutOfBoundsException

Environment: Weblogic, Spring, Hibernate, JTA and EJB

Code:

public class ServiceImpl    
{        
    @Transactional  
    public void test()  
    {                   
        throw new ArrayIndexOutOfBoundsException();                 
    }   
}



public class WebLayerClass  
{           
    service.test(); 
}  

log:

Caused by: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is weblogic.transaction.RollbackException: setRollbackOnly called on transaction
    at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1024) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:757) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:726) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:478) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:272) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) ~[spring-aop-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at com.sun.proxy.$Proxy261.update(Unknown Source) ~[na:na]
    at de.unicreditgroup.esa.service.webtool.sql.WebToolSqlServiceImpl.updateSqlQuery(WebToolSqlServiceImpl.java:234) ~[de-unicreditgroup-esa-services-2.1.0-SNAPSHOT.jar:na]
like image 464
Raghu ram Avatar asked Oct 17 '25 02:10

Raghu ram


1 Answers

I guess this is due to Hibernate has added wrapper on your exception. Because you are trying to throw RunTimeException inside a transaction,hibernate converts this to it's own UnexpectedRollbackException exception.

See:- Exception doc

like image 149
dReAmEr Avatar answered Oct 18 '25 15:10

dReAmEr