title: Spring @Transactional rollbackFor not working
body: <p>I have a code like below</p>
  
  <pre><code>   public abstract class AffltTransactionService implements IAffltTransactionService {
      ....
  
          @Override
          @Transactional
          public void processTransactions(List&lt;? extends AffltTransaction&gt; transactions) {
              for (AffltTransaction transaction : transactions) {
                  if (transaction != null) {
                      processTransaction(transaction);
                  }
              }
          }
  
          private void processTransaction(AffltTransaction transaction) {
              try {
                  processTransactionInternal(transaction);
  
              } catch (Exception exception) {
                  affltTransactionError = new AffltTransactionError(null, null, "error", new Date());
                  saveAffltTransactionError(affltTransactionError);
                  log.error(exception.getLocalizedMessage());
              }
          }
  
          @Transactional(readOnly=false, rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
          public void processTransactionInternal(AffltTransaction transaction) {
  </code></pre>
  
  <p>processTransactionInternal throws ServiceUnAvailableException which extends RuntimeException</p>
  
  <p>But the transaction is not getting rolled back despite having rollbackFor = Exception.class .
  Can you please help.</p>