Issue with review group assignment (DSpace7.1.1)

236 views
Skip to first unread message

Robert Jäger

unread,
Jan 11, 2022, 4:08:23 PM1/11/22
to DSpace Technical Support
Hi again,
I was trying to play around with running curation tasks after document upload. I followed the steps in the manual and then figured it can't work, since there is no role assignment yet done in my collection.
So what I did was adding a group for review. In this newly created group I just added the administrator subgroup for quicktest.

Then I tried uploading a document (with administrator account). The submission entry screen shows up just fine; the problems start when hitting the "Deposit" button. Without having any roles in place it would just upload fine, but now with the review group added I am getting an error that the submission failed. After checking the Backend Log, I found a very long exception (pasted at end of message).

I am now wondering if I missed out anything on setting up the first things in DSpace. I have not touched the workflow xmls, so it should be default (which is entirely sufficient for my needs).
When attaching a curation task to a workflow, there is a flowstep "step1" referenced in the example for workflow-curation.xml. Is this like a default entry or do I need to adjust the same to the review workflow bean, where "reviewstep" is defined as name?

For the mentioned exception, though, this does not seem to be the root cause.

Any help is appreciated.
Thanks
Robert

2022-01-11 21:42:17,734 INFO  d48f6652-ed56-4e76-b85f-0d8f54988784 a567d497-d7e8-4cbf-ac73-ea399cc86598 org.dspace.app.rest.utils.DSpaceAPIRequestLoggingFilter @ Before request [POST /server/api/workflow/workflowitems] originated from /workspaceitems/17/edit
2022-01-11 21:42:17,826 INFO  d48f6652-ed56-4e76-b85f-0d8f54988784 a567d497-d7e8-4cbf-ac73-ea399cc86598 org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItemServiceImpl @ mym...@unlisted.net::update_workflow_item:workflowitem_id=16
2022-01-11 21:42:17,827 INFO  d48f6652-ed56-4e76-b85f-0d8f54988784 a567d497-d7e8-4cbf-ac73-ea399cc86598 org.dspace.content.Item @ mym...@unlisted.net::update_item:item_id=d9eb00bb-644c-4eb1-8304-f56c23805682
2022-01-11 21:42:17,828 INFO  d48f6652-ed56-4e76-b85f-0d8f54988784 a567d497-d7e8-4cbf-ac73-ea399cc86598 org.dspace.content.Item @ mym...@unlisted.net::update_item:item_id=d9eb00bb-644c-4eb1-8304-f56c23805682
2022-01-11 21:42:17,842 INFO  d48f6652-ed56-4e76-b85f-0d8f54988784 a567d497-d7e8-4cbf-ac73-ea399cc86598 org.dspace.content.Item @ mym...@unlisted.net::update_item:item_id=d9eb00bb-644c-4eb1-8304-f56c23805682
2022-01-11 21:42:17,906 ERROR d48f6652-ed56-4e76-b85f-0d8f54988784 a567d497-d7e8-4cbf-ac73-ea399cc86598 org.dspace.app.rest.exception.DSpaceApiExceptionControllerAdvice @ An exception has occurred (status:500)
java.lang.RuntimeException: The workflow could not be started for workspaceItem withid:  17
        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$$6ca51b71.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$$6ca51b71.createAndReturn(<generated>) ~[classes/:7.1.1]
        at org.dspace.app.rest.RestResourceController.postUriListInternal(RestResourceController.java:461) ~[classes/:7.1.1]
        at org.dspace.app.rest.RestResourceController.postWithUriListContentType(RestResourceController.java:406) ~[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.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) [spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) [spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) [spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) [tomcat9-servlet-api.jar:?]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) [tomcat9-servlet-api.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat9-websocket-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:289) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.dspace.app.rest.filter.DSpaceRequestContextFilter.doFilter(DSpaceRequestContextFilter.java:45) [classes/:7.1.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.dspace.app.rest.filter.ContentLanguageHeaderResponseFilter.doFilter(ContentLanguageHeaderResponseFilter.java:51) [classes/:7.1.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.dspace.utils.servlet.DSpaceWebappServletFilter.doFilter(DSpaceWebappServletFilter.java:84) [dspace-services-7.1.1.jar:7.1.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.dspace.app.rest.security.AnonymousAdditionalAuthorizationFilter.doFilterInternal(AnonymousAdditionalAuthorizationFilter.java:67) [classes/:7.1.1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.dspace.app.rest.security.StatelessAuthenticationFilter.doFilterInternal(StatelessAuthenticationFilter.java:102) [classes/:7.1.1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:141) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) [spring-security-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:128) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
        at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
        at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:103) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:121) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) [spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71) [log4j-web-2.15.0.jar:2.15.0]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat9-catalina-9.0.31.jar:9.0.31]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) [tomcat9-coyote-9.0.31.jar:9.0.31]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat9-coyote-9.0.31.jar:9.0.31]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat9-coyote-9.0.31.jar:9.0.31]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1639) [tomcat9-coyote-9.0.31.jar:9.0.31]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat9-coyote-9.0.31.jar:9.0.31]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat9-util-9.0.31.jar:9.0.31]
        at java.lang.Thread.run(Thread.java:829) [?:?]


