title: Transaction rolled back exception after upgrading spring 1.2 to spring 4.3.9
body: <p>We have upgraded spring version to 4.3.9 and after upgrading we are getting transaction rollback exception</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>here is the xml configuration for the bean and the parent transactionProxy bean.
  We have not changed anything in the xml but still it is throwing transaction exception.</p>
  
  <pre><code>  &lt;bean id="geocodingManager" parent="baseTransactionProxy"&gt;
  &lt;property name="target"&gt;
    &lt;bean class="org.springframework.aop.framework.ProxyFactoryBean"&gt;
      &lt;property name="proxyInterfaces"&gt;
        &lt;value&gt;com.nis.compass.geocoding.service.GeocodingManagerInternal&lt;/value&gt;
      &lt;/property&gt;
      &lt;property name="target" ref="geocodingManagerImpl" /&gt;
      &lt;!-- list of interceptors, "Advice"s, and Advisors to add to the interceptor chain --&gt;
      &lt;property name="interceptorNames"&gt;
        &lt;list&gt;
          &lt;value&gt;performanceMonitorProxy&lt;/value&gt;
        &lt;/list&gt;
      &lt;/property&gt;
    &lt;/bean&gt;
  &lt;/property&gt;
  </code></pre>
  
  <p></p>
  
  <pre><code>  &lt;bean id="baseTransactionProxy" abstract="true"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"&gt;
  &lt;property name="transactionManager"&gt;
    &lt;ref local="compassTransactionManager" /&gt;
  &lt;/property&gt;
  &lt;property name="transactionAttributes"&gt;
    &lt;props&gt;
      &lt;!-- Always propagate transaction, rolling back on any checked or unchecked exception --&gt;
      &lt;prop key="*"&gt;PROPAGATION_REQUIRED,-Throwable&lt;/prop&gt;
    &lt;/props&gt;
  &lt;/property&gt;
  &lt;property name="preInterceptors"&gt;
    &lt;list&gt;
      &lt;bean class="com.nis.compass.common.interceptor.ExceptionTranslationInterceptor" /&gt;
    &lt;/list&gt;
  &lt;/property&gt;
  </code></pre>
  
  <p></p>