Мы обновили весеннюю версию до 4.3.9, и после обновления мы получаем исключение отката транзакции
org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor.invoke(ThrowsAdviceInterceptor.java:125)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy65.bulkDeleteAreas(Unknown Source)
at com.nis.compass.test.functional.geocoding.GeocodingManagerTestHelper.bulkDeleteAreas(GeocodingManagerTestHelper.java:188)
здесь представлена конфигурация xml для bean-компонента и родительского bean-компонентаactionProxy.Мы ничего не изменили в xml, но все равно он вызывает исключение транзакции.
<bean id="geocodingManager" parent="baseTransactionProxy">
<property name="target">
<bean class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>com.nis.compass.geocoding.service.GeocodingManagerInternal</value>
</property>
<property name="target" ref="geocodingManagerImpl" />
<!-- list of interceptors, "Advice"s, and Advisors to add to the interceptor chain -->
<property name="interceptorNames">
<list>
<value>performanceMonitorProxy</value>
</list>
</property>
</bean>
</property>
<bean id="baseTransactionProxy" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="compassTransactionManager" />
</property>
<property name="transactionAttributes">
<props>
<!-- Always propagate transaction, rolling back on any checked or unchecked exception -->
<prop key="*">PROPAGATION_REQUIRED,-Throwable</prop>
</props>
</property>
<property name="preInterceptors">
<list>
<bean class="com.nis.compass.common.interceptor.ExceptionTranslationInterceptor" />
</list>
</property>