NullPointerException on taskService.getTasksAssignedAsPotentialOwnerByStatusByGroup() in BRMS 5.3

Solution In Progress - Updated -

Issue

  • When a request is sent from the client to the server to get the user's tasks with a user id and empty group id list as parameters, there is an "unexpected end of subtree" exception being thrown. The server generate a RuntimeException and sends that back to the client, therefore the original message and its content are lost and the client doesn't know what happened on the server.

server side:

17:00:43,624 ERROR [TaskServerHandler] Operation failed
java.lang.RuntimeException: Operation failed
    at org.jbpm.task.service.persistence.TaskPersistenceManager.queryWithParametersInTransaction(TaskPersistenceManager.java:302)
    at org.jbpm.task.service.persistence.TaskPersistenceManager.queryWithParametersInTransaction(TaskPersistenceManager.java:309)
    at org.jbpm.task.service.TaskServiceSession.getTasksAssignedAsPotentialOwnerByStatusByGroup(TaskServiceSession.java:1048)
    at org.jbpm.task.service.TaskServerHandler.messageReceived(TaskServerHandler.java:354)
    at org.jbpm.task.service.hornetq.HornetQTaskServerHandler.messageReceived(HornetQTaskServerHandler.java:44)
    at org.jbpm.task.service.hornetq.BaseHornetQTaskServer.run(BaseHornetQTaskServer.java:104)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree [select new org.jbpm.task.query.TaskSummary( t.id, t.taskData.processInstanceId, name.text, subject.text, description.text, t.taskData.status, t.priority, t.taskData.skipable, actualOwner, createdBy, t.taskData.createdOn, t.taskData.activationTime, t.taskData.expirationTime, t.taskData.processId, t.taskData.processSessionId) from org.jbpm.task.Task t left join t.taskData.createdBy as createdBy left join t.taskData.actualOwner as actualOwner left join t.subjects as subject left join t.descriptions as description left join t.names as name, org.jbpm.task.OrganizationalEntity potentialOwners where t.archived = 0 and ( potentialOwners.id = :userId or potentialOwners.id in () ) and potentialOwners in elements ( t.peopleAssignments.potentialOwners ) and ( name.language = :language or t.names.size = 0 ) and ( subject.language = :language or t.subjects.size = 0 ) and ( description.language = :language or t.descriptions.size = 0 ) and t.taskData.status in (:status0_, :status1_) and t.taskData.expirationTime is null]
    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:603)
    at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:103)
    at org.jbpm.task.service.persistence.TaskPersistenceManager.queryWithParameters(TaskPersistenceManager.java:344)
    at org.jbpm.task.service.persistence.TaskPersistenceManager.queryWithParametersInTransaction(TaskPersistenceManager.java:287)
    ... 6 more
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree [select new org.jbpm.task.query.TaskSummary( t.id, t.taskData.processInstanceId, name.text, subject.text, description.text, t.taskData.status, t.priority, t.taskData.skipable, actualOwner, createdBy, t.taskData.createdOn, t.taskData.activationTime, t.taskData.expirationTime, t.taskData.processId, t.taskData.processSessionId) from org.jbpm.task.Task t left join t.taskData.createdBy as createdBy left join t.taskData.actualOwner as actualOwner left join t.subjects as subject left join t.descriptions as description left join t.names as name, org.jbpm.task.OrganizationalEntity potentialOwners where t.archived = 0 and ( potentialOwners.id = :userId or potentialOwners.id in () ) and potentialOwners in elements ( t.peopleAssignments.potentialOwners ) and ( name.language = :language or t.names.size = 0 ) and ( subject.language = :language or t.subjects.size = 0 ) and ( description.language = :language or t.descriptions.size = 0 ) and t.taskData.status in (:status0_, :status1_) and t.taskData.expirationTime is null]
    at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:55)
    at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:48)
    at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:83)
    at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:262)
    at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:186)
    at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:137)
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
    at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124)
    at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1184)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
    at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:94)
    ... 8 more

client side:

24/02 17:01:52,905[Thread-1] ERROR service.hornetq.HornetQTaskClientConnector.run  - Client Exception with class class org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1 using port 5153
java.lang.NullPointerException
    at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:62)
    at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56)
    at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122)
    at java.lang.Thread.run(Thread.java:662)
Exception in thread "main" java.lang.RuntimeException: Timeout : unable to retrieve results
    at org.jbpm.task.service.responsehandlers.BlockingTaskSummaryResponseHandler.getResults(BlockingTaskSummaryResponseHandler.java:41)
    at org.jbpm.task.service.AsyncTaskServiceWrapper.getTasksAssignedAsPotentialOwnerByStatusByGroup(AsyncTaskServiceWrapper.java:756)
    at com.sample.ProcessMainHQJohn.main(ProcessMainHQJohn.java:44)

Environment

  • Red Hat JBoss BRMS
    • 5.3.1
  • jBPM 5
  • Remote Human Task Service

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content