Por qué el método bean de sesión arroja EjbTransactionRolledbackException cuando se lanzó RuntimeException

Estoy tratando de persistir la entidad con validación de restricción, cuando la invocación persiste: hay una restricción que se lanza y la persona que llama recibeEjbTransactionRolledbackException... así que trato de llamar a la validación explícita y arrojarConstraintViolationException/RuntimeException y aún así la persona que llama recibeEjbTransactionRolledbackException... cuando tiroMyException se extiendeException - la persona que llama recibeMyException

Incluso cuando llamo explícitosc.setRollBackOnly todavía sucedió :(

Este no debería ser el comportamiento.

¿que esta pasando?

Configuración:

Netbeans 6.9.1 Glassfish 3.0.1 JPA 2.0 (EclipseLink) EJB 3.1

¡¡¡Gracias!!!

@Stateless
public class My {

@PersistenceContext
EntityManager em;

@Resource
Validator  validator;

public Order checkout(Order order) {
    Set<ConstraintViolation<Order>> set = validator.validate(order, Default.class);

    if (!set.isEmpty()) {
        sc.setRollbackOnly();
        //throw new ConstraintViolationException(new HashSet<ConstraintViolation<?>>(set));
        throw new RuntimeException();
    }

    this.em.persist(order);
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta