title: SpringBatch does rollback though no-rollback-exception-classes are defined
body: <p>I got the following job:</p>
  
  <pre><code>&lt;batch:job id="importCardsJob" job-repository="jobRepository"&gt;
      &lt;batch:step id="importCardStep"&gt;
          &lt;batch:tasklet transaction-manager="transactionManager"&gt;
              &lt;batch:chunk reader="cardItemReader" writer="cardItemWriter"
                  commit-interval="5" skip-limit="10"&gt;
                  &lt;batch:skippable-exception-classes&gt;
                      &lt;batch:include class="java.lang.Throwable" /&gt;   
                  &lt;/batch:skippable-exception-classes&gt;
              &lt;/batch:chunk&gt;
              &lt;batch:no-rollback-exception-classes&gt;
                  &lt;batch:include class="job.batch.exceptions.BatchImportException"/&gt;
              &lt;/batch:no-rollback-exception-classes&gt;
              &lt;batch:listeners&gt;
                  &lt;batch:listener ref="skipListener" /&gt;
              &lt;/batch:listeners&gt;
          &lt;/batch:tasklet&gt;
      &lt;/batch:step&gt;
      &lt;batch:listeners&gt;
          &lt;batch:listener ref="authenticationJobListener" /&gt;
          &lt;batch:listener ref="jobListener" /&gt;
      &lt;/batch:listeners&gt;
  &lt;/batch:job&gt;
  </code></pre>
  
  <p>I am importing certain data from a csv. If any problem occurrs, it should be skipped and the next line should be read. This is why i added the skippable-exception-classes. My writer stores cards to the db including a bundle of 5 cards (defined by comit-interval). I don't want to save only one single card every step, that's why i added the no-rollback-exception-classes. If the csv contains any corrupted data, a BatchImportException (written by me) should be thrown and the import should go on. By default any exceptions thrown from the ItemWriter will cause the transaction controlled by the Step to rollback. But i don't want this. That's why i added the no-rollback-exception-classes. Sadly, after a BatchImportException is thrown, SpringBatch still does a rollback. I even tried the following:</p>
  
  <pre><code>&lt;batch:no-rollback-exception-classes&gt;
      &lt;batch:include class="java.lang.Throwable"/&gt;
  &lt;/batch:no-rollback-exception-classes&gt;
  </code></pre>
  
  <p>But even in this case, SpringBatch does a rollback. Why is that?</p>