code: private boolean canRecover(final TxConfig config, final Throwable e) {
          boolean commit = config.getRollbackOn().size() > 0;
  
          //check rollback clauses
          for (Class<? extends Exception> rollBackOn : config.getRollbackOn()) {
  
              //if one matched, try to perform a rollback
              if (rollBackOn.isInstance(e)) {
                  commit = false;
                  break;
              }
          }
  
          //check ignore clauses (supercedes rollback clause)
          for (Class<? extends Exception> exceptOn : config.getIgnore()) {
              //An exception to the rollback clause was found, DON'T rollback
              // (i.e. commit and throw anyway)
              if (exceptOn.isInstance(e)) {
                  commit = true;
                  break;
              }
          }
          return commit;
      }
docs: Returns True if rollback DID NOT HAPPEN (i.e. if commit should continue).
  
  @param config transaction configuration
  @param e      The exception to test for rollback