You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:19:35 UTC
[sling-org-apache-sling-testing-osgi-mock] 06/12: SLING-4845 -
MockBundleContext is not thread-safe
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.testing.osgi-mock-1.5.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-osgi-mock.git
commit 64dc2d084b4c0ab45fb206fe3d0aceafc7bd3afc
Author: Julian Sedding <js...@apache.org>
AuthorDate: Mon Jun 29 18:11:57 2015 +0000
SLING-4845 - MockBundleContext is not thread-safe
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/osgi-mock@1688279 13f79535-47bb-0310-9956-ffa450edef68
---
.../sling/testing/mock/osgi/MockBundleContext.java | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java b/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java
index 540babb..e37f8e9 100644
--- a/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java
+++ b/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java
@@ -23,12 +23,12 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Dictionary;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.felix.framework.FilterImpl;
@@ -47,19 +47,26 @@ import org.osgi.framework.ServiceFactory;
import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.collect.ImmutableList;
+import static java.util.Collections.synchronizedList;
+import static java.util.Collections.synchronizedSortedSet;
+
/**
* Mock {@link BundleContext} implementation.
*/
class MockBundleContext implements BundleContext {
+ private static final Logger LOG = LoggerFactory.getLogger(MockBundleContext.class);
+
private final MockBundle bundle;
- private final SortedSet<MockServiceRegistration> registeredServices = new TreeSet<MockServiceRegistration>();
- private final Map<ServiceListener, Filter> serviceListeners = new HashMap<ServiceListener, Filter>();
- private final List<BundleListener> bundleListeners = new ArrayList<BundleListener>();
-
+ private final SortedSet<MockServiceRegistration> registeredServices = synchronizedSortedSet(new TreeSet<MockServiceRegistration>());
+ private final Map<ServiceListener, Filter> serviceListeners = new ConcurrentHashMap<ServiceListener, Filter>();
+ private final List<BundleListener> bundleListeners = synchronizedList(new ArrayList<BundleListener>());
+
public MockBundleContext() {
this.bundle = new MockBundle(this);
}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.