diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java index ffb268b..f72b5c7 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java @@ -323,7 +323,9 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< rel.setTargetID(targetId); rel.setTargetUCD(targetUCD); - return onUpdate(toUpdate.addRelation(rel)); + + toUpdate =onUpdate(toUpdate.addRelation(rel)); + return unlockAndUpdate(toUpdate); }catch(Throwable t){ log.error("Unexpected exception ",t); unlock(toUpdate); @@ -346,7 +348,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< // update only if something changed if(toUpdate.getRelationships().size()!=beforeSize) return onUpdate(toUpdate); } - return toUpdate; + return unlockAndUpdate(toUpdate); }catch(Throwable t){ log.error("Unexpected exception ",t); unlock(toUpdate);