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)\
Release : 6.4.4
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.