use of org.mule.runtime.api.connection.ConnectionException in project mule by mulesoft.
the class ExceptionUtilsTestCase method extractExceptionOfType.
@Test
public void extractExceptionOfType() {
Exception exception = new Exception(new Throwable(new ConnectionException(new IOException(new NullPointerException()))));
Optional<IOException> ioException = extractOfType(exception, IOException.class);
assertThat(ioException.isPresent(), is(true));
assertThat(ioException.get().getCause(), instanceOf(NullPointerException.class));
}
use of org.mule.runtime.api.connection.ConnectionException in project mule by mulesoft.
the class ExceptionUtilsTestCase method extractExceptionCauseOf.
@Test
public void extractExceptionCauseOf() {
Exception exception = new Exception(new IOException(new ConnectionException(ERROR_MESSAGE, new NullPointerException())));
Optional<? extends Throwable> throwable = extractCauseOfType(exception, IOException.class);
assertThat(throwable.isPresent(), is(true));
assertThat(throwable.get(), instanceOf(ConnectionException.class));
assertThat(throwable.get().getMessage(), is(ERROR_MESSAGE));
}
use of org.mule.runtime.api.connection.ConnectionException in project mule by mulesoft.
the class MessagingExceptionResolverTestCase method resolveWithParentInChain.
@Test
public void resolveWithParentInChain() {
ErrorType withParent = ErrorTypeBuilder.builder().parentErrorType(CONNECTION).identifier("CONNECT").namespace("TEST").build();
Optional<Error> surfaceError = mockError(withParent, new Exception());
when(event.getError()).thenReturn(surfaceError);
Exception cause = new ConnectionException("Some Connection Error", new Exception());
MessagingException me = newMessagingException(cause, event, processor);
MessagingException resolved = resolver.resolve(me, context);
assertExceptionErrorType(resolved, withParent);
assertExceptionMessage(resolved.getMessage(), ERROR_MESSAGE);
}
use of org.mule.runtime.api.connection.ConnectionException in project mule by mulesoft.
the class LifecycleAwareConfigurationInstance method testConnectivity.
private void testConnectivity() throws MuleException {
ConnectionProvider provider = connectionProvider.get();
if (provider instanceof NoConnectivityTest) {
return;
}
Scheduler retryScheduler = schedulerService.ioScheduler();
RetryPolicyTemplate retryTemplate = connectionManager.getRetryTemplateFor(provider);
ReconnectionConfig reconnectionConfig = connectionManager.getReconnectionConfigFor(provider);
RetryCallback retryCallback = new RetryCallback() {
@Override
public void doWork(RetryContext context) throws Exception {
Lock lock = testConnectivityLock;
if (lock != null) {
final boolean lockAcquired = lock.tryLock();
if (lockAcquired) {
LOGGER.info("Doing testConnectivity() for config " + getName());
try {
ConnectionValidationResult result = connectionManager.testConnectivity(LifecycleAwareConfigurationInstance.this);
if (result.isValid()) {
context.setOk();
} else {
if ((reconnectionConfig.isFailsDeployment())) {
context.setFailed(result.getException());
throw new ConnectionException(format("Connectivity test failed for config '%s'", getName()), result.getException());
} else {
if (LOGGER.isInfoEnabled()) {
LOGGER.info(format("Connectivity test failed for config '%s'. Application deployment will continue. Error was: ", getName(), result.getMessage()), result.getException());
}
}
}
} finally {
lock.unlock();
}
} else {
LOGGER.warn("There is a testConnectivity() already running for config " + getName());
}
}
}
@Override
public String getWorkDescription() {
return format("Testing connectivity for config '%s'", getName());
}
@Override
public Object getWorkOwner() {
return value;
}
};
try {
retryTemplate.execute(retryCallback, retryScheduler);
} catch (Exception e) {
throw new DefaultMuleException(createStaticMessage(format("Could not perform connectivity testing for config '%s'", getName())), e);
} finally {
if (retryScheduler != null) {
retryScheduler.stop();
}
}
}
use of org.mule.runtime.api.connection.ConnectionException in project mule by mulesoft.
the class ExtensionMessageSourceTestCase method failWithConnectionExceptionWhenStartingAndGetRetryPolicyExhausted.
@Test
public void failWithConnectionExceptionWhenStartingAndGetRetryPolicyExhausted() throws Exception {
messageSource.initialise();
final ConnectionException connectionException = new ConnectionException(ERROR_MESSAGE);
doThrow(new RuntimeException(connectionException)).when(source).onStart(sourceCallback);
final Throwable throwable = catchThrowable(messageSource::start);
assertThat(throwable, is(instanceOf(RetryPolicyExhaustedException.class)));
assertThat(throwable, is(exhaustedBecauseOf(connectionException)));
verify(source, times(3)).onStart(sourceCallback);
}
Aggregations