Summary: "DateTimeParseException: Text '' could not be parsed at index 0" exception is being returned when SLA is turning from On Time to Overdue
Steps to reproduce:
- Go to Control Panel > Workflow > Process builder and associate Blogs with Single Approver
- Go to Control Panel > Workflow > Metrics and add a 5 minutes SLA, starting when the Process Begins and finishing when the Process Ends and another SLA of 1 minute starting when it Enters Review task and finishes when it Leaves Enter task.
- Add 2 blog instances and wait for 3 minutes
- Go to Control Panel > Workflow > Single Approver > Metrics
Actual result: "DateTimeParseException: Text '' could not be parsed at index 0" exception is being returned when SLA is turning from On Time to Overdue.
<log4j:event logger="com.liferay.portal.background.task.internal.messaging.BackgroundTaskMessageListener" timestamp="1572443978214" level="ERROR" thread="liferay/background_task-3"> <log4j:message><![CDATA[Unable to execute background task]]></log4j:message> <log4j:throwable><![CDATA[java.time.format.DateTimeParseException: Text '' could not be parsed at index 0 at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) at java.time.LocalDateTime.parse(LocalDateTime.java:492) at com.liferay.portal.workflow.metrics.internal.background.task.WorkflowMetricsSLAProcessBackgroundTaskExecutor.lambda$_getMissingCreateLocalDateTimes$7(WorkflowMetricsSLAProcessBackgroundTaskExecutor.java:302) at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1321) at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647) at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:272) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.Iterator.forEachRemaining(Iterator.java:116) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647) at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:272) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:419) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566) at com.liferay.portal.workflow.metrics.internal.background.task.WorkflowMetricsSLAProcessBackgroundTaskExecutor._getMissingCreateLocalDateTimes(WorkflowMetricsSLAProcessBackgroundTaskExecutor.java:299) at com.liferay.portal.workflow.metrics.internal.background.task.WorkflowMetricsSLAProcessBackgroundTaskExecutor.execute(WorkflowMetricsSLAProcessBackgroundTaskExecutor.java:120) at com.liferay.portal.kernel.backgroundtask.DelegatingBackgroundTaskExecutor.execute(DelegatingBackgroundTaskExecutor.java:41) at com.liferay.portal.background.task.internal.ThreadLocalAwareBackgroundTaskExecutor.execute(ThreadLocalAwareBackgroundTaskExecutor.java:72) at com.liferay.portal.background.task.internal.messaging.BackgroundTaskMessageListener.doReceive(BackgroundTaskMessageListener.java:131) at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26) at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:74) at com.liferay.portal.messaging.internal.ParallelDestination$1.run(ParallelDestination.java:56) at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:752) at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:664) at java.lang.Thread.run(Thread.java:748)
Expected result: No error should be displayed.
Environment:
master DXP: 962a82155b6b6a1fa4fb69f5ce246e5b02518af3
Updated on: Tue Oct 29 14:51:14 2019 -0700