Skip to content

Commit 5c8c9d7

Browse files
authored
Merge pull request #11958 from IQSS/11771-fix-npe-in-update-licenses
refactor UpdateDatasetLicenseCommand to extend AbstractDatasetCommand<Dataset>
2 parents 380adfe + 2a66575 commit 5c8c9d7

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDatasetLicenseCommand.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,26 @@
1313
import java.util.List;
1414

1515
@RequiredPermissions(Permission.EditDataset)
16-
public class UpdateDatasetLicenseCommand extends AbstractVoidCommand {
17-
private final Dataset dataset;
16+
public class UpdateDatasetLicenseCommand extends AbstractDatasetCommand<Dataset> {
1817
private License license = null;
1918
private TermsOfUseAndAccess customTermsOfUseAndAccess = null;
2019

2120
public UpdateDatasetLicenseCommand(DataverseRequest aRequest, Dataset dataset, License license) {
2221
super(aRequest, dataset);
23-
this.dataset = dataset;
2422
this.license = license;
2523
}
2624

2725
public UpdateDatasetLicenseCommand(DataverseRequest aRequest, Dataset dataset, TermsOfUseAndAccess customTermsOfUseAndAccess) {
2826
super(aRequest, dataset);
29-
this.dataset = dataset;
3027
this.customTermsOfUseAndAccess = customTermsOfUseAndAccess;
3128
}
3229

3330

3431
@Override
35-
protected void executeImpl(CommandContext ctxt) throws CommandException {
36-
DatasetVersion datasetVersion = dataset.getOrCreateEditVersion();
32+
public Dataset execute(CommandContext ctxt) throws CommandException {
33+
DatasetVersion datasetVersion = getDataset().getOrCreateEditVersion();
3734
datasetVersion.setVersionState(DatasetVersion.VersionState.DRAFT);
35+
Dataset savedDataset = null;
3836

3937
if (license != null) {
4038
if (!license.isActive()) {
@@ -43,7 +41,7 @@ protected void executeImpl(CommandContext ctxt) throws CommandException {
4341
TermsOfUseAndAccess termsOfUseAndAccess = datasetVersion.getTermsOfUseAndAccess();
4442
termsOfUseAndAccess.setLicense(license);
4543

46-
ctxt.engine().submit(new UpdateDatasetVersionCommand(this.dataset, getRequest()));
44+
savedDataset = ctxt.engine().submit(new UpdateDatasetVersionCommand(getDataset(), getRequest()));
4745
} else if (customTermsOfUseAndAccess != null) {
4846
if (customTermsOfUseAndAccess.getTermsOfUse() == null || customTermsOfUseAndAccess.getTermsOfUse().isBlank()) {
4947
throw new InvalidCommandArgumentsException(BundleUtil.getStringFromBundle("updateDatasetLicenseCommand.errors.customTermsOfUseNotProvided"), this);
@@ -52,8 +50,9 @@ protected void executeImpl(CommandContext ctxt) throws CommandException {
5250
applyCustomTerms(termsToUpdate, customTermsOfUseAndAccess);
5351
termsToUpdate.setLicense(null);
5452
datasetVersion.setTermsOfUseAndAccess(termsToUpdate);
55-
ctxt.engine().submit(new UpdateDatasetVersionCommand(this.dataset, getRequest()));
53+
savedDataset = ctxt.engine().submit(new UpdateDatasetVersionCommand(getDataset(), getRequest()));
5654
}
55+
return savedDataset;
5756
}
5857

5958
/**

0 commit comments

Comments
 (0)