@Test
public void testSubprocessReactorPipingBackWriteAborted() throws Exception {

	List<ProcessLog> processLogs = new ArrayList<>();
	ProcessChannel<Serializable> processChannel =
		_localProcessExecutor.execute(
			_createJPDAProcessConfig(
				_JPDA_OPTIONS1,
				processLog -> {
					if (processLog.getLevel() == ProcessLog.Level.WARN) {
						processLogs.add(processLog);
					}
				}),
			Operations.PIPING_BACK_WRITE_ABORTED);
	NoticeableFuture<Serializable> 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(
			NotSerializableException.class, throwable.getClass());
		Assert.assertEquals(processLogs.toString(), 1, processLogs.size());
		ProcessLog processLog = processLogs.get(0);
		Assert.assertEquals(
			"Caught a write aborted exception", processLog.getMessage());
		throwable = processLog.getThrowable();
		Assert.assertSame(
			WriteAbortedException.class, throwable.getClass());
		throwable = throwable.getCause();
		Assert.assertSame(
			NotSerializableException.class, throwable.getClass());
	}
}