fix concurrentModificationException
authorKatja Luther <k.luther@bgbm.org>
Fri, 17 Jun 2016 12:57:29 +0000 (14:57 +0200)
committerKatja Luther <k.luther@bgbm.org>
Fri, 17 Jun 2016 12:57:29 +0000 (14:57 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java

index 230cb98372f180a9c4603d0a9769f02aab031755..6ad564e441dcef3f597fc05473dcfa59c87f3e76 100644 (file)
@@ -14,6 +14,7 @@ import java.lang.reflect.Field;
 import java.text.Collator;
 import java.util.Comparator;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 import java.util.UUID;
@@ -223,8 +224,6 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        /** {@inheritDoc} */
        @Override
        public void refresh() {
-               //initModel();
-               filterExcludedObjects();
                super.refresh();
        }
 
@@ -312,7 +311,11 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                try {
                        if(model != null){
                                progressMonitor.beginTask("Looking for entities", model.size());
-                               for(UuidAndTitleCache<T> element : model){
+                               filterExcludedObjects();
+                               Iterator<UuidAndTitleCache<T>> iterator = model.iterator();
+                               UuidAndTitleCache<T> element;
+                               while(iterator.hasNext()){
+                                   element = iterator.next();
                                        contentProvider.add(element, itemsFilter);
                                        if (progressMonitor.isCanceled()) {
                                                throw new OperationCanceledException();
@@ -486,9 +489,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                                    if (status == IStatus.OK) {
 
                                        T entity = (T) wizard.getEntity();
-                                       model.add(new UuidAndTitleCache<T>(entity.getUuid(),
-                                               entity.getId(),
-                                               getTitle(entity)));
+                                      // model.add(new UuidAndTitleCache<T>(entity.getUuid(), entity.getId(), getTitle(entity)));
                                        refresh();
                                        setPattern(entity);
                                        getConversationHolder().bind();