public final void testInstancesUsedFromMultipleThreads() throws InterruptedException {
final Set set = Collections.synchronizedSet(new HashSet());
final List list = Collections.synchronizedList(new ArrayList());
final ComponentAdapter componentAdapter = new ThreadLocalComponentAdapter(new ConstructorInjectionComponentAdapter(
Touchable.class, SimpleTouchable.class, null));
final Touchable touchable = (Touchable)componentAdapter.getComponentInstance(null);
final Thread[] threads = {
new Thread(new Runner(touchable, list, set), "junit-1"), new Thread(new Runner(touchable, list, set), "junit-2"),
new Thread(new Runner(touchable, list, set), "junit-3"),};
for (int i = threads.length; i-- > 0;) {