Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-4278

ClassCastException for ConnectTimeout REST WorkItem/Service Task input parameter

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • jBPM 6.1.0.Final
    • jBPM 6.0.0.Final
    • Runtime Engine
    • None
    • Hide
      • Create a process
      • Add start node
      • Drag a REST Service Task
      • Drag end node
      • Connect all three so start node moves to REST, then moves to end
      • Click on REST service task and expand properties
      • Open Assignments and note that there is no assignment for Url, even though all other parameters are there
      • Add assignment for Url and set "is equal to" the Url for a REST service
      • Set Method parameter appropriately (e.g. "is equal to" POST or GET)
      • Build/deploy process
      • Go to Process Management -> Process Definitions and click "start"
      • Note that exception is thrown: "java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer"
      • Go back to process definition and edit DataInputSet property
      • Change "Standard Type" of ReadTimeout and ConnectTimeout from "String" to "Integer"
      • Build/Deploy process
      • Try to start process again, which should result in same exception.
      • Go back to process definition and edit Assignments property
      • Set a value for both ReadTimeout and ConnectTimeout (e.g. 6000)
      • Build/Deploy process
      • Try to start process again, which should result in same exception.
      Show
      Create a process Add start node Drag a REST Service Task Drag end node Connect all three so start node moves to REST, then moves to end Click on REST service task and expand properties Open Assignments and note that there is no assignment for Url, even though all other parameters are there Add assignment for Url and set "is equal to" the Url for a REST service Set Method parameter appropriately (e.g. "is equal to" POST or GET) Build/deploy process Go to Process Management -> Process Definitions and click "start" Note that exception is thrown: "java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer" Go back to process definition and edit DataInputSet property Change "Standard Type" of ReadTimeout and ConnectTimeout from "String" to "Integer" Build/Deploy process Try to start process again, which should result in same exception. Go back to process definition and edit Assignments property Set a value for both ReadTimeout and ConnectTimeout (e.g. 6000) Build/Deploy process Try to start process again, which should result in same exception.

    Description

      Default configuration for REST Service Task needs modification.

      Issue #1: Even though all other parameters appear under "Assignments" by default, no assignment is included for "Url" parameter by default, even though it is required. Error message from RESTWorkItemHandler.java:110 was descriptive, and I added the assignment, but it should ideally be there already.

      Issue #2: Once I've assigned values to "Url" and "Method", executing an instance of the process results in the stacktrace below[1]. I noticed that ReadTimeout and ConnectTimeout parameters in DataInputSet are defaulting to type String, even though they're treated as Integer in RESTWorkItemHandler.java, but changing their type to Integer in the DataInputSet doesn't seem to have fixed the problem. Assigning them values also results in the same exception.

      [1] 14:44:34,598 WARN [org.jbpm.services.task.persistence.TaskTransactionInterceptor] (http-localhost/127.0.0.1:8080-2) Could not commit session: org.jbpm.workflow.instance.WorkflowRuntimeException: [DMSPlusWorkflow.POCWorkflow:3 - REST:3] – java.lang.String cannot be cast to java.lang.Integer
      at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:135) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:155) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:337) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:296) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:44) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:286) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:265) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.node.WorkItemNodeInstance.triggerCompleted(WorkItemNodeInstance.java:275) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.node.HumanTaskNodeInstance.triggerCompleted(HumanTaskNodeInstance.java:93) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.node.WorkItemNodeInstance.workItemCompleted(WorkItemNodeInstance.java:337) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.node.WorkItemNodeInstance.signalEvent(WorkItemNodeInstance.java:313) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:399) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.completeWorkItem(JPAWorkItemManager.java:134) [drools-persistence-jpa-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.core.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:74) [drools-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.core.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:35) [drools-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.core.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36) [drools-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41) [drools-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.persistence.SingleSessionCommandService$TransactionInterceptor.execute(SingleSessionCommandService.java:527) [drools-persistence-jpa-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41) [drools-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:73) [drools-persistence-jpa-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:375) [drools-persistence-jpa-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.core.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:147) [drools-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.wih.ExternalTaskEventListener.processTaskState(ExternalTaskEventListener.java:75) [jbpm-human-task-workitems-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.wih.ExternalTaskEventListener.afterTaskCompletedEvent(ExternalTaskEventListener.java:119) [jbpm-human-task-workitems-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.events.TaskEventSupport.fireAfterTaskCompleted(TaskEventSupport.java:189) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.internals.lifecycle.MVELLifeCycleManager.taskOperation(MVELLifeCycleManager.java:340) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.identity.UserGroupLifeCycleManagerDecorator.taskOperation(UserGroupLifeCycleManagerDecorator.java:46) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.impl.TaskInstanceServiceImpl.complete(TaskInstanceServiceImpl.java:138) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.commands.CompleteTaskCommand.execute(CompleteTaskCommand.java:70) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.commands.CompleteTaskCommand.execute(CompleteTaskCommand.java:37) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.commands.CompositeCommand.execute(CompositeCommand.java:38) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.commands.TaskCommandExecutorImpl$SelfExecutionCommandService.execute(TaskCommandExecutorImpl.java:65) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41) [drools-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.persistence.TaskTransactionInterceptor.execute(TaskTransactionInterceptor.java:54) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.commands.TaskCommandExecutorImpl.execute(TaskCommandExecutorImpl.java:40) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.services.task.impl.command.CommandBasedTaskService.complete(CommandBasedTaskService.java:144) [jbpm-human-task-core-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.console.ng.ht.backend.server.TaskServiceEntryPointImpl.complete(TaskServiceEntryPointImpl.java:312) [jbpm-console-ng-human-tasks-backend-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.console.ng.ht.backend.server.TaskServiceEntryPointImpl$Proxy$$$_WeldClientProxy.complete(TaskServiceEntryPointImpl$Proxy$$$_WeldClientProxy.java) [jbpm-console-ng-human-tasks-backend-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
      at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
      at org.jboss.errai.bus.server.io.AbstractRPCMethodCallback.invokeMethodFromMessage(AbstractRPCMethodCallback.java:48) [errai-bus-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at org.jboss.errai.bus.server.io.VoidRPCEndpointCallback.callback(VoidRPCEndpointCallback.java:20) [errai-bus-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at org.jboss.errai.bus.server.io.RemoteServiceCallback.callback(RemoteServiceCallback.java:54) [errai-bus-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at org.jboss.errai.cdi.server.CDIExtensionPoints$3.callback(CDIExtensionPoints.java:499) [errai-weld-integration-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at org.jboss.errai.bus.server.DeliveryPlan.deliver(DeliveryPlan.java:47) [errai-bus-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at org.jboss.errai.bus.server.ServerMessageBusImpl.sendGlobal(ServerMessageBusImpl.java:284) [errai-bus-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at org.jboss.errai.bus.server.SimpleDispatcher.dispatchGlobal(SimpleDispatcher.java:46) [errai-bus-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServiceImpl.java:92) [errai-bus-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServiceImpl.java:109) [errai-bus-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at org.jboss.errai.bus.server.servlet.DefaultBlockingServlet.doPost(DefaultBlockingServlet.java:140) [errai-bus-2.4.3.Final-redhat-4.jar:2.4.3.Final-redhat-4]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(CatchExceptionFilter.java:65) [solder-impl-3.2.1.Final.jar:3.2.1.Final]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(ServletEventBridgeFilter.java:74) [solder-impl-3.2.1.Final.jar:3.2.1.Final]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.jbpm.designer.web.filter.impl.PluggableFilter.doFilter(PluggableFilter.java:70) [jbpm-designer-backend-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.uberfire.security.server.UberFireSecurityFilter.doFilter(UberFireSecurityFilter.java:266) [uberfire-security-server-0.3.2-redhat-2.jar:0.3.2-redhat-2]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:499) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
      at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
      at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:408) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
      at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
      Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
      at org.jbpm.process.workitem.rest.RESTWorkItemHandler.executeWorkItem(RESTWorkItemHandler.java:118) [jbpm-workitems-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.internalExecuteWorkItem(JPAWorkItemManager.java:56) [drools-persistence-jpa-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:124) [jbpm-flow-6.0.2-redhat-2.jar:6.0.2-redhat-2]
      ... 82 more

      Attachments

        Activity

          People

            swiderski.maciej Maciej Swiderski (Inactive)
            david.vanbalen@amentra.com David van Balen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: