You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2013/10/25 20:39:03 UTC
svn commit: r1535807 - in
/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl:
ComponentImpl.java dependencies/DependencyBase.java
Author: pderop
Date: Fri Oct 25 18:39:03 2013
New Revision: 1535807
URL: http://svn.apache.org/r1535807
Log:
FELIX-3910: Made final or volatile some class attributes, which are set from synchronized setters,
but possibly read from unsynchronized getters.
Modified:
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyBase.java
Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java?rev=1535807&r1=1535806&r2=1535807&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java Fri Oct 25 18:39:03 2013
@@ -23,6 +23,7 @@ import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.HashMap;
@@ -65,24 +66,24 @@ public class ComponentImpl implements Co
private String m_callbackStart;
private String m_callbackStop;
private String m_callbackDestroy;
- private Object m_serviceName;
- private Object m_implementation;
- private Object m_callbackInstance;
+ private volatile Object m_serviceName;
+ private volatile Object m_implementation;
+ private volatile Object m_callbackInstance;
// configuration (dynamic, but does not affect state)
- private Dictionary m_serviceProperties;
+ private volatile Dictionary m_serviceProperties;
// configuration (dynamic, and affects state)
- private ArrayList m_dependencies = new ArrayList();
+ private final ArrayList m_dependencies = new ArrayList();
// runtime state (calculated from dependencies)
private State m_state;
// runtime state (changes because of state changes)
- private Object m_serviceInstance;
+ private volatile Object m_serviceInstance;
private volatile ServiceRegistration m_registration;
- private boolean m_isBound;
- private boolean m_isInstantiated;
+ private volatile boolean m_isBound;
+ private volatile boolean m_isInstantiated;
// service state listeners
private final List m_stateListeners = new ArrayList();
@@ -91,19 +92,19 @@ public class ComponentImpl implements Co
private final SerialExecutor m_executor = new SerialExecutor();
// instance factory
- private Object m_instanceFactory;
- private String m_instanceFactoryCreateMethod;
+ private volatile Object m_instanceFactory;
+ private volatile String m_instanceFactoryCreateMethod;
// composition manager
- private Object m_compositionManager;
- private String m_compositionManagerGetMethod;
- private Object m_compositionManagerInstance;
+ private volatile Object m_compositionManager;
+ private volatile String m_compositionManagerGetMethod;
+ private volatile Object m_compositionManagerInstance;
// internal logging
private final Logger m_logger;
- private Map m_autoConfig = new HashMap();
- private Map m_autoConfigInstance = new HashMap();
+ private final Map m_autoConfig = new HashMap();
+ private final Map m_autoConfigInstance = new HashMap();
private boolean m_isStarted = false;
Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyBase.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyBase.java?rev=1535807&r1=1535806&r2=1535807&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyBase.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyBase.java Fri Oct 25 18:39:03 2013
@@ -28,7 +28,7 @@ import org.apache.felix.dm.impl.Logger;
*/
public abstract class DependencyBase implements Dependency, DependencyActivation {
private boolean m_isRequired;
- private boolean m_isInstanceBound;
+ private volatile boolean m_isInstanceBound;
protected final Logger m_logger;
protected volatile boolean m_isStarted;