diff --git a/src/main/java/org/caosdb/server/entity/Entity.java b/src/main/java/org/caosdb/server/entity/Entity.java index 16dbbdd5f399905fc29ab2a8f1629fbcd163b6b6..b27eaa28e5111d783d1d8d3779f36a1938898173 100644 --- a/src/main/java/org/caosdb/server/entity/Entity.java +++ b/src/main/java/org/caosdb/server/entity/Entity.java @@ -654,7 +654,7 @@ public abstract class Entity extends AbstractObservable implements EntityInterfa // Parse ID. Generate error if it isn't an integer. if (element.getAttribute("id") != null && !element.getAttributeValue("id").equals("")) { - this.getId().setId(element.getAttributeValue("id")); + this.setId(element.getAttributeValue("id")); } // Parse NAME. diff --git a/src/main/java/org/caosdb/server/entity/EntityInterface.java b/src/main/java/org/caosdb/server/entity/EntityInterface.java index ba77b5c4ac8b5c833d2046dec506655531ff62cb..4a74920e7ac35d9d503de3802fbae10b2a7eaa3f 100644 --- a/src/main/java/org/caosdb/server/entity/EntityInterface.java +++ b/src/main/java/org/caosdb/server/entity/EntityInterface.java @@ -194,4 +194,8 @@ public interface EntityInterface public abstract boolean isReferenceList(); public abstract SerializeFieldStrategy getSerializeFieldStrategy(); + + public default void setId(String id) { + getId().setId(id); + } } diff --git a/src/main/java/org/caosdb/server/jobs/LazyEntityResolver.java b/src/main/java/org/caosdb/server/jobs/LazyEntityResolver.java index a85b0ca075ae058afffe8777c8488631b2681bac..9932962a03e5ee448e16a81d83a4b864e73409d2 100644 --- a/src/main/java/org/caosdb/server/jobs/LazyEntityResolver.java +++ b/src/main/java/org/caosdb/server/jobs/LazyEntityResolver.java @@ -71,6 +71,8 @@ public class LazyEntityResolver extends EntityWrapper { public void resolveAll() { resolveParents(); resolveProperties(); + // release the transaction for the garbage collector + this.transaction = null; } @Override diff --git a/src/main/java/org/caosdb/server/jobs/core/GenerateEntityId.java b/src/main/java/org/caosdb/server/jobs/core/GenerateEntityId.java index 4bb23ab4c7399e3660998029927cb7cb860af928..e3b21d9bdf67ad7a1ebe23ea1b77816e72b12de3 100644 --- a/src/main/java/org/caosdb/server/jobs/core/GenerateEntityId.java +++ b/src/main/java/org/caosdb/server/jobs/core/GenerateEntityId.java @@ -44,7 +44,7 @@ public class GenerateEntityId extends EntityJob { && getTransaction() instanceof WriteTransactionInterface && entity.getEntityStatus() == EntityStatus.QUALIFIED) { String id = ((WriteTransactionInterface) getTransaction()).generateId(); - entity.getId().setId(id); + entity.setId(id); } } } diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java index 038e4d1895c3025759a8d259f27bcd246ac4f683..0574cd1e2bffe03e62dd0e225752d19dae57a681 100644 --- a/src/main/java/org/caosdb/server/query/Query.java +++ b/src/main/java/org/caosdb/server/query/Query.java @@ -258,7 +258,7 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac public boolean isInternal() { try { - return Integer.parseInt(id) < 101; + return Integer.parseInt(id) < 100; } catch (NumberFormatException e) { return false; }