SAP Knowledge Base Article - Preview

3362083 - NullPointerException due to missing Service Date for Bank Accrual

Symptom

A stack trace error occurs on the timesheet or is holding up payroll. The stack trace looks similar to the one below, with the key section highlighted.

com.workforcesoftware.Calculation.CalculationStageException: Exception during calculation: java.lang.NullPointerException
at com.workforcesoftware.Data.AllCalcDataManager.runOneCalcStage(AllCalcDataManager.java:1389)
at com.workforcesoftware.Data.SingleAllCalcDataManager.runCalcStagesAndHandleErrors(SingleAllCalcDataManager.java:1950)
at com.workforcesoftware.Data.SingleAllCalcDataManager.recalc(SingleAllCalcDataManager.java:1923)
at com.workforcesoftware.Data.SingleAllCalculationData.recalc(SingleAllCalculationData.java:2346)
at com.workforcesoftware.Data.AllCalculationData.recalc(AllCalculationData.java:723)
at com.workforcesoftware.Data.AllCalculationData.recalc(AllCalculationData.java:713)
at com.workforcesoftware.Data.SingleAllCalcDataManager.recalcAndSaveOnSuccess(SingleAllCalcDataManager.java:2186)
at com.workforcesoftware.Data.SingleAllCalcDataManager.loadAllCalcDataByPeriod(SingleAllCalcDataManager.java:261)
at com.workforcesoftware.Data.SingleAllCalcDataManager.getLatestAllCalcData(SingleAllCalcDataManager.java:375)
at com.workforcesoftware.Data.SingleAllCalcDataManager.getAllCalcData(SingleAllCalcDataManager.java:954)
at com.workforcesoftware.Data.SingleAllCalcDataManager.getAllCalcData(SingleAllCalcDataManager.java:960)
at com.workforcesoftware.TimeEntry.AssignmentManager.getAllCalcData(AssignmentManager.java:537)
at com.workforcesoftware.TimeEntry.AssignmentManager.getDiff(AssignmentManager.java:357)
at com.workforcesoftware.TimeEntry.AssignmentManager.getTransactionResults(AssignmentManager.java:1150)
at com.workforcesoftware.TimeEntry.AssignmentManager.recalcAndSaveTimesheets(AssignmentManager.java:752)
at com.workforcesoftware.TimeEntry.TimeEntryManagerImpl.recalcWithOptionalSave(TimeEntryManagerImpl.java:286)
at com.workforcesoftware.TimeEntry.TimeEntryManagerImpl.debug(TimeEntryManagerImpl.java:342)
at com.workforcesoftware.Jsp.TimeEntry.TimeEntryActionHandler.debug(TimeEntryActionHandler.java:1023)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.workforcesoftware.Jsp.Util.ActionHandler.doAction(ActionHandler.java:204)
at com.workforcesoftware.ClientRequests.JspUtils.SimpleAction.doAction(SimpleAction.java:51)
at com.workforcesoftware.ClientRequests.JspUtils.WActionBase.performNoSynchronize(WActionBase.java:612)
at com.workforcesoftware.ClientRequests.JspUtils.WActionBase.handleNormalRequest(WActionBase.java:472)
at com.workforcesoftware.ClientRequests.JspUtils.WActionBase.handleRequest(WActionBase.java:208)
at com.workforcesoftware.ClientRequests.JspUtils.WActionBase.perform(WActionBase.java:144)
at org.apache.struts.action.Action.execute(Action.java:420)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.ezest.util.TargetToSystemFeatureFilter.doFilter(TargetToSystemFeatureFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.workforcesoftware.ClientRequests.WFServletFilter$1.execute(WFServletFilter.java:59)
at com.workforcesoftware.runtime.ResourceTracker.executeThenRelease(ResourceTracker.java:195)
at com.workforcesoftware.runtime.ResourceTracker.executeOperationAndReleaseResources(ResourceTracker.java:112)
at com.workforcesoftware.ClientRequests.WFServletFilter.doFilter(WFServletFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.workforcesoftware.Security.CsrfTokenFilter.doFilter(CsrfTokenFilter.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at com.workforcesoftware.Util.DateTime.WDate.lessThan(WDate.java:446)
at com.workforcesoftware.Util.DateTime.WDate.monthsBetween(WDate.java:630)
at com.workforcesoftware.Calculation.CalcHelper.calcServiceLength(CalcHelper.java:83)
at com.workforcesoftware.Calculation.CalcAccrual.findAccrualServiceRange(CalcAccrual.java:101)
at com.workforcesoftware.Calculation.CalcAccrual.createBankAccrualEvent(CalcAccrual.java:201)
at com.workforcesoftware.Calculation.BeforeOrAfterPeriodAccruals.processOneAccrualRule(BeforeOrAfterPeriodAccruals.java:84)
at com.workforcesoftware.Calculation.BeforeOrAfterPeriodAccruals.processApplicableAccrualRules(BeforeOrAfterPeriodAccruals.java:78)
at com.workforcesoftware.Calculation.BeforeOrAfterPeriodAccruals.calculate(BeforeOrAfterPeriodAccruals.java:52)
at com.workforcesoftware.Calculation.CalcBase.calculateIfNeeded(CalcBase.java:77)
at com.workforcesoftware.


Read more...

Environment

SAP Absence & Leave Management by Workforce Software (All versions)

Keywords

KBA , XX-PART-WFR-ACT , SAP Absence & Leave Management (ACT) by Workforce Software , Problem

About this page

This is a preview of a SAP Knowledge Base Article. Click more to access the full version on SAP for Me (Login required).

Search for additional results

Visit SAP Support Portal's SAP Notes and KBA Search.