Author: csierra
Date: Wed Mar  1 10:07:20 2017
New Revision: 1784900

URL: http://svn.apache.org/viewvc?rev=1784900&view=rev
Log:
[ARIES-CDI] Simplify with synchronized

Modified:
    
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/CdiContainerState.java

Modified: 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/CdiContainerState.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/CdiContainerState.java?rev=1784900&r1=1784899&r2=1784900&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/CdiContainerState.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/CdiContainerState.java
 Wed Mar  1 10:07:20 2017
@@ -59,10 +59,8 @@ public class CdiContainerState {
                        CdiContainer.class, _cdiContainerService, properties);
        }
 
-       public void close() {
+       public synchronized void close() {
                try {
-                       _lock.lock();
-
                        _cdiContainerRegistration.unregister();
                }
                catch (Exception e) {
@@ -70,9 +68,6 @@ public class CdiContainerState {
                                _log.trace("Service already unregistered {}", 
_cdiContainerRegistration);
                        }
                }
-               finally {
-                       _lock.unlock();
-               }
        }
 
        public BeanManager getBeanManager() {
@@ -108,46 +103,39 @@ public class CdiContainerState {
        }
 
        public CdiEvent.Type getLastState() {
-               return _lastState.get();
+               return _lastState;
        }
 
-       public void fire(CdiEvent event) {
-               try {
-                       _lock.lock();
+       public synchronized void fire(CdiEvent event) {
+               Type type = event.getType();
 
-                       Type type = event.getType();
+               if ((_lastState == CdiEvent.Type.DESTROYING) &&
+                       ((type == CdiEvent.Type.WAITING_FOR_EXTENSIONS) ||
+                       (type == CdiEvent.Type.WAITING_FOR_SERVICES))) {
 
-                       if ((_lastState.get() == CdiEvent.Type.DESTROYING) &&
-                               ((type == CdiEvent.Type.WAITING_FOR_EXTENSIONS) 
||
-                               (type == CdiEvent.Type.WAITING_FOR_SERVICES))) {
+                       return;
+               }
 
-                               return;
-                       }
+               if (_log.isDebugEnabled()) {
+                       _log.debug("CDIe - Event {}", event, event.getCause());
+               }
 
-                       if (_log.isDebugEnabled()) {
-                               _log.debug("CDIe - Event {}", event, 
event.getCause());
-                       }
+               updateState(event);
 
-                       updateState(event);
+               if (_beanManager != null) {
+                       _beanManager.fireEvent(event);
+               }
 
-                       if (_beanManager != null) {
-                               _beanManager.fireEvent(event);
+               for (CdiListener listener : _listeners.values()) {
+                       try {
+                               listener.cdiEvent(event);
                        }
-
-                       for (CdiListener listener : _listeners.values()) {
-                               try {
-                                       listener.cdiEvent(event);
-                               }
-                               catch (Throwable t) {
-                                       if (_log.isErrorEnabled()) {
-                                               _log.error("CDIe - CdiListener 
failed", t);
-                                       }
+                       catch (Throwable t) {
+                               if (_log.isErrorEnabled()) {
+                                       _log.error("CDIe - CdiListener failed", 
t);
                                }
                        }
                }
-               finally {
-                       _lock.unlock();
-               }
        }
 
        public void fire(CdiEvent.Type state) {
@@ -183,33 +171,26 @@ public class CdiContainerState {
                _references = references;
        }
 
-       private void updateState(CdiEvent event) {
-               try {
-                       _lock.lock();
-
-                       Type type = event.getType();
+       private synchronized void updateState(CdiEvent event) {
+               Type type = event.getType();
 
-                       ServiceReference<CdiContainer> reference = 
_cdiContainerRegistration.getReference();
+               ServiceReference<CdiContainer> reference = 
_cdiContainerRegistration.getReference();
 
-                       if (type == 
reference.getProperty(CdiExtenderConstants.CDI_EXTENDER_CONTAINER_STATE)) {
-                               return;
-                       }
+               if (type == 
reference.getProperty(CdiExtenderConstants.CDI_EXTENDER_CONTAINER_STATE)) {
+                       return;
+               }
 
-                       _lastState.set(type);
+               _lastState = type;
 
-                       Hashtable<String, Object> properties = new 
Hashtable<>();
+               Hashtable<String, Object> properties = new Hashtable<>();
 
-                       for (String key : reference.getPropertyKeys()) {
-                               properties.put(key, reference.getProperty(key));
-                       }
+               for (String key : reference.getPropertyKeys()) {
+                       properties.put(key, reference.getProperty(key));
+               }
 
-                       
properties.put(CdiExtenderConstants.CDI_EXTENDER_CONTAINER_STATE, type);
+               
properties.put(CdiExtenderConstants.CDI_EXTENDER_CONTAINER_STATE, type);
 
-                       _cdiContainerRegistration.setProperties(properties);
-               }
-               finally {
-                       _lock.unlock();
-               }
+               _cdiContainerRegistration.setProperties(properties);
        }
 
        private static final Logger _log = 
LoggerFactory.getLogger(CdiContainerState.class);
@@ -222,9 +203,8 @@ public class CdiContainerState {
        private List<ConfigurationDependency> _configurations;
        private final Bundle _extenderBundle;
        private List<ExtensionDependency> _extensionDependencies;
-       private AtomicReference<CdiEvent.Type> _lastState = new 
AtomicReference<CdiEvent.Type>(CdiEvent.Type.CREATING);
+       private CdiEvent.Type _lastState = CdiEvent.Type.CREATING;
        private final Map<ServiceReference<CdiListener>, CdiListener> 
_listeners;
-       private final ReentrantLock _lock = new ReentrantLock();
        private List<ReferenceDependency> _references;
 
 }
\ No newline at end of file


Reply via email to