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

IQSS / dataverse / #22987

23 Aug 2024 06:44PM CUT coverage: 20.61% (-0.2%) from 20.791%
#22987

Pull #10781

github

landreev
added an upfront locks check to the /addGlobusFiles api #10623
Pull Request #10781: Improved handling of Globus uploads

4 of 417 new or added lines in 15 files covered. (0.96%)

4194 existing lines in 35 files now uncovered.

17388 of 84365 relevant lines covered (20.61%)

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/ReservePidCommand.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.settings.SettingsServiceBean;
16
import edu.harvard.iq.dataverse.util.BundleUtil;
17
import java.util.Arrays;
18
import java.util.Collections;
19
import java.util.Date;
20
import java.util.logging.Logger;
21

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

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

30
    private final Dataset dataset;
31

32
    public ReservePidCommand(DataverseRequest request, Dataset dataset) {
UNCOV
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()) {
×
UNCOV
41
            throw new PermissionException(BundleUtil.getStringFromBundle("admin.api.auth.mustBeSuperUser"),
×
UNCOV
42
                    this, Collections.singleton(Permission.EditDataset), dataset);
×
43
        }
44

UNCOV
45
        PidProvider pidProvider = ctxt.dvObjects().getEffectivePidGenerator(dataset);
×
46
        
47
        try {
UNCOV
48
            String returnString = pidProvider.createIdentifier(dataset);
×
UNCOV
49
            logger.fine(returnString);
×
50
            // No errors caught, so mark PID as reserved.
UNCOV
51
            dataset.setGlobalIdCreateTime(new Date());
×
52
            // We don't setIdentifierRegistered(true) yet.
UNCOV
53
            ctxt.datasets().merge(dataset);
×
UNCOV
54
        } catch (Throwable ex) {
×
UNCOV
55
            String message = BundleUtil.getStringFromBundle("pids.commands.reservePid.failure", Arrays.asList(dataset.getId().toString(), ex.getLocalizedMessage()));
×
UNCOV
56
            logger.info(message);
×
UNCOV
57
            throw new IllegalCommandException(message, this);
×
UNCOV
58
        }
×
UNCOV
59
    }
×
60

61
}
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