Bug 1116020 - business_central throws NPE by trying to abort a process that "processInstanceByteArray" is null
Summary: business_central throws NPE by trying to abort a process that "processInstanc...
Keywords:
Status: CLOSED EOL
Alias: None
Product: JBoss BPMS Platform 6
Classification: Retired
Component: Business Central
Version: 6.0.1
Hardware: Unspecified
OS: Unspecified
high
medium
Target Milestone: ER3
: 6.1.0
Assignee: Marco Rietveld
QA Contact: Lukáš Petrovický
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-07-03 14:01 UTC by Amana
Modified: 2020-03-27 20:05 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-03-27 20:05:37 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker JBPM-3722 0 Major Resolved jbpm-console throws null pointer reading process instance 2017-03-13 00:30:37 UTC
Red Hat Knowledge Base (Solution) 1150453 0 None None None Never

Description Amana 2014-07-03 14:01:10 UTC
Description of problem:

The issue reported in "JBPM-3722" is reproducible in BPM Suite 6 when using Mysql. It seems like the issue has been fixed only for databases that uses sequences.

I created a simple process and forced an exception when starting it. The process data is stored in processinstanceinfo table, but "processinstancebytearray" is null. Then it is not possible to abort the process.

Version-Release number of selected component (if applicable):

BPM Suite 6
Mysql (tested on 5.1 version)

How reproducible:

Always

Steps to Reproduce:
1. Setup your BPM Suite to use Mysql as external database
2. Create a really simple process using "Manual Task". It will not be needed to add anything to that as it should throw an exception after starting.
3. Save process/ Deploy project/ Start process


Actual results:

It will throw an error in console and in server.log:
10:46:31,959 WARN  [org.drools.persistence.SingleSessionCommandService] (http-localhost.localdomain/127.0.0.1:8080-5) Could not commit session: org.jbpm.workflow.instance.WorkflowRuntimeException: [project1.sample4:3 - :2] -- Could not find work item handler for Manual Task

But the rollback will not be performed and data will be stored in processinstanceinfo and processinstancelog.


Expected results:

It should rollback the transaction.


Additional info:

A workaround exist: You can delete the process manually in database using the following queries:

delete from ProcessInstanceInfo where InstanceId=XX;
delete from ProcessInstanceLog where processInstanceId=XX;

Note: Make sure you are deleting the right process.

Comment 1 Amana 2014-07-03 14:02:16 UTC
Other important information. I performed same test with postgres and it worked well.

Comment 4 Maciej Swiderski 2014-09-16 16:02:26 UTC
I tried to reproduce it but unfortunately no luck. One question that maybe is affecting it I use InnoDB dialect for MySQL and version of my server is 5.5.28

Amana, would it be possible to try with InnoDB dialect and maybe newer version of MySQL to see if that's still an issue?

Comment 5 Maciej Swiderski 2014-11-17 12:13:59 UTC
marking this as modified as there should be no way to actually have empty byte array for process  instance or session as change was applied to trigger protnbuf serialization based on transaction sync instead of entity listeners which was flush specific and could cause invalid data to be persisted. So let's retest it and see if that is still a problem.

Comment 6 Amana 2014-11-17 16:44:44 UTC
>> Amana, would it be possible to try with InnoDB dialect and maybe newer version of MySQL to see if that's still an issue?


Sorry for the delay to answer back. I performed some tests today using the following evn:

 - Mysql 5.5
 - InnoDB dialect
 - BPM Suite 6.0.1

It worked well.

Comment 7 Pavel Kralik 2015-04-07 09:36:56 UTC
BPMS 6.1.0.CR1

Comment 8 Max 2017-03-10 09:55:46 UTC
I had the same issue when upgrading Drools/Jbpm from 5.5.0 to 6.5.0, ie: column processInstanceByteArray is NULL. The cause is using wrong protobuf-java version. When I changed protobuf-java-2.5.0.jar to protobuf-java-2.6.0.jar, the issue is fixed.


Note You need to log in before you can comment on or make changes to this bug.