Robert Jäger

unread,
Jan 11, 2022, 4:37:24 PM1/11/22
to DSpace Technical Support
Adding Tomcat log of the POST request failing with 500:

127.0.0.1 - - [11/Jan/2022:21:42:17 +0100] "POST /server/api/workflow/workflowitems?projection=full HTTP/1.1" 500 183

Checking in HAL Browser (GET request only) returns:

200 success cache-control: no-cache, no-store, max-age=0, must-revalidate connection: keep-alive content-language: en,de content-type: application/hal+json;charset=UTF-8 date: Tue, 11 Jan 2022 21:28:19 GMT expires: 0 keep-alive: timeout=20 pragma: no-cache transfer-encoding: chunked vary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers, Origin, Access-Control-Request-Method, Access-Control-Request-Headers x-content-type-options: nosniff x-frame-options: DENY x-xss-protection: 1; mode=block

{ "_links": { "self": { "href": "http://127.0.0.1:8080/server/api/workflow/workflowitems?projection=full" }, "search": { "href": "http://127.0.0.1:8080/server/api/workflow/workflowitems/search" } }, "page": { "size": 20, "totalElements": 0, "totalPages": 0, "number": 0 } }

(I do not want to play around with POST without knowing what I am doing here)

Tim Donohue

unread,
Jan 11, 2022, 5:52:12 PM1/11/22
to DSpace Technical Support

Hi Robert,

Unfortunately, on that line, it appears the exception is being accidentally swallowed (this is a bug).  That line 267 & line 268 should say:

// Notice the ", e" which will ensure the "Caused by" is displayed in logs. It's missing from the current code.
throw new RuntimeException("The workflow could not be started for workspaceItem with" +

"id: " + id, e);


