Skip to content

Commit 8bad363

Browse files
committed
not sure about those but some thread safe fields
Signed-off-by: Olivier Lamy <[email protected]>
1 parent be3db48 commit 8bad363

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

container/test-impl-base/src/main/java/org/jboss/arquillian/container/test/impl/client/ContainerEventController.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.jboss.arquillian.core.api.annotation.Inject;
4444
import org.jboss.arquillian.core.api.annotation.Observes;
4545
import org.jboss.arquillian.core.spi.EventContext;
46+
import org.jboss.arquillian.test.spi.annotation.TestScoped;
4647
import org.jboss.arquillian.test.spi.event.suite.AfterClass;
4748
import org.jboss.arquillian.test.spi.event.suite.AfterSuite;
4849
import org.jboss.arquillian.test.spi.event.suite.AfterTestLifecycleEvent;
@@ -68,7 +69,8 @@ public class ContainerEventController {
6869
private Instance<ContainerRegistry> containerRegistry;
6970

7071
@Inject
71-
private volatile Instance<DeploymentScenario> deploymentScenario;
72+
@TestScoped
73+
private Instance<DeploymentScenario> deploymentScenario;
7274

7375
@Inject
7476
private Event<ContainerMultiControlEvent> container;
@@ -138,7 +140,6 @@ private void createContext(EventContext<? extends TestEvent> context) {
138140
* TODO: This should not rely on direct Reflection, but rather access the metadata through some
139141
* common metadata layer.
140142
*/
141-
142143
private void lookup(Method method, ResultCallback callback) {
143144
DeploymentTargetDescription deploymentTarget = locateDeployment(method);
144145

core/impl-base/src/main/java/org/jboss/arquillian/core/impl/EventContextImpl.java

+10-5
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717
*/
1818
package org.jboss.arquillian.core.impl;
1919

20-
import java.util.ArrayList;
2120
import java.util.List;
21+
import java.util.concurrent.CopyOnWriteArrayList;
22+
2223
import org.jboss.arquillian.core.spi.EventContext;
2324
import org.jboss.arquillian.core.spi.InvocationException;
2425
import org.jboss.arquillian.core.spi.NonManagedObserver;
@@ -32,8 +33,8 @@
3233
*/
3334
public class EventContextImpl<T> implements EventContext<T> {
3435
private ManagerImpl manager;
35-
private List<ObserverMethod> interceptors;
36-
private List<ObserverMethod> observers;
36+
private List<ObserverMethod> interceptors = new CopyOnWriteArrayList<>();
37+
private List<ObserverMethod> observers = new CopyOnWriteArrayList<>();
3738
private NonManagedObserver<T> nonManagedObserver;
3839
private RuntimeLogger runtimeLogger;
3940

@@ -70,8 +71,12 @@ public EventContextImpl(ManagerImpl manager, List<ObserverMethod> interceptors,
7071
Validate.notNull(runtimeLogger, "Runtime logger must be specified");
7172

7273
this.manager = manager;
73-
this.interceptors = interceptors == null ? new ArrayList<ObserverMethod>() : interceptors;
74-
this.observers = observers == null ? new ArrayList<ObserverMethod>() : observers;
74+
if(interceptors!=null) {
75+
this.interceptors.addAll(interceptors);
76+
}
77+
if(observers!=null) {
78+
this.observers.addAll(observers);
79+
}
7580
this.nonManagedObserver = nonManagedObserver;
7681
this.event = event;
7782
this.runtimeLogger = runtimeLogger;

0 commit comments

Comments
 (0)