title: Spring Transaction : rollbackfor and norollbackfor both defined
body: <p>Here is the problem I got in an application I have to maintain:</p>
  <p>I have a first class with the annotation <code>@Transactional(rollbackFor = CustomExceptionA.class)</code>
  Then in the following code I call a method of <code>@Transactional(noRollbackFor = CustomExceptionB.class)</code>
  NB : <code>CustomExceptionA</code> or <code>CustomExceptionB</code> have only one common ancestor which is <code>Exception</code>.</p>
  <p>And of course, when I execute the code an exception is raised which is neither of type <code>CustomExceptionA</code> or <code>CustomExceptionB</code> nor does it subclasses them.</p>
  <p>So the question is simple:<br />
  <strong>What happens to the transaction in that case?</strong> Does it commit? Does it rollback?  Does it hold on an unfinished state waiting for the application to do something (which is actually an answer that might explain some ugly things seen in this application)? and moreover: <strong>why?</strong></p>