cancel
Showing results for 
Search instead for 
Did you mean: 

Complete Task error jpa_entity

jcharnet
Champ in-the-making
Champ in-the-making
Hello, I'm having an error when I try to complete a human task through Activiti Explorer.
I'm starting the workflow through my own APP, and then use Activiti Explorer to claim and complete the Task.

Here is my error

Cause: org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: org.activiti.engine.ActivitiException: unknown variable type name jpa-entity
### The error may involve org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByExecutionId-Inline
### The error occurred while setting parameters
### Cause: org.activiti.engine.ActivitiException: unknown variable type name jpa-entity
   at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
   at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164)
   at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1193)
   at com.vaadin.ui.Button.fireClick(Button.java:539)
   at com.vaadin.ui.Button.changeVariables(Button.java:206)
   at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1299)
   at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1219)
   at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:735)
   at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296)
   at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:501)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: org.activiti.engine.ActivitiException: unknown variable type name jpa-entity
### The error may involve org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByExecutionId-Inline
### The error occurred while setting parameters
### Cause: org.activiti.engine.ActivitiException: unknown variable type name jpa-entity
   at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:77)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:69)
   at org.activiti.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:182)
   at org.activiti.engine.impl.persistence.entity.VariableInstanceManager.findVariableInstancesByExecutionId(VariableInstanceManager.java:47)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.loadVariableInstances(ExecutionEntity.java:880)
   at org.activiti.engine.impl.persistence.entity.VariableScopeImpl.ensureVariableInstancesInitialized(VariableScopeImpl.java:57)
   at org.activiti.engine.impl.persistence.entity.VariableScopeImpl.getVariableNamesLocal(VariableScopeImpl.java:150)
   at org.activiti.engine.impl.persistence.entity.VariableScopeImpl.removeVariablesLocal(VariableScopeImpl.java:275)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.destroy(ExecutionEntity.java:287)
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessEnd.eventNotificationsCompleted(AtomicOperationProcessEnd.java:58)
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:52)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:45)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityEnd.eventNotificationsCompleted(AtomicOperationActivityEnd.java:55)
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:52)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.end(ExecutionEntity.java:299)
   at org.activiti.engine.impl.bpmn.behavior.NoneEndEventActivityBehavior.execute(NoneEndEventActivityBehavior.java:24)
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:40)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerStart.java:48)
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:52)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicOperationTransitionCreateScope.java:44)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake.execute(AtomicOperationTransitionNotifyListenerTake.java:61)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionDestroyScope.execute(AtomicOperationTransitionDestroyScope.java:111)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerEnd.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerEnd.java:36)
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:52)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:45)
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:326)
   at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performOutgoingBehavior(BpmnActivityBehavior.java:92)
   at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performDefaultOutgoingBehavior(BpmnActivityBehavior.java:49)
   at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.leave(FlowNodeActivityBehavior.java:44)
   at org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior.leave(AbstractBpmnActivityBehavior.java:37)
   at org.activiti.engine.impl.bpmn.behavior.UserTaskActivityBehavior.signal(UserTaskActivityBehavior.java:74)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.signal(ExecutionEntity.java:309)
   at org.activiti.engine.impl.persistence.entity.TaskEntity.complete(TaskEntity.java:149)
   at org.activiti.engine.impl.cmd.CompleteTaskCmd.completeTask(CompleteTaskCmd.java:63)
   at org.activiti.engine.impl.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:57)
   at org.activiti.engine.impl.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:28)
   at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
   at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
   at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
   at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
   at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
   at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
   at org.activiti.engine.impl.TaskServiceImpl.complete(TaskServiceImpl.java:144)
   at org.activiti.explorer.ui.task.TaskDetailPanel$5.buttonClick(TaskDetailPanel.java:344)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:490)
   … 22 more
