[jboss-cvs] JBossAS SVN: r100690 - projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Feb 8 04:12:20 EST 2010


Author: alesj
Date: 2010-02-08 04:12:20 -0500 (Mon, 08 Feb 2010)
New Revision: 100690

Modified:
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractScopeInfo.java
Log:
[JBKERNEL-90]; only keep ref on the owning context.

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractScopeInfo.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractScopeInfo.java	2010-02-08 08:23:40 UTC (rev 100689)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractScopeInfo.java	2010-02-08 09:12:20 UTC (rev 100690)
@@ -60,14 +60,14 @@
    /** The install scope */
    private ScopeKey installScope;
    
-   /** The repository */
-   private MutableMetaDataRepository repository;
-
    /** The added scopes */
    private CopyOnWriteArraySet<ScopeKey> addedScopes = new CopyOnWriteArraySet<ScopeKey>();
 
+   /** The repository */
+   private volatile MutableMetaDataRepository repository;
+
    /** The owning context */
-   private ControllerContext context;
+   private volatile ControllerContext context;
 
    /**
     * Create a new AbstractScopeInfo.
@@ -116,7 +116,7 @@
          return null;
 
       MetaData metaData = repository.getMetaData(getScope());
-      if (metaData == null)
+      if (metaData == null && context != null)
       {
          initMetaDataRetrieval(repository, context);
          metaData = repository.getMetaData(scopeKey);
@@ -127,8 +127,11 @@
    public void addMetaData(MutableMetaDataRepository repository, ControllerContext context)
    {
       this.repository = repository;
-      this.context = context;
 
+      // only keep ref on the owning context
+      if (context != null && context.getScopeInfo() == this)
+         this.context = context;
+
       ScopeKey scope = getMutableScope();
       MetaDataRetrieval retrieval = repository.getMetaDataRetrieval(scope);
       MutableMetaDataLoader mutable;
@@ -189,7 +192,9 @@
       }
       addedScopes.clear();
 
-      this.context = null;
+      if (context != null && context.getScopeInfo() == this)
+         this.context = null;
+
       this.repository = null;
    }
 




More information about the jboss-cvs-commits mailing list