JBoss Community

java.lang.NullPointerException on Notification sent

created by Gonzalo Lazaro in jBPM - View the full discussion

Hello,

 

I've got the following problem using JBPM 4.4:

 

I have a flow started and the first task assignee is set as a process variable in the following way:

 

<task g="196,322,132,52" name="Submit adjustment for approval" candidate-groups="AdjustmentsInitiator" assignee="#{initiator}">
      <notification/>
      <reminder duedate="1 hour" repeat="1 hour"/>
      <transition g="-64,-12" name="submit" to="change_status_to_submitted"/>
      <transition g="-155,-18" name="cancel" to="change_status_to_cancelled"/>
   </task>

 

This is working perfectly and the assignee get a mail advising on the task assignment.

 

However, if the assignee releases the task (ts.assignTask(taskId, null);) I get the following error:

 

java.lang.NullPointerException
    at org.jbpm.pvm.internal.email.impl.MailProducerImpl.tokenizeActors(MailProducerImpl.java:148)
    at org.jbpm.pvm.internal.email.impl.MailProducerImpl.fillRecipients(MailProducerImpl.java:194)
    at org.jbpm.pvm.internal.email.impl.MailProducerImpl.fillRecipients(MailProducerImpl.java:166)
    at org.jbpm.pvm.internal.email.impl.MailProducerImpl.produce(MailProducerImpl.java:82)
    at org.jbpm.jpdl.internal.activity.MailListener.notify(MailListener.java:58)
    at org.jbpm.pvm.internal.model.op.ExecuteEventListener.perform(ExecuteEventListener.java:81)
    at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:672)
    at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:632)
    at org.jbpm.pvm.internal.model.ExecutionImpl.fire(ExecutionImpl.java:579)
    at org.jbpm.pvm.internal.model.ExecutionImpl.fire(ExecutionImpl.java:568)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

....

 

Is there any way to remove the task assignment without the notifications being sent?

 

The test I've done is quite simple:

 

@Test
    public void testReAssignTask() {
        TaskService ts = processEngine.getTaskService();
        String taskId = "490009";
        Task task = ts.getTask(taskId);
        logger.debug(task.getAssignee());
        ts.assignTask(taskId, null);
    }

 

Thanks,
Gonzalo

Reply to this message by going to Community

Start a new discussion in jBPM at Community