Unlock only if not deleted
This commit is contained in:
parent
ab4a8ef1dc
commit
7df98cb40e
|
@ -366,6 +366,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
|
||||||
public void delete(String id,boolean force) throws DeletionException, InvalidUserRoleException, ProjectLockedException, ProjectNotFoundException, UnauthorizedAccess, JsonProcessingException, InvalidLockException {
|
public void delete(String id,boolean force) throws DeletionException, InvalidUserRoleException, ProjectLockedException, ProjectNotFoundException, UnauthorizedAccess, JsonProcessingException, InvalidLockException {
|
||||||
log.info("Deleting by ID {}, force {}",id,force);
|
log.info("Deleting by ID {}, force {}",id,force);
|
||||||
Project doc =lock(id,"Deletion { force : "+force+"}");
|
Project doc =lock(id,"Deletion { force : "+force+"}");
|
||||||
|
boolean deleted = false;
|
||||||
try {
|
try {
|
||||||
User u = UserUtils.getCurrent().asInfo().getUser();
|
User u = UserUtils.getCurrent().asInfo().getUser();
|
||||||
final DataAccessPolicy policy = useCaseDescriptor.getMatching(u);
|
final DataAccessPolicy policy = useCaseDescriptor.getMatching(u);
|
||||||
|
@ -387,14 +388,15 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
|
||||||
ws.deleteItem(folderId);
|
ws.deleteItem(folderId);
|
||||||
}
|
}
|
||||||
}finally {
|
}finally {
|
||||||
if(force) super.deleteDoc(asId(id));
|
super.deleteDoc(asId(id));
|
||||||
|
deleted = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (ConfigurationException | StorageHubException e) {
|
} catch (ConfigurationException | StorageHubException e) {
|
||||||
log.error("Exception while trying to delete {} [UCID {}]",id,useCaseDescriptor.getId());
|
log.error("Exception while trying to delete {} [UCID {}]",id,useCaseDescriptor.getId());
|
||||||
throw new DeletionException("Unable to contact Storage ",e);
|
throw new DeletionException("Unable to contact Storage ",e);
|
||||||
} finally{
|
} finally{
|
||||||
if(doc!=null) unlockAndUpdate(doc);
|
if(doc!=null && !deleted) unlockAndUpdate(doc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue