You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2014/07/16 22:35:11 UTC

svn commit: r1611181 - in /qpid/trunk/qpid/java: bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/ broker-core/src/main/java/org/apache/qpid/server/model/ broker-core/src/main/java/org/apache/qpid/server/model/adapter/ broker-co...

Author: rgodfrey
Date: Wed Jul 16 20:35:11 2014
New Revision: 1611181

URL: http://svn.apache.org/r1611181
Log:
QPID-5787 : [Java Broker] Management can observe a child object before its constructor has completed

Modified:
    qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObjectTypeFactory.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java

Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java?rev=1611181&r1=1611180&r2=1611181&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java Wed Jul 16 20:35:11 2014
@@ -686,6 +686,7 @@ public class BDBHAVirtualHostNodeImpl ex
         private void recoverRemoteReplicationNode(ReplicationNode node)
         {
             BDBHARemoteReplicationNodeImpl remoteNode = new BDBHARemoteReplicationNodeImpl(BDBHAVirtualHostNodeImpl.this, nodeToAttributes(node), getReplicatedEnvironmentFacade());
+            remoteNode.registerWithParents();
             remoteNode.open();
 
             getEventLogger().message(getVirtualHostNodeLogSubject(), HighAvailabilityMessages.ATTACHED(remoteNode.getName(), getGroupName(), String.valueOf(remoteNode.getState())));

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1611181&r1=1611180&r2=1611181&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java Wed Jul 16 20:35:11 2014
@@ -237,14 +237,6 @@ public abstract class AbstractConfigured
             _childrenByName.put(childClass, new ConcurrentHashMap<String, ConfiguredObject<?>>());
         }
 
-        for(ConfiguredObject<?> parent : parents.values())
-        {
-            if(parent instanceof AbstractConfiguredObject<?>)
-            {
-                ((AbstractConfiguredObject<?>)parent).registerChild(this);
-            }
-        }
-
         for(Map.Entry<Class<? extends ConfiguredObject>, ConfiguredObject<?>> entry : parents.entrySet())
         {
             addParent((Class<ConfiguredObject<?>>) entry.getKey(), entry.getValue());
@@ -405,6 +397,17 @@ public abstract class AbstractConfigured
         }
     }
 
+    public void registerWithParents()
+    {
+        for(ConfiguredObject<?> parent : _parents.values())
+        {
+            if(parent instanceof AbstractConfiguredObject<?>)
+            {
+                ((AbstractConfiguredObject<?>)parent).registerChild(this);
+            }
+        }
+    }
+
     protected void closeChildren()
     {
         applyToChildren(new Action<ConfiguredObject<?>>()
@@ -453,6 +456,7 @@ public abstract class AbstractConfigured
     {
         if(_dynamicState.compareAndSet(DynamicState.UNINIT, DynamicState.OPENED))
         {
+            registerWithParents();
             final AuthenticatedPrincipal currentUser = SecurityManager.getCurrentUser();
             if(currentUser != null)
             {

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObjectTypeFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObjectTypeFactory.java?rev=1611181&r1=1611180&r2=1611181&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObjectTypeFactory.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObjectTypeFactory.java Wed Jul 16 20:35:11 2014
@@ -109,7 +109,9 @@ abstract public class AbstractConfigured
         {
             Map<String,Object> attributesWithId = new HashMap<String, Object>(getRecord().getAttributes());
             attributesWithId.put(ConfiguredObject.ID, getRecord().getId());
-            return createInstance(attributesWithId, getParents());
+            X instance = createInstance(attributesWithId, getParents());
+            instance.registerWithParents();
+            return instance;
         }
     }
 }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java?rev=1611181&r1=1611180&r2=1611181&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java Wed Jul 16 20:35:11 2014
@@ -61,7 +61,6 @@ public final class ConnectionAdapter ext
                 deleted();
             }
         });
-        open();
 
         conn.addSessionListener(this);
     }
@@ -215,6 +214,7 @@ public final class ConnectionAdapter ext
     public void sessionAdded(final AMQSessionModel<?, ?> session)
     {
         SessionAdapter adapter = new SessionAdapter(this, session);
+        adapter.create();
         childAdded(adapter);
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java?rev=1611181&r1=1611180&r2=1611181&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java Wed Jul 16 20:35:11 2014
@@ -146,6 +146,7 @@ public class FileBasedGroupProviderImpl
             attrMap.put(Group.NAME, group.getName());
             GroupAdapter groupAdapter = new GroupAdapter(attrMap);
             principals.add(groupAdapter);
+            groupAdapter.registerWithParents();
             groupAdapter.open();
         }
 
@@ -407,6 +408,7 @@ public class FileBasedGroupProviderImpl
                 attrMap.put(GroupMember.ID,id);
                 attrMap.put(GroupMember.NAME, principal.getName());
                 GroupMemberAdapter groupMemberAdapter = new GroupMemberAdapter(attrMap);
+                groupMemberAdapter.registerWithParents();
                 groupMemberAdapter.open();
                 members.add(groupMemberAdapter);
             }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java?rev=1611181&r1=1611180&r2=1611181&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java Wed Jul 16 20:35:11 2014
@@ -78,7 +78,6 @@ final class SessionAdapter extends Abstr
             }
         });
 
-        open();
     }
 
     private static Map<String, Object> createAttributes(final AMQSessionModel session)

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java?rev=1611181&r1=1611180&r2=1611181&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java Wed Jul 16 20:35:11 2014
@@ -110,6 +110,7 @@ public abstract class PrincipalDatabaseA
             for (Principal user : users)
             {
                 PrincipalAdapter principalAdapter = new PrincipalAdapter(user);
+                principalAdapter.registerWithParents();
                 principalAdapter.open();
                 _userMap.put(user, principalAdapter);
             }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1611181&r1=1611180&r2=1611181&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Wed Jul 16 20:35:11 2014
@@ -768,7 +768,8 @@ public abstract class AbstractVirtualHos
             connection.block();
         }
 
-        Connection c = new ConnectionAdapter(connection);
+        ConnectionAdapter c = new ConnectionAdapter(connection);
+        c.create();
         childAdded(c);
 
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org