Processes stuck on 16.2.3.1+ with error java.lang.NullPointerException […] because 'context' is null
search cancel

Processes stuck on 16.2.3.1+ with error java.lang.NullPointerException […] because 'context' is null

book

Article ID: 382451

calendar_today

Updated On:

Products

Clarity PPM SaaS Clarity PPM On Premise

Issue/Introduction

After upgrade to 16.2.3.1, processes that were working well before the upgrade, on various objects are now sometimes randomly getting stuck, and remain stuck indefinitely.

  1. Upgrade a large PG SAAS System to 16.2.3 prepatch 3
  2. Monitor the processes that were working well on 16.2.2.1

Expected Results: The processes to run well as they did before upgrade

Actual Results: Few different GEL processes get randomly stuck and never complete

When checking the logs we see an error at the same time as the processes get stuck:

2024/10/14 10:54:26.849 | Exception in thread "Custom script execution pool-21-thread-18" java.lang.NullPointerException: Cannot invoke "com.niku.bpm.engine.persistence.BpmContext.rollback()" because "context" is null
2024/10/14 10:54:26.849 |    at com.niku.bpm.services.ExecuteCustomAction.run(ExecuteCustomAction.java:353)
2024/10/14 10:54:26.849 |    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
2024/10/14 10:54:26.849 |    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
2024/10/14 10:54:26.849 |    at java.base/java.lang.Thread.run(Thread.java:840)

 

Environment

Clarity 16.2.3.1, 16.3.0

Cause

DE155085

Resolution

DE155085 is fixed in 16.3.1 by increasing the maximumConnections default

Workaround:

  1. In Properties.xml update the backgroundServer section and set the maximumConnections from 20 to 30
    Example:
    From :
    <backgroundServer jvmParameters="-Xms512m -Xmx1024m -XX:-UseGCOverheadLimit -DforceMemorySettings=false -XX:MaxMetaspaceSize=512m" programParameters="">
        <connectionPool maximumConnections="20" maxIdle="5" minimumIdleEvictionTime="5000" timeBetweenEvictionRuns="15000" validationQuery="select 1 from dual"/>
      </backgroundServer>
    To
    <backgroundServer jvmParameters="-Xms512m -Xmx1024m -XX:-UseGCOverheadLimit -DforceMemorySettings=false -XX:MaxMetaspaceSize=512m" programParameters="">
        <connectionPool maximumConnections="30" maxIdle="5" minimumIdleEvictionTime="5000" timeBetweenEvictionRuns="15000" validationQuery="select 1 from dual"/>
      </backgroundServer>
  2. Restart services