use of com.arjuna.wsc.InvalidStateException in project narayana by jbosstm.
the class EnduranceTest method doRegisterError.
public void doRegisterError(final String messageId, int count) throws Exception {
final String protocolIdentifier;
final W3CEndpointReference participantProtocolService = TestUtil11.getProtocolParticipantEndpoint("participant");
final CoordinationContextType coordinationContext = new CoordinationContextType();
CoordinationContextType.Identifier identifierInstance = new CoordinationContextType.Identifier();
coordinationContext.setCoordinationType(TestUtil.COORDINATION_TYPE);
coordinationContext.setIdentifier(identifierInstance);
identifierInstance.setValue("identifier");
coordinationContext.setRegistrationService(TestUtil11.getRegistrationEndpoint(identifierInstance.getValue()));
W3CEndpointReference coordinator = null;
switch(count) {
case 0:
protocolIdentifier = TestUtil.INVALID_PROTOCOL_PROTOCOL_IDENTIFIER;
try {
coordinator = RegistrationCoordinator.register(coordinationContext, messageId, participantProtocolService, protocolIdentifier);
} catch (InvalidProtocolException ipe) {
}
if (coordinator != null) {
fail("expected invalid protocol exception");
}
break;
case 1:
protocolIdentifier = TestUtil.INVALID_STATE_PROTOCOL_IDENTIFIER;
try {
coordinator = RegistrationCoordinator.register(coordinationContext, messageId, participantProtocolService, protocolIdentifier);
} catch (InvalidStateException ise) {
}
if (coordinator != null) {
fail("expected invalid state exception");
}
break;
case 3:
protocolIdentifier = TestUtil.NO_ACTIVITY_PROTOCOL_IDENTIFIER;
try {
coordinator = RegistrationCoordinator.register(coordinationContext, messageId, participantProtocolService, protocolIdentifier);
} catch (CannotRegisterException cre) {
}
if (coordinator != null) {
fail("expected cannot register exception");
}
break;
default:
protocolIdentifier = TestUtil.ALREADY_REGISTERED_PROTOCOL_IDENTIFIER;
try {
coordinator = RegistrationCoordinator.register(coordinationContext, messageId, participantProtocolService, protocolIdentifier);
} catch (CannotRegisterException cre) {
}
if (coordinator != null) {
fail("expected cannot register exception");
}
break;
}
final RegisterDetails details = testRegistrationCoordinatorProcessor.getRegisterDetails(messageId, 10000);
final RegisterType requestRegister = details.getRegister();
final MAP requestMap = details.getMAP();
final ArjunaContext requestArjunaContext = details.getArjunaContext();
assertEquals(requestMap.getTo(), TestUtil11.registrationCoordinatorService);
assertEquals(requestMap.getMessageID(), messageId);
assertNotNull(requestArjunaContext);
assertEquals(requestArjunaContext.getInstanceIdentifier().getInstanceIdentifier(), identifierInstance.getValue());
;
assertEquals(protocolIdentifier, requestRegister.getProtocolIdentifier());
assertNotNull(protocolIdentifier, requestRegister.getParticipantProtocolService());
}
use of com.arjuna.wsc.InvalidStateException in project narayana by jbosstm.
the class UserTransactionStandaloneImple method enlistCompletionParticipants.
/*
* enlist the client for the completiopn protocol so it can commit or ro0ll back the transaction
*/
private final void enlistCompletionParticipants() throws WrongStateException, UnknownTransactionException, SystemException {
TransactionManagerImple tm = (TransactionManagerImple) TransactionManager.getTransactionManager();
final TxContextImple currentTx = (TxContextImple) tm.currentTransaction();
if (currentTx == null)
throw new UnknownTransactionException();
final String id = currentTx.identifier();
W3CEndpointReference completionCoordinator = null;
try {
completionCoordinator = tm.registerParticipant(null, AtomicTransactionConstants.WSAT_SUB_PROTOCOL_COMPLETION_RPC);
} catch (InvalidProtocolException ex) {
ex.printStackTrace();
throw new SystemException(ex.toString());
} catch (InvalidStateException ex) {
throw new WrongStateException();
} catch (CannotRegisterException ex) {
// cause could actually be no activity or already registered
throw new UnknownTransactionException();
}
_completionCoordinators.put(id, completionCoordinator);
}
Aggregations