Skip to content

Commit b1f7e88

Browse files
committed
merge issues, add supportsDelete
1 parent 1c80963 commit b1f7e88

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import edu.harvard.iq.dataverse.util.bagit.BagGenerator;
1919
import edu.harvard.iq.dataverse.util.bagit.OREMap;
2020
import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult;
21+
import jakarta.ejb.TransactionAttribute;
22+
import jakarta.ejb.TransactionAttributeType;
2123

2224
import java.io.IOException;
2325
import java.io.PipedInputStream;
@@ -43,6 +45,7 @@ public AbstractSubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion
4345
}
4446

4547
@Override
48+
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
4649
public DatasetVersion execute(CommandContext ctxt) throws CommandException {
4750

4851
String settings = ctxt.settings().getValueForKey(SettingsServiceBean.Key.ArchiverSettings);
@@ -111,8 +114,8 @@ public Thread startBagThread(DatasetVersion dv, PipedInputStream in, DigestInput
111114
public void run() {
112115
try (PipedOutputStream out = new PipedOutputStream(in)) {
113116
// Generate bag
117+
BagGenerator.setNumConnections(getNumberOfBagGeneratorThreads());
114118
BagGenerator bagger = new BagGenerator(new OREMap(dv, false), dataciteXml);
115-
bagger.setNumConnections(getNumberOfBagGeneratorThreads());
116119
bagger.setAuthenticationKey(token.getTokenString());
117120
bagger.generateBag(out);
118121
success = true;
@@ -184,4 +187,16 @@ public static boolean isSingleVersion(SettingsWrapper settingsWrapper) {
184187
public static boolean isSingleVersion(SettingsServiceBean settingsService) {
185188
return false;
186189
}
190+
191+
/** Whether the archiver can delete existing archival files (and thus can retry when the existing files are incomplete/obsolete)
192+
* A static version supports calls via reflection while the instance method supports inheritance for use on actual command instances (see DatasetPage for both use cases).
193+
* @return
194+
*/
195+
public static boolean supportsDelete() {
196+
return false;
197+
}
198+
199+
public boolean canDelete() {
200+
return supportsDelete();
201+
}
187202
}

0 commit comments

Comments
 (0)