You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/12/29 15:42:42 UTC

[isis] branch master updated: ISIS-1780: removes facet factories correctly if already instantiated as an object within the ProgrammingModelAbstract

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new c0a82b3  ISIS-1780: removes facet factories correctly if already instantiated as an object within the ProgrammingModelAbstract
c0a82b3 is described below

commit c0a82b3f804ec633404efd4200a0875dfdfda706
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Dec 29 15:40:10 2017 +0000

    ISIS-1780: removes facet factories correctly if already instantiated as an object within the ProgrammingModelAbstract
    
    (which actually always seems to be the case).
---
 .../isis/core/metamodel/progmodel/ProgrammingModelAbstract.java   | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
index 0510aba..3189d15 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
@@ -20,6 +20,7 @@
 package org.apache.isis.core.metamodel.progmodel;
 
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.List;
 
 import com.google.common.collect.Lists;
@@ -144,7 +145,12 @@ public abstract class ProgrammingModelAbstract implements ProgrammingModel {
     @Override
     public final void removeFactory(final Class<? extends FacetFactory> factoryClass) {
         assertNotInitialized();
-        facetFactoryInstancesOrClasses.remove(factoryClass);
+        for (Iterator<Object> iterator = facetFactoryInstancesOrClasses.iterator(); iterator.hasNext(); ) {
+            final Object factoryInstanceOrClass = iterator.next();
+            if(factoryInstanceOrClass == factoryClass || factoryClass.isAssignableFrom(factoryInstanceOrClass.getClass())) {
+                iterator.remove();
+            }
+        }
     }
 
     @Override

-- 
To stop receiving notification emails like this one, please contact
['"commits@isis.apache.org" <co...@isis.apache.org>'].