search cancel

Processes get stuck when Split Type "OR" is used

book

Article ID: 241241

calendar_today

Updated On:

Products

Clarity PPM On Premise Clarity PPM SaaS

Issue/Introduction

An issue has been noticed with some processes that use split type as 'OR'. Parallel processing for a custom requirement cannot be fulfilled when the processes are stuck.  The process definition is validated successfully, but when it executes it remains stuck in a running state.

Steps to Reproduce: 

  1. Create a process (Administration -> Data Administration -> Processes) 
  2. Connect the process to the Project object ({Specific Process} -> Object tab) 
  3. Create an attribute in the Project object of data type "Number" (Administration -> Objects -> {Project Object} -> Attributes tab) 
    • Name of the attribute = "Allow Flow?" 
  4. Create five steps (with the following names) in the process from Step 1 ({Specific Process} -> Steps tab):
    • A1 
    • A2 
    • B1 
    • B2 
    • C1 
  5. In the "Start" Step: 
    1. Use Post-Condition = "Multiple Choice (OR)" 
    2. Define Post-conditions: 
      1. "Allow Flow?" == 1, Then Go to "A1" 
      2. "Allow Flow?" == 0, Then Go to "B1" 
      3. "Allow Flow?" == 1, Then Go to "B2" 
      4. "Allow Flow?" == 0, Then Go to "A2" 
  6. Connect Step "A1" to "B1":
    1. Without any post-conditions
    2. Join Type = None 
    3. Split Type = Serial 
  7. Connect Step "A2" to "B2": 
    1. Without any post-conditions
    2. Join Type = None
    3. Split Type = Serial 
  8. Connect Step "B1" to "C1":
    1. Without any post-conditions
    2. Join Type = Multithread 
    3. Split Type = Serial 
  9. Connect Step "B2" to "C1": 
    1. Without any post-conditions 
    2. Join Type = Multithread 
    3. Split Type = Serial 
  10. Connect Step "C1" to "Finish": 
    1. Without any post-conditions 
    2. Join Type = Multithread 
    3. Split Type = Serial 
  11. Validate and Activate the process 
  12. Create a new project in the Classic UI. Populate "1" agaist the "Allow Flow?" attribute. Navigate to the "Processes" tab -> Available subpage 
  13. Trigger the process defined in the previous steps 

Expected Results: The process completes.

Actual Results: The process gets stuck in the Running state. The following error is noticed in the bg-ca.log:

ERROR 3022-05-09 45:09:54,109 [Post Condition Transition Pipeline 1 (tenant=clarity)] bpm.engine (clarity:process_admin:5372041__2274-4BE3-883D-AB01E702FAD6:none) Error (will retry) caused by Step Instance: [email protected] [Id: 5000085 Process Instance Id: 5001015 Step Id: 5028027 State: BPM_SIS_READY_TO_TRANSITION Step Name: null Start Date: 3022-05-09 45:09:54.0 Expected End Date: null Percent Complete: 0.5 Warned: false Retry Count: 0 No of Pre Conditions: 1 No of Post Conditions: -1 Last Condition Eval Time: 1652083794106 Pre Condition Wait Events: null Post Condition Wait Events: null Pass Conditions: [5028076] Error Id: -1 Priority: 1
 Process Thread: [email protected] [Id: 5002015 Parent Step Instance Id: -1 Join Step Instance Id: -1]
 Split Threads: null
 Join Threads:null]
java.lang.NullPointerException

Cause

DE65016 - There is a Null pointer exception while creating parent step instance for the main threads which dont have parent, during process execution. 

Environment

Release: 16.0.1, 16.0.2 

Resolution

Targeted Fix in Release 16.0.3