Error seen while running "Jobstream Summary" report from the AAI thick client - Uncaught NullPointerException occurred
search cancel

Error seen while running "Jobstream Summary" report from the AAI thick client - Uncaught NullPointerException occurred

book

Article ID: 258603

calendar_today

Updated On:

Products

Automic Automation Intelligence

Issue/Introduction

Error seen while running "Jobstream Summary" report from the AAI thick client.

 

Uncaught NullPointerException occurred

Time: 2023/01/23 17:12:22.101 EST
JAWS version: 6.4.3 (6.4.3-202209061939) [6.4.3-202209061939]

Java version: 1.8.0_351 (Oracle Corporation)
OS: Windows 10 10.0

Exception detail:
com.termalabs.common.JawsException: java.lang.NullPointerException
    at com.termalabs.server.reporting.ReportHandler.queueTask(ReportHandler.java:143)
    at com.termalabs.server.reporting.ReportHandler.executeReportGenerator(ReportHandler.java:215)
    at com.termalabs.server.ejb3.ReportDataManagerEJB.createReportInternal(ReportDataManagerEJB.java:375)
    at com.termalabs.server.ejb3.ReportDataManagerEJB.createReport(ReportDataManagerEJB.java:367)
    at com.termalabs.server.ejb3.ReportDataManagerEJB.createReport(ReportDataManagerEJB.java:340)
    ... 11 skipped
    at com.termalabs.server.ejb3.RequestScopeEJB3Interceptor.invoke(RequestScopeEJB3Interceptor.java:94)
    ... 88 skipped
    at com.sun.proxy.$Proxy13.createReport(Unknown Source)
    at com.termalabs.client.model.impl.ejb.EJBReportModelManagerImpl$11.processRequest(EJBReportModelManagerImpl.java:417)
    at com.termalabs.client.model.impl.ejb.EJBReportModelManagerImpl$11.processRequest(EJBReportModelManagerImpl.java:413)
    at com.termalabs.client.util.request.RequestWorker$1.construct(RequestWorker.java:107)
    at com.termalabs.client.util.SwingWorker$2.run(SwingWorker.java:130)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
    at com.termalabs.dto.jobstream.JobStreamRunMetaData.setAsOfTime(JobStreamRunMetaData.java:266)
    at com.termalabs.server.prediction.JobStreamRunMetaDataBuilder.buildMetaData(JobStreamRunMetaDataBuilder.java:234)
    at com.termalabs.server.reporting.JobStreamRunReportGenerator.getState(JobStreamRunReportGenerator.java:337)
    at com.termalabs.server.reporting.JobStreamRunReportGenerator.access$000(JobStreamRunReportGenerator.java:57)
    at com.termalabs.server.reporting.JobStreamRunReportGenerator$3.isSo(JobStreamRunReportGenerator.java:325)
    at com.termalabs.server.reporting.JobStreamRunReportGenerator$3.isSo(JobStreamRunReportGenerator.java:322)
    at com.termalabs.util.CollectionUtils.lambda$filter$0(CollectionUtils.java:829)
    at java.util.Collection.removeIf(Collection.java:414)
    at com.termalabs.util.CollectionUtils.filter(CollectionUtils.java:829)
    at com.termalabs.server.reporting.JobStreamRunReportGenerator.filterRunsByStatus(JobStreamRunReportGenerator.java:322)
    at com.termalabs.server.reporting.JobStreamRunReportGenerator.getCompletedRuns(JobStreamRunReportGenerator.java:171)
    at com.termalabs.server.reporting.SummaryReportGenerator.writeSectionsGroupedByRunDate(SummaryReportGenerator.java:176)
    at com.termalabs.server.reporting.SummaryReportGenerator.write(SummaryReportGenerator.java:142)
    at com.termalabs.server.reporting.ReportGeneratorTask.performTask(ReportGeneratorTask.java:17)
    at com.termalabs.server.reporting.ReportHandler$1.call(ReportHandler.java:176)
    at com.termalabs.server.reporting.ReportHandler$1.call(ReportHandler.java:169)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)

Caller:
    at com.termalabs.client.model.impl.ejb.EJBReportModelManagerImpl.createReport(EJBReportModelManagerImpl.java:449)
    at com.termalabs.client.ui.reporting.ReportingPanel.runCriteria(ReportingPanel.java:523)
    at com.termalabs.client.ui.reporting.ReportingPanel.access$200(ReportingPanel.java:97)
    at com.termalabs.client.ui.reporting.ReportingPanel$EditDialogPanel.doRun(ReportingPanel.java:417)
    at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.sourceforge.tahini.Tahini$ControllerLinker$1.actionPerformed(Unknown Source)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.WaitDispatchSupport$2.run(Unknown Source)
    at java.awt.WaitDispatchSupport$4.run(Unknown Source)
    at java.awt.WaitDispatchSupport$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(Unknown Source)
    at java.awt.Dialog.show(Unknown Source)
    at java.awt.Component.show(Unknown Source)
    at java.awt.Component.setVisible(Unknown Source)
    at java.awt.Window.setVisible(Unknown Source)
    at java.awt.Dialog.setVisible(Unknown Source)
    at com.termalabs.client.ui.reporting.ReportingPanel.editCriteria(ReportingPanel.java:344)
    at com.termalabs.client.ui.reporting.summary.SummaryReportType.edit(SummaryReportType.java:94)
    at com.termalabs.client.ui.reporting.ReportType.copy(ReportType.java:92)
    at com.termalabs.client.ui.reporting.ReportingPanel$CriteriaHoldingTreeObject.doCopy(ReportingPanel.java:954)
    at com.termalabs.client.ui.reporting.ReportingPanel$12.actionPerformed(ReportingPanel.java:740)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)\

 

Environment

Release : 6.4.4

Resolution

After testing the report for different time frames, we found that if a specific data was in the report it would fail, but if that day was excluded it would run successfully.

 

Use the query below to check the start and end times for each jobstream run since the date you specify.

 

select js.description, jsr.creationTime, jsr.endTime

from JobStream js, JobStreamRun jsr

where js.jobStreamId = jsr.jobStreamId

AND js.description ='JobstreamName'

AND jsr.creationTime > <epoch timestamp in miliseconds>;

 

After Identifying a NULL for one or more of the End times, we were able to resolve this by rebuilding the jobstream history.