Java Code Examples for javax.transaction.TransactionRolledbackException

The following examples show how to use javax.transaction.TransactionRolledbackException. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
@Test
public void testCorrectHandlerUsedForSubclass() throws Throwable {
	MyThrowsHandler th = new MyThrowsHandler();
	ThrowsAdviceInterceptor ti = new ThrowsAdviceInterceptor(th);
	// Extends RemoteException
	TransactionRolledbackException ex = new TransactionRolledbackException();
	MethodInvocation mi = mock(MethodInvocation.class);
	given(mi.proceed()).willThrow(ex);
	try {
		ti.invoke(mi);
		fail();
	}
	catch (Exception caught) {
		assertEquals(ex, caught);
	}
	assertEquals(1, th.getCalls());
	assertEquals(1, th.getCalls("remoteException"));
}
 
Example 2
/**
 * Create TransactionRolledbackException with no-arg constructor
 */
@Test
public void test1() {
    TransactionRolledbackException ex = new TransactionRolledbackException();
    assertTrue(ex.getMessage() == null
            && ex.getCause() == null);
}
 
Example 3
/**
 * Create TransactionRolledbackException with message
 */
@Test
public void test2() {
    TransactionRolledbackException ex = new TransactionRolledbackException(reason);
    assertTrue(ex.getMessage().equals(reason)
            && ex.getCause() == null);
}
 
Example 4
/**
 * De-Serialize a TransactionRolledbackException from JDBC 4.0 and make sure
 * you can read it back properly
 */
@Test
public void test3() throws Exception {

    ObjectInputStream ois = new ObjectInputStream(
            new ByteArrayInputStream(SerializedTransactionExceptions.TRBE_DATA));
    TransactionRolledbackException ex = (TransactionRolledbackException) ois.readObject();
    assertTrue(reason.equals(ex.getMessage())
            && ex.getCause() == null);
}
 
Example 5
Source Project: openwebbeans-meecrowave   Source File: InterceptorBase.java    License: Apache License 2.0 5 votes vote down vote up
private Exception unwrap(final Exception e) {
    Exception error = e;
    while (error != null && (SystemException.class.isInstance(error) || TransactionRolledbackException.class.isInstance(error))) {
        final Throwable cause = error.getCause();
        if (cause == error) {
            break;
        }
        error = Exception.class.isInstance(cause) ? Exception.class.cast(cause) : null;
    }
    if (RollbackException.class.isInstance(error) && Exception.class.isInstance(error.getCause())) {
        error = Exception.class.cast(error.getCause());
    }
    return error;
}
 
Example 6
@Test
public void test() throws Exception {
    final Exception exception = Exception.class.cast(deserialize(serialize(new org.apache.openejb.core.transaction.TransactionRolledbackException("foo", new NullPointerException()))));
    assertThat(exception, instanceOf(TransactionRolledbackException.class));
    assertThat(exception, not(instanceOf(org.apache.openejb.core.transaction.TransactionRolledbackException.class)));
    assertThat(exception.getMessage(), containsString("foo"));
    assertThat(exception.getMessage(), containsString("NullPointerException"));
    exception.printStackTrace();
}
 
Example 7
Source Project: tomee   Source File: EJBInvocationHandler.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Renamed method so it shows up with a much more understandable purpose as it
 * will be the top element in the stacktrace
 *
 * @param e      Throwable
 * @param method Method
 */
protected Throwable convertException(final Throwable e, final Method method) {
    if (!remote && e instanceof RemoteException) {
        if (e instanceof TransactionRequiredException) {
            return new TransactionRequiredLocalException(e.getMessage()).initCause(getCause(e));
        }
        if (e instanceof TransactionRolledbackException) {
            return new TransactionRolledbackLocalException(e.getMessage()).initCause(getCause(e));
        }

        /**
         * If a client attempts to invoke a method on a removed bean's business interface,
         * we must throw a javax.ejb.NoSuchEJBException. If the business interface is a
         * remote business interface that extends java.rmi.Remote, the
         * java.rmi.NoSuchObjectException is thrown to the client instead.
         * See EJB 3.0, section 4.4
         */
        if (e instanceof NoSuchObjectException) {
            if (java.rmi.Remote.class.isAssignableFrom(method.getDeclaringClass())) {
                return e;
            } else {
                return new NoSuchEJBException(e.getMessage()).initCause(getCause(e));
            }
        }
        if (e instanceof AccessException) {
            return new AccessLocalException(e.getMessage()).initCause(getCause(e));
        }

        return new EJBException(e.getMessage()).initCause(getCause(e));
    }

    if (remote && e instanceof EJBAccessException) {
        if (e.getCause() instanceof Exception) {
            return new AccessException(e.getMessage(), (Exception) e.getCause());
        } else {
            return new AccessException(e.getMessage());
        }
    }
    if (!remote && e instanceof EJBTransactionRolledbackException) {
        return new TransactionRolledbackLocalException(e.getMessage()).initCause(getCause(e));
    }
    return e;
}
 
Example 8
Source Project: tomee   Source File: BaseEjbProxyHandler.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Renamed method so it shows up with a much more understandable purpose as it
 * will be the top element in the stacktrace
 *
 * @param e        Throwable
 * @param method   Method
 * @param interfce Class
 */
protected Throwable convertException(Throwable e, final Method method, final Class interfce) {
    final boolean rmiRemote = Remote.class.isAssignableFrom(interfce);
    if (e instanceof TransactionRequiredException) {
        if (!rmiRemote && interfaceType.isBusiness()) {
            return new EJBTransactionRequiredException(e.getMessage()).initCause(getCause(e));
        } else if (interfaceType.isLocal()) {
            return new TransactionRequiredLocalException(e.getMessage()).initCause(getCause(e));
        } else {
            return e;
        }
    }
    if (e instanceof TransactionRolledbackException) {
        if (!rmiRemote && interfaceType.isBusiness()) {
            return new EJBTransactionRolledbackException(e.getMessage()).initCause(getCause(e));
        } else if (interfaceType.isLocal()) {
            return new TransactionRolledbackLocalException(e.getMessage()).initCause(getCause(e));
        } else {
            return e;
        }
    }
    if (e instanceof NoSuchObjectException) {
        if (!rmiRemote && interfaceType.isBusiness()) {
            return new NoSuchEJBException(e.getMessage()).initCause(getCause(e));
        } else if (interfaceType.isLocal()) {
            return new NoSuchObjectLocalException(e.getMessage()).initCause(getCause(e));
        } else {
            return e;
        }
    }
    if (e instanceof AccessException) {
        if (!rmiRemote && interfaceType.isBusiness()) {
            return new AccessLocalException(e.getMessage()).initCause(getCause(e));
        } else if (interfaceType.isLocal()) {
            return new AccessLocalException(e.getMessage()).initCause(getCause(e));
        } else {
            return e;
        }
    }
    if (e instanceof RemoteException) {
        if (!rmiRemote && interfaceType.isBusiness()) {
            return new EJBException(e.getMessage()).initCause(getCause(e));
        } else if (interfaceType.isLocal()) {
            return new EJBException(e.getMessage()).initCause(getCause(e));
        } else {
            return e;
        }
    }

    for (final Class<?> type : method.getExceptionTypes()) {
        if (type.isAssignableFrom(e.getClass())) {
            return e;
        }
    }

    // Exception is undeclared
    // Try and find a runtime exception in there
    while (e.getCause() != null && !(e instanceof RuntimeException)) {
        e = e.getCause();
    }
    return e;
}