@Test
public void testProcessCallableWithException() throws Exception {

	// ProcessException
	ProcessChannel<Serializable> processChannel =
		_localProcessExecutor.execute(
			_createJPDAProcessConfig(_JPDA_OPTIONS1),
			() -> {
				throw new ProcessException("ROOT ProcessException");
			});
	NoticeableFuture<Serializable> noticeableFuture =
		processChannel.getProcessNoticeableFuture();
	try {
		noticeableFuture.get();
		Assert.fail();
	}
	catch (ExecutionException executionException) {
		Throwable throwable = executionException.getCause();
		Assert.assertSame(ProcessException.class, throwable.getClass());
		Assert.assertEquals(
			"ROOT ProcessException", throwable.getMessage());
	}
	// NullPointerException
	processChannel = _localProcessExecutor.execute(
		_createJPDAProcessConfig(_JPDA_OPTIONS1),
		() -> {
			throw new NullPointerException("ROOT NullPointerException");
		});
	noticeableFuture = processChannel.getProcessNoticeableFuture();
	try {
		noticeableFuture.get();
		Assert.fail();
	}
	catch (ExecutionException executionException) {
		Throwable throwable = executionException.getCause();
		Assert.assertSame(ProcessException.class, throwable.getClass());
		throwable = throwable.getCause();
		Assert.assertSame(NullPointerException.class, throwable.getClass());
		Assert.assertEquals(
			"ROOT NullPointerException", throwable.getMessage());
	}
}