diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java index 37b72597d351202102783f6d439c395a103edb31..2a4dad0368ad76020481659fee5a097019c6e08a 100644 --- a/src/main/java/org/caosdb/server/query/Query.java +++ b/src/main/java/org/caosdb/server/query/Query.java @@ -719,10 +719,7 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac private void fillContainerWithResult() { if (this.container != null && this.type == Type.FIND) { for (final IdVersionAclTriplet t : this.resultSet) { - // ignore internal entities - if (t.id < 100) { - continue; - } + final Entity e = new RetrieveEntity(t.id, t.version); // if query has select-clause: @@ -761,6 +758,7 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac } this.resultSet = filterEntitiesWithoutRetrievePermission(this.resultSet); + removeInternalEntitiesFromResultSet(); fillContainerWithResult(); } catch (final SQLException e) { e.printStackTrace(); @@ -774,6 +772,16 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac cache.clear(); } + /** There are internal Entities (with ID<100) that should never be returned * */ + private void removeInternalEntitiesFromResultSet() { + for (final IdVersionAclTriplet t : resultSet) { + // ignore internal entities + if (t.id < 100) { + resultSet.remove(t); + } + } + } + /** * Cache a query result. * @@ -919,9 +927,6 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac final long t1 = System.currentTimeMillis(); final IdVersionAclTriplet triplet = entityIterator.next(); - if (triplet.id <= 99) { - continue; - } if (!acl_cache.containsKey(triplet.acl)) { acl_cache.put(