@Test
public void testSubprocessReactorAbort() throws Exception {

	List<ProcessLog> processLogs = new ArrayList<>();
	ProcessConfig.Builder builder = new ProcessConfig.Builder();
	builder.setArguments(_createArguments(_JPDA_OPTIONS1));
	builder.setBootstrapClassPath(System.getProperty("java.class.path"));
	builder.setProcessLogConsumer(
		processLog -> {
			if (processLog.getLevel() == ProcessLog.Level.ERROR) {
				processLogs.add(processLog);
			}
		});
	builder.setReactClassLoader(new URLClassLoader(new URL[0], null));
	ProcessChannel<Boolean> processChannel = _localProcessExecutor.execute(
		builder.build(), Operations.IS_ATTACHED);
	Future<Boolean> future = processChannel.getProcessNoticeableFuture();
	try {
		future.get();
		Assert.fail();
	}
	catch (ExecutionException executionException) {
		Throwable throwable = executionException.getCause();
		Assert.assertSame(
			ClassNotFoundException.class, throwable.getClass());
	}
	Assert.assertEquals(processLogs.toString(), 1, processLogs.size());
	ProcessLog processLog = processLogs.get(0);
	Assert.assertEquals("Abort subprocess piping", processLog.getMessage());
	Throwable throwable = processLog.getThrowable();
	Assert.assertSame(ClassNotFoundException.class, throwable.getClass());
}