Defect #1926
closedRedirect after approve task on Firefox doesn't work
100%
Description
The redirect after approve task on Firefox (70.0 (64 bit)) doesn't work. Different between Chrome and Firefox is that Firefox call permissions endpoint ".../idm/api/v1/workflow-tasks/1a9fed29-0473-11ea-aca8-ce80863c5ee5/permissions" this enpoint isn't called by Chrome. For more information see gifs.
Error from browser:
{ "_errors" : [ { "id" : "d49739c1-1255-4cd6-ad38-af8ecdc6984a", "creation" : "2019-11-11T11:06:32.968Z", "statusEnum" : "INTERNAL_SERVER_ERROR", "message" : "[Assertion failed] - this argument is required; it must not be null", "parameters" : { }, "module" : "core", "statusCode" : 500, "status" : "INTERNAL_SERVER_ERROR" } ] }
Error from log:
java.lang.IllegalArgumentException: [Assertion failed] - this argument is required; it must not be null at org.springframework.util.Assert.notNull(Assert.java:115) at org.springframework.util.Assert.notNull(Assert.java:126) at eu.bcvsolutions.idm.core.workflow.service.impl.DefaultWorkflowTaskInstanceService.getPermissions(DefaultWorkflowTaskInstanceService.java:193) at eu.bcvsolutions.idm.core.workflow.rest.WorkflowTaskInstanceController.getPermissions(WorkflowTaskInstanceController.java:128) at eu.bcvsolutions.idm.core.workflow.rest.WorkflowTaskInstanceController$$FastClassBySpringCGLIB$$48c9edc8.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:651) at eu.bcvsolutions.idm.core.workflow.rest.WorkflowTaskInstanceController$$EnhancerBySpringCGLIB$$8a4e50cd.getPermissions(<generated>) at sun.reflect.GeneratedMethodAccessor2102.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:832) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:743) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:858) at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at eu.bcvsolutions.idm.core.security.auth.filter.ExtendExpirationFilter.doFilter(ExtendExpirationFilter.java:67)
The main issue is that after approve task is user still on task and second approve throw next error:
java.lang.IllegalArgumentException: [Assertion failed] - this argument is required; it must not be null at org.springframework.util.Assert.notNull(Assert.java:115) at org.springframework.util.Assert.notNull(Assert.java:126) at eu.bcvsolutions.idm.core.workflow.service.impl.DefaultWorkflowTaskInstanceService.getPermissions(DefaultWorkflowTaskInstanceService.java:193) at eu.bcvsolutions.idm.core.workflow.service.impl.DefaultWorkflowTaskInstanceService.canExecute(DefaultWorkflowTaskInstanceService.java:172)
Approving by Firefox:
¶
Approving by Chrome:
¶
Affected version: 9.7.11
Files
Related issues
Updated by Radek Tomiška over 4 years ago
- Status changed from New to In Progress
- Assignee set to Radek Tomiška
- Target version set to Rhyolite (9.7.12)
The issue is related to:
https://github.com/bcvsolutions/CzechIdMng/blob/hotfix-9.7.12/Realization/frontend/czechidm-core/src/content/task/DynamicTaskDetail.js#L98
=> both branches are called and page is redirect back to detail => detail is not available after task is completed.
Updated by Radek Tomiška over 4 years ago
- Related to Task #680: showLoading after approve task from mail added
Updated by Radek Tomiška over 4 years ago
- Status changed from In Progress to New
- Assignee changed from Radek Tomiška to Vít Švanda
- Target version deleted (
Rhyolite (9.7.12))
Updated by Vít Švanda over 4 years ago
- Status changed from New to Needs feedback
- Assignee changed from Vít Švanda to Radek Tomiška
- Target version set to Rhyolite (9.7.12)
- % Done changed from 0 to 90
I didn't found solution working on all browsers. So I agree, with removing functionality using browsers history. It means after task is completed, then user will be redirected on all tasks ... always.
Commit: https://github.com/bcvsolutions/CzechIdMng/commit/6cd0840422afdf942970c3ab91266c724d752183
Updated by Radek Tomiška over 4 years ago
- Status changed from Needs feedback to Resolved
- Assignee changed from Radek Tomiška to Vít Švanda
- % Done changed from 90 to 100
It's awesome! It works and code is nice.
Updated by Radek Tomiška over 4 years ago
- Status changed from Resolved to Closed