Caused by: org.activiti.engine.ActivitiException: unknown variable type name jpa-entity
   at org.activiti.engine.impl.db.IbatisVariableTypeHandler.getResult(IbatisVariableTypeHandler.java:40)
   at org.apache.ibatis.executor.resultset.FastResultSetHandler.getPropertyMappingValue(FastResultSetHandler.java:238)
   at org.apache.ibatis.executor.resultset.FastResultSetHandler.applyPropertyMappings(FastResultSetHandler.java:221)
   at org.apache.ibatis.executor.resultset.FastResultSetHandler.getRowValue(FastResultSetHandler.java:196)
   at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleRowValues(FastResultSetHandler.java:145)
   at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleResultSet(FastResultSetHandler.java:121)
   at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleResultSets(FastResultSetHandler.java:98)
   at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:40)
   at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55)
   at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:41)
   at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:216)
   at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:95)
   at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:72)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:75)
   … 90 more


Any idea on what is happening ?

Thanks a lot.

John
13 REPLIES 13

frederikherema1
Star Contributor
Star Contributor
Does your configuration state you're using JPA? If not, the JPA-type will not be registered… The applicationContext.xml (if you're using explorer2) contains the engine configuration by the way:

http://www.activiti.org/userguide/index.html#jpaconfiguration , relevant properties:

<property name="jpaPersistenceUnitName" value="activiti-jpa-pu" />
    <property name="jpaHandleTransaction" value="true" />
    <property name="jpaCloseEntityManager" value="true" />

jcharnet
Champ in-the-making
Champ in-the-making
Thanks for your reply.
This error is happening from  Activiti Explorer (the newer version from Activiti 5.7), when I click on the Complete button, from a user task.

When you asked if my configuration stated using JPA, do you mean my application that starts the workflow and sets the entity in the process ?
If so, it is configured to use JPA, but it did not have these 2 parameters you mentioned jpaHandleTransaction and jpaCloseEntityManager.
I've set these 2 parameters in my application, and also in Activiti Explorer. Executed my workflow from my application, and went in Activiti Explorer, to claim and complete the task. When I clicked the complete button, I got the same exception
Caused by: org.activiti.engine.ActivitiException: unknown variable type name jpa-entity

Am I missing some other configuration ?

Thanks again.

John

jbarrez
Star Contributor
Star Contributor
Have you changed the applicationContext.xml file in the explorer webapp?

jcharnet
Champ in-the-making
Champ in-the-making
Yes, this is what my processEngineConfiguration looks like

<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
   <property name="dataSource" ref="dataSource" />
   <property name="transactionManager" ref="transactionManager" />
   <property name="databaseSchemaUpdate" value="true" />
   <property name="jobExecutorActivate" value="true" />
   <property name="jpaHandleTransaction" value="true" />
   <property name="jpaCloseEntityManager" value="true" />

    <property name="customFormTypes">
      <list>
        <ref bean="userFormType"/>
      </list>
    </property>
  </bean>

frederikherema1
Star Contributor
Star Contributor
You should also set the EntityManager in your activiti-configuration that should be used, otherwise the JPA-variable type won't be added… This is off course required, to fetch/save the entities you're using.

jcharnet
Champ in-the-making
Champ in-the-making
Sorry for the delay to answer.
I just did a test, configuring my jpa settings in Activiti Exploerer, copying all the necessary jars. Everything seems do go well.
But now, when I try to view my process instance (that has the jpa entity), I'm getting the following error:

org.activiti.engine.ActivitiException: Cannot flush EntityManager, an active transaction is required


Any idea on what I need to do to configure this ?

Thanks,

John

frederikherema1
Star Contributor
Star Contributor
Can you elaborate a bit more on your setup:

- How does your process look?
- How and where do you add the JPA-entity to the process.
- Where are you viewing your process when you say "I try to view my process instance (that has the jpa entity), I'm getting the following error:"

jcharnet
Champ in-the-making
Champ in-the-making
- Not sure what you mean by this question ("How does your process look").
My process is a simple workflow that has a Service task and a human task.
My web application starts the workflow and passes my entity as a parameter. My service task, uses this entity to validate some information and then calls a my Spring class to do some business rule. Then comes the human task, which is waiting for some user to claim and complete the task.
I'm trying to use activiti to view my process instance (My instance menu). So that I can see what step I'm in, in the workflow.

Did I clarify anything for you ?
If you need any other information, please let me know.

Thanks.

frederikherema1
Star Contributor
Star Contributor
By the look of your process I mean the XML Smiley Wink

So your webapp is running in the same tomcat as the activiti-explorer? If yes, is the activiti explorer and your other app configured the same way (in terms of entity-manager configuration etc)?