Okay, I think I am getting closer.
Actually my curate.cfg was reverted and that made things working. I have added back my changes.
It seems to be an issue caused by a virus scan curation task (I'm using clamAV).
Running a curation virus scan task is successfully listing a file with EICAR signature in dspace.log. I assume clamAV is operating fine.
With the patched version the log is a bit more descriptive:
java.lang.RuntimeException: The workflow could not be started for workspaceItem withid: 28
at org.dspace.app.rest.submit.SubmissionService.createWorkflowItem(SubmissionService.java:267) ~[classes/:7.1.1]
at org.dspace.app.rest.repository.WorkflowItemRestRepository.createAndReturn(WorkflowItemRestRepository.java:169) ~[classes/:7.1.1]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:774) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.dspace.app.rest.repository.WorkflowItemRestRepository$$EnhancerBySpringCGLIB$$554b64d.createAndReturn(<generated>) ~[classes/:7.1.1]
at org.dspace.app.rest.repository.DSpaceRestRepository.createAndReturn(DSpaceRestRepository.java:308) ~[classes/:7.1.1]
at org.dspace.app.rest.repository.DSpaceRestRepository$$FastClassBySpringCGLIB$$615525f9.invoke(<generated>) ~[classes/:7.1.1]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.dspace.app.rest.repository.WorkflowItemRestRepository$$EnhancerBySpringCGLIB$$554b64d.createAndReturn(<generated>) ~[classes/:7.1.1]
Caused by: java.io.IOException: Authorization denied for action READ on BITSTREAM:cad9f343-6588-4a5f-a7a6-8acc996f58ef by user null
at org.dspace.ctask.general.ClamScan.perform(ClamScan.java:125) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.ResolvedTask.perform(ResolvedTask.java:79) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.Curator$TaskRunner.run(Curator.java:547) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.Curator.curate(Curator.java:275) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.XmlWorkflowCuratorServiceImpl.curate(XmlWorkflowCuratorServiceImpl.java:126) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.XmlWorkflowCuratorServiceImpl.doCuration(XmlWorkflowCuratorServiceImpl.java:100) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.xmlworkflow.XmlWorkflowServiceImpl.activateFirstStep(XmlWorkflowServiceImpl.java:318) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.xmlworkflow.XmlWorkflowServiceImpl.start(XmlWorkflowServiceImpl.java:219) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.xmlworkflow.XmlWorkflowServiceImpl.start(XmlWorkflowServiceImpl.java:88) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.app.rest.submit.SubmissionService.createWorkflowItem(SubmissionService.java:265) ~[classes/:7.1.1]
... 139 more
Caused by: org.dspace.authorize.AuthorizeException: Authorization denied for action READ on BITSTREAM:cad9f343-6588-4a5f-a7a6-8acc996f58ef by user null
at org.dspace.authorize.AuthorizeServiceImpl.authorizeAction(AuthorizeServiceImpl.java:166) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.authorize.AuthorizeServiceImpl.authorizeAction(AuthorizeServiceImpl.java:114) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.authorize.AuthorizeServiceImpl.authorizeAction(AuthorizeServiceImpl.java:108) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.content.BitstreamServiceImpl.retrieve(BitstreamServiceImpl.java:298) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.ctask.general.ClamScan.perform(ClamScan.java:105) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.ResolvedTask.perform(ResolvedTask.java:79) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.Curator$TaskRunner.run(Curator.java:547) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.Curator.curate(Curator.java:275) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.XmlWorkflowCuratorServiceImpl.curate(XmlWorkflowCuratorServiceImpl.java:126) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.curate.XmlWorkflowCuratorServiceImpl.doCuration(XmlWorkflowCuratorServiceImpl.java:100) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.xmlworkflow.XmlWorkflowServiceImpl.activateFirstStep(XmlWorkflowServiceImpl.java:318) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.xmlworkflow.XmlWorkflowServiceImpl.start(XmlWorkflowServiceImpl.java:219) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.xmlworkflow.XmlWorkflowServiceImpl.start(XmlWorkflowServiceImpl.java:88) ~[dspace-api-7.1.1.jar:7.1.1]
at org.dspace.app.rest.submit.SubmissionService.createWorkflowItem(SubmissionService.java:265) ~[classes/:7.1.1]
... 139 more
curate.cfg:
plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.NoOpCurationTask = noop
plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.ProfileFormats = profileformats
plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.RequiredMetadata = requiredmetadata
plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.ClamScan = vscan
#plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.MicrosoftTranslator = translate
plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.MetadataValueLinkChecker = checklinks
plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.RegisterDOI = registerdoi
# add new tasks here (or in additional config files)
## task queue implementation
plugin.single.org.dspace.curate.TaskQueue = org.dspace.curate.FileTaskQueue
# directory location of curation task queues
curate.taskqueue.dir = ${dspace.dir}/ctqueues
# Enable ClamAV from UI
curate.ui.tasknames = vscan = Virus Scan
workflow-curation.xml
<?xml version="1.0" encoding="UTF-8" ?>
<workflow-curation xmlns='
https://dspace.org/workflow-curation'>
<taskset-map>
<mapping collection-handle="default" taskset="cautious" />
</taskset-map>
<tasksets>
<taskset name="cautious">
<flowstep name="step1">
<task name="vscan">
<workflow>reject</workflow>
<notify on="fail">$flowgroup</notify>
<notify on="fail">$colladmin</notify>
<notify on="error">$siteadmin</notify>
</task>
</flowstep>
</taskset>
<!-- We require an empty taskset to match "none" mappings. DO NOT REMOVE! -->
<taskset name='none'/>
</tasksets>
</workflow-curation>