Created attachment 592112 [details] exceptions thrown Description of problem: Testing with Oracle db (Oracle Database 11g, 11.2.0.2.0), every time I try to skip a task marked as skippable, I get: ERROR [org.jbpm.task.service.TaskServerHandler] (Thread-27) java.lang.NullPointerException at java.io.ObjectOutputStream$BlockDataOutputStream.getUTFLength(ObjectOutputStream.java:2106) It looks like the task was partially skipped, it disappears from personal tasks, but the process instance does not continue it's run. It stays stuck on that task. The diagram shows the marker still at the task that was supposed to be skipped. If I try to terminate a process instance with a task marked as not skippable (and guess it would do the same if I tried to delete it) I get the same plus a CCE: ERROR [STDERR] (Thread-44) Exception in thread "Thread-44" ERROR [STDERR] (Thread-44) java.lang.RuntimeException: Client Exception with class class org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1 using port 5446 ERROR [STDERR] (Thread-44) at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:119) ERROR [STDERR] (Thread-44) at java.lang.Thread.run(Thread.java:662) ERROR [STDERR] (Thread-44) Caused by: java.lang.ClassCastException: org.jbpm.process.workitem.wsht.CommandBasedWSHumanTaskHandler$AbortTaskResponseHandler cannot be cast to org.jbpm.task.service.TaskClientHandler$TaskSummaryResponseHandler ERROR [STDERR] (Thread-44) at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:171) ERROR [STDERR] (Thread-44) at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56) ERROR [STDERR] (Thread-44) at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:108) ERROR [STDERR] (Thread-44) ... 1 more The task stays there, available. There seems to be no problem with terminating process instances that have skippable tasks. And no problem at all with other tested databases - this happens only with Oracle. Version-Release number of selected component (if applicable): BRMS 5.3 ER9
*** Bug 832375 has been marked as a duplicate of this bug. ***
The problem is a result of two things: 1. Oracle doesn't differentiate between "" (empty string) and null. 2. DataOutput.writeUTF( null ) throws an NPE. What's happening is that information relating to a task, that contains fields with "", is a. being saved (at which point oracle converts the "" to a null). b. being retrieved (the fields in the retrieved field get set to null) c. and then the same field is getting saved (at which point an NPE is being thrown because the field written by writeUTF() is null). This is happening because other information relating to a task is being modified, but not the information/field in question.
I received an e-mail from Prakash yesterday with the following: "Please go ahead and commit the changes. I will take care if ACK it. ALT will set the blocker at some point." I'll be committing the fix to the community 5.2.x branch soon.
The commit is available here: https://github.com/droolsjbpm/jbpm/commit/8f250db3461845e6d645cb69dba17096fc671b41
This issue should contain the fixes. Please verify it on CR1.
Oracle tests pass now.