• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IQSS / dataverse / #22002

01 Apr 2024 07:56PM CUT coverage: 20.716% (+0.5%) from 20.173%
#22002

push

github

web-flow
Merge pull request #10453 from IQSS/develop

Merge 6.2 into master

704 of 2679 new or added lines in 152 files covered. (26.28%)

81 existing lines in 49 files now uncovered.

17160 of 82836 relevant lines covered (20.72%)

0.21 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DeletePidCommand.java
1
package edu.harvard.iq.dataverse.engine.command.impl;
2

3
import edu.harvard.iq.dataverse.Dataset;
4
import edu.harvard.iq.dataverse.authorization.Permission;
5
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
6
import edu.harvard.iq.dataverse.engine.command.AbstractVoidCommand;
7
import edu.harvard.iq.dataverse.engine.command.CommandContext;
8
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
9
import edu.harvard.iq.dataverse.engine.command.RequiredPermissions;
10
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
11
import edu.harvard.iq.dataverse.engine.command.exception.IllegalCommandException;
12
import edu.harvard.iq.dataverse.engine.command.exception.PermissionException;
13
import edu.harvard.iq.dataverse.pidproviders.PidProvider;
14
import edu.harvard.iq.dataverse.pidproviders.PidUtil;
15
import edu.harvard.iq.dataverse.util.BundleUtil;
16
import org.apache.commons.httpclient.HttpException;
17

18
import java.util.Arrays;
19
import java.util.Collections;
20
import java.util.logging.Logger;
21

22
/**
23
 * No required permissions because we check for superuser status.
24
 */
25
@RequiredPermissions({})
26
public class DeletePidCommand extends AbstractVoidCommand {
27

28
    private static final Logger logger = Logger.getLogger(ReservePidCommand.class.getCanonicalName());
×
29

30
    private final Dataset dataset;
31

32
    public DeletePidCommand(DataverseRequest request, Dataset dataset) {
33
        super(request, dataset);
×
34
        this.dataset = dataset;
×
35
    }
×
36

37
    @Override
38
    protected void executeImpl(CommandContext ctxt) throws CommandException {
39

40
        if (!(getUser() instanceof AuthenticatedUser) || !getUser().isSuperuser()) {
×
NEW
41
            throw new PermissionException(BundleUtil.getStringFromBundle("admin.api.auth.mustBeSuperUser"), this,
×
NEW
42
                    Collections.singleton(Permission.EditDataset), dataset);
×
43
        }
44

NEW
45
        PidProvider pidProvider = PidUtil.getPidProvider(dataset.getGlobalId().getProviderId());
×
46

47
        try {
NEW
48
            pidProvider.deleteIdentifier(dataset);
×
49
            // Success! Clear the create time, etc.
50
            dataset.setGlobalIdCreateTime(null);
×
51
            dataset.setIdentifierRegistered(false);
×
52
            ctxt.datasets().merge(dataset);
×
53
        } catch (HttpException hex) {
×
NEW
54
            String message = BundleUtil.getStringFromBundle("pids.deletePid.failureExpected",
×
NEW
55
                    Arrays.asList(dataset.getGlobalId().asString(), Integer.toString(hex.getReasonCode())));
×
56
            logger.info(message);
×
57
            throw new IllegalCommandException(message, this);
×
58
        } catch (Exception ex) {
×
NEW
59
            String message = BundleUtil.getStringFromBundle("pids.deletePid.failureOther",
×
NEW
60
                    Arrays.asList(dataset.getGlobalId().asString(), ex.getLocalizedMessage()));
×
61
            logger.info(message);
×
62
            throw new IllegalCommandException(message, this);
×
63
        }
×
64
    }
×
65

66
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc