X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Fadapter%2Fimpl%2FEntityInstances.java;h=ffbec2f5e01ca88222926bb1c03848ed940d692a;hp=93903fb9b2d4371e01f521eca67c55cc925d33bf;hb=5f5747460a3330a1317395fedb60db33f6c00ab2;hpb=ceff53434e48f94c5d84ce12f3b1e21cabda457b diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/impl/EntityInstances.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/impl/EntityInstances.java index 93903fb9b..ffbec2f5e 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/impl/EntityInstances.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/impl/EntityInstances.java @@ -185,15 +185,17 @@ public class EntityInstances implements Instances { CollectionSupport coll = graph.getService(CollectionSupport.class); THashSet visited = new THashSet<>(); - List rec = findRec(graph, index, filter, visited); + List rec_ = findRec(graph, index, filter, visited); + // We must not modify rec_! + List rec = rec_; for(Resource global : Layer0Utils.listGlobalOntologies(graph)) { if(!visited.add(global)) continue; List rs = graph.syncRequest(new QueryIndex(global, type, filter), TransientCacheListener.>instance()); - if(rec.isEmpty() && !rs.isEmpty()) { - // TODO: rec could be an immutable empty list - rec = new ArrayList(); + if(!rs.isEmpty()) { + if(rec == rec_) + rec = new ArrayList<>(rec); + rec.addAll(rs); } - rec.addAll(rs); } Collection result = coll.asSortedList(rec); return result;