@Test
	public void testAwaitAsyncExecutionFail() {
		
		SyncProcess proc = TestUtil.executionSuccessSyncProcess();
		
		IProcessComponent<Void> busyComp = new BusyComponent(TestUtil.executionFailComponent(true));
		IProcessComponent<?> asyncComp = new AsyncComponent<Void>(busyComp);
		proc.add(asyncComp);

		try {
			proc.execute();
			fail("ProcessExecutionException should have been thrown.");
		} catch (InvalidProcessStateException ex) {
			fail();
		} catch (ProcessExecutionException ex) {
			// expected
		}

		assertTrue(proc.getState() == ProcessState.EXECUTION_FAILED);
		assertTrue(asyncComp.getState() == ProcessState.EXECUTION_FAILED);
	}