@AdviseWith(adviceClasses = ConfigurableUtilAdvice.class)
@NewEnv(type = NewEnv.Type.CLASSLOADER)
@Test
public void testConcurrentCreateConfigurable() throws Exception {

	Callable<TestConfiguration> callable =
		() -> ConfigurableUtil.createConfigurable(
			TestConfiguration.class,
			Collections.singletonMap(
				"testReqiredString", "testReqiredString"));
	FutureTask<TestConfiguration> futureTask1 = new FutureTask<>(callable);
	FutureTask<TestConfiguration> futureTask2 = new FutureTask<>(callable);
	Thread thread1 = new Thread(
		futureTask1, "Configurable Util Test Thread 1");
	Thread thread2 = new Thread(
		futureTask2, "Configurable Util Test Thread 2");
	thread1.start();
	thread2.start();
	ConfigurableUtilAdvice.waitUntilBlock();
	ConfigurableUtilAdvice.unblock();
	_assertTestConfiguration(futureTask1.get(), "testReqiredString");
	_assertTestConfiguration(futureTask2.get(), "testReqiredString");
}