Update Investment Allocations job fails with NullPointerException Cannot invoke "com.niku.xmlserver.core.NkTime.getTimeOfDay()" because "finish" is null
search cancel

Update Investment Allocations job fails with NullPointerException Cannot invoke "com.niku.xmlserver.core.NkTime.getTimeOfDay()" because "finish" is null

book

Article ID: 411624

calendar_today

Updated On:

Products

Clarity PPM SaaS Clarity PPM On Premise

Issue/Introduction

When certain projects have a baseline created, the job Update Investment Allocations and Usage would fail with error. If we delete the baseline then the job runs with no issue.

STEPS TO REPRODUCE:

  1. Connect to Clarity
  2. Open an affected project, example code PR12031
  3. Create a new baseline
  4. Run the job Update Investment Allocations and Usage

Expected Results: the job to run successfully

Actual Results: The Update Investment Allocations job fails with error java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "com.niku.xmlserver.core.NkTime.getTimeOfDay()" because "finish" is null

ERROR 2025-09-24 09:44:16,542 [Dispatch Update Investment Allocations and Usage : bg@xxxxxxx(tenant=clarity)] niku.njs (clarity:admin:87060193__3FB82B49-751A-4BEB-A85B-AE8E4C5FDEA5:Update Investment Allocations and Usage) () Error executing job: 6089034
java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "com.niku.xmlserver.core.NkTime.getTimeOfDay()" because "finish" is null
              at com.niku.projmgr.service.staffing.job.InvestmentAllocationJob.scheduledEventFired(InvestmentAllocationJob.java:112)
              at com.niku.njs.BGTask.run(BGTask.java:114)
              at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
              at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
              at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.NullPointerException: Cannot invoke "com.niku.xmlserver.core.NkTime.getTimeOfDay()" because "finish" is null
              at com.niku.xql2.pmd.rules.InvestmentTSVController.markTOD(InvestmentTSVController.java:1367)
              at com.niku.xql2.pmd.rules.InvestmentTSVController.setInvestmentCurve(InvestmentTSVController.java:1317)
              at com.niku.xql2.pmd.rules.InvestmentTSVController.updateInvestmentBaselineFields(InvestmentTSVController.java:1166)
              at com.niku.xql2.pmd.rules.InvestmentTSVController.generate(InvestmentTSVController.java:440)
              at com.niku.xql2.pmd.rules.InvestmentTSVController.processRequest(InvestmentTSVController.java:151)
              at com.niku.projmgr.service.staffing.job.InvestmentAllocationJob.scheduledEventFired(InvestmentAllocationJob.java:90)
              ... 4 more

Environment

Clarity 16.2.3, 16.3.0, 16.3.1, 16.3.2

Cause

DE176288

Resolution

Fixed in:

  • Clarity 16.4.0
  • Clarity 16.3.3 Patch 2 (16.3.3.2)

Workaround: Delete the baseline from the affected project