Skip to content

Commit

Permalink
use merged dataset everywhere
Browse files Browse the repository at this point in the history
  • Loading branch information
qqmyers committed May 15, 2024
1 parent 7338068 commit 189e43a
Showing 1 changed file with 25 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,30 @@ protected void executeImpl(CommandContext ctxt) throws CommandException {
doomed.setThumbnailFile(null);
final Dataset managedDoomed = ctxt.em().merge(doomed);


if (!managedDoomed.isHarvested()) {
GlobalId pid = managedDoomed.getGlobalId();
if (pid != null) {
PidProvider pidProvider = PidUtil.getPidProvider(pid.getProviderId());
try {
if (pidProvider.alreadyRegistered(managedDoomed)) {
pidProvider.deleteIdentifier(managedDoomed);
for (DataFile df : managedDoomed.getFiles()) {
pidProvider.deleteIdentifier(df);
}
}
} catch (Exception e) {
logger.log(Level.WARNING, "Identifier deletion was not successful:", e.getMessage());
}
}
}
logger.info("After PIDs");

// files need to iterate through and remove 'by hand' to avoid
// optimistic lock issues... (plus the physical files need to be
// deleted too!)

Iterator <DataFile> dfIt = doomed.getFiles().iterator();
Iterator <DataFile> dfIt = managedDoomed.getFiles().iterator();
while (dfIt.hasNext()){
DataFile df = dfIt.next();
// Gather potential Solr IDs of files. As of this writing deaccessioned files are never indexed.
Expand All @@ -91,40 +110,24 @@ protected void executeImpl(CommandContext ctxt) throws CommandException {
}

//also, lets delete the uploaded thumbnails!
if (!doomed.isHarvested()) {
deleteDatasetLogo(doomed);
if (!managedDoomed.isHarvested()) {
deleteDatasetLogo(managedDoomed);
}

logger.info("Before getting RAs");
// ASSIGNMENTS
for (RoleAssignment ra : ctxt.roles().directRoleAssignments(doomed)) {
for (RoleAssignment ra : ctxt.roles().directRoleAssignments(managedDoomed)) {
ctxt.em().remove(ra);
}
logger.info("After getting RAs");

// ROLES
for (DataverseRole ra : ctxt.roles().findByOwnerId(doomed.getId())) {
for (DataverseRole ra : ctxt.roles().findByOwnerId(managedDoomed.getId())) {
ctxt.em().remove(ra);
}
logger.info("After getting DRs");

if (!doomed.isHarvested()) {
GlobalId pid = doomed.getGlobalId();
if (pid != null) {
PidProvider pidProvider = PidUtil.getPidProvider(pid.getProviderId());
try {
if (pidProvider.alreadyRegistered(doomed)) {
pidProvider.deleteIdentifier(doomed);
for (DataFile df : doomed.getFiles()) {
pidProvider.deleteIdentifier(df);
}
}
} catch (Exception e) {
logger.log(Level.WARNING, "Identifier deletion was not successful:", e.getMessage());
}
}
}
logger.info("After PIDs");


toReIndex = managedDoomed.getOwner();
logger.info("Removing dataset");
Expand Down

0 comments on commit 189e43a

Please sign in to comment.