If you were to correct that line of code & recompile/redeploy the backend (Sorry, I know that's a pain) then you'd be able to see the real error in your logs
(in a "Caused by" statement) and it'd probably tell us the exact problem. Without the real underlying error, I'd just be guessing here & unfortunately you've found an ugly "error swallowing" bug
(which I'm going to submit a fix for in our codebase right away).

Tim

Robert Jäger

unread,
Jan 11, 2022, 7:10:32 PM1/11/22
to DSpace Technical Support
Hi Tim,

thanks for your answer.
I will give it a try in the next days.
Not sure what is happening here, as this is a very fresh installation with bascially no customization beyond config changes taken from Wiki.
When re-running mvn and ant, are there any specific options to make sure my existing configuration is not overwritten?

Thanks
Robert

Tim Donohue

unread,
Jan 12, 2022, 10:50:11 AM1/12/22
to DSpace Technical Support
Hi Robert,

You can rebuild & reinstall by running "mvn package", Stopping Tomcat, "ant update", restart Tomcat.  These steps are essentially similar to a minor "upgrade" as you are updating your installed version of the code.  So, those four steps generally align with steps #3, 4, 6, and 11 of our Upgrade Guide at https://wiki.lyrasis.org/display/DSDOC7x/Upgrading+DSpace#UpgradingDSpace-UpgradingtheBackendSteps  (The other upgrade steps aren't necessary in this case as you don't need to check your configs, upgrade your database or reindex....all you are doing is installing updated/recompiled code.)

Tim

Robert Jäger

unread,
Jan 12, 2022, 1:10:29 PM1/12/22
to DSpace Technical Support
Hi Tim,

I did a rebuild of the backend.
While running ant update, I got some exception, but the overall process finished successfully. Database is found and working, though.

test_database:
     [java] 2022-01-12 18:46:06,481 WARN  org.dspace.servicemanager.DSpaceServiceManager @ Unable to locate bean by name or id=database. Will try to look up bean by type next.
     [java] org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'database' available
     [java]     at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:808) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
     [java]     at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1279) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
     [java]     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:297) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
     [java]     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
     [java]     at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1114) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
     [java]     at org.dspace.servicemanager.DSpaceServiceManager.getServiceByName(DSpaceServiceManager.java:426) [dspace-services-7.1.1.jar:7.1.1]
     [java]     at org.dspace.scripts.ScriptServiceImpl.getScriptConfiguration(ScriptServiceImpl.java:33) [dspace-api-7.1.1.jar:7.1.1]
     [java]     at org.dspace.app.launcher.ScriptLauncher.handleScript(ScriptLauncher.java:125) [dspace-api-7.1.1.jar:7.1.1]
     [java]     at org.dspace.app.launcher.ScriptLauncher.main(ScriptLauncher.java:98) [dspace-api-7.1.1.jar:7.1.1]
     [java]
     [java] Attempting to connect to database
     [java] Connected successfully!

Now coming to the swallowed exception.
I cannot provide a new log with more information, because...
...now everything works as expected! I have no idea what is going on. There must have been an issue with the initial build.

\(o_o)/

So left is hooking the curation workflow with this "step1" name mentioned above.

Thanks
Robert

Robert Jäger

unread,
Jan 12, 2022, 4:02:45 PM1/12/22
to DSpace Technical Support
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>

Robert Jäger

unread,
Jan 18, 2022, 3:50:51 PM1/18/22
to DSpace Technical Support
Unfortunately the only workaround I was able to find is disabling virus scan entirely. The issue appears to be coming from curate.cfg configuration changes only, whatever I change in workflow-curation.xml does not seem to make any difference w.r.t. the above exception. This means pure enabling of a virus scan curation task without binding the same to any workflow step is breaking things for me.

Is there any known way that I can still have virus scan enabled as manually triggered curation task without breaking the workflow at inital step (htting deposit button after document upload)?

Mark H. Wood

unread,
Jan 19, 2022, 9:04:46 AM1/19/22
to dspac...@googlegroups.com
An incomplete analysis:

The cause of the failure is that the DSpace Context being used for
curation has no user. The session, so far as curation is concerned,
is anonymous and has no permission to manipulate the object.

Curator.curationContext() will manufacture a Context for curation if
none exists, but it creates it with no user. Somewhere in
workflow-attached curation we should be fetching that Context and
giving it a user, probably the one which owns the interactive Context.

--
Mark H. Wood
Lead Technology Analyst

University Library
Indiana University - Purdue University Indianapolis
755 W. Michigan Street
Indianapolis, IN 46202
317-274-0749
www.ulib.iupui.edu
signature.asc

Robert Jäger

unread,
Jan 23, 2022, 6:19:53 AM1/23/22
to DSpace Technical Support
Hi Mark,

thanks for analyzing this.
Do you want me to derive an issue on GitHub for this topic?

Thanks
Robert
Reply all
Reply to author
Forward
0 new messages