Project

General

Profile

Actions

Defect #1926

closed

Redirect after approve task on Firefox doesn't work

Added by Ondřej Kopr over 4 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Vít Švanda
Category:
Frontend
Target version:
Start date:
11/11/2019
Due date:
% Done:

100%

Estimated time:
Affected versions:
Owner:

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

chrome.gif (327 KB) chrome.gif Ondřej Kopr, 11/11/2019 11:12 AM
firefox.gif (597 KB) firefox.gif Ondřej Kopr, 11/11/2019 11:12 AM

Related issues

Related to IdStory Identity Manager - Task #680: showLoading after approve task from mailClosedOndřej Kopr08/31/2017

Actions
Actions #1

Updated by Ondřej Kopr over 4 years ago

  • Category set to Frontend
Actions #2

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.

Actions #3

Updated by Radek Tomiška over 4 years ago

  • Related to Task #680: showLoading after approve task from mail added
Actions #4

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))
Actions #5

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

Actions #6

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.

Actions #7

Updated by Radek Tomiška over 4 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF