CA Automic V12 Webinterface throws "java.lang.IllegalArgumentException: Comparison method violates its general contract!" when opening EXECUTIONS of an object

book

Article ID: 104943

calendar_today

Updated On:

Products

CA Automic Workload Automation - Automation Engine

Issue/Introduction

When trying to access the Statistics records of an object with the CA Automic Web Interface(AWI) the following error can appear: Executions could not be retrieved.

The Stacktrace shows this.

 
java.lang.IllegalArgumentException: Comparison method violates its general contract! 
at java.util.TimSort.mergeHi(Unknown Source) 
at java.util.TimSort.mergeAt(Unknown Source) 
at java.util.TimSort.mergeForceCollapse(Unknown Source) 
at java.util.TimSort.sort(Unknown Source) 
at java.util.Arrays.sort(Unknown Source) 
at java.util.ArrayList.sort(Unknown Source) 
at java.util.Collections.sort(Unknown Source) 
at com.vaadin.data.util.AbstractInMemoryContainer.doSort(AbstractInMemoryContainer.java:747) 
at com.vaadin.data.util.HierarchicalContainer.doSort(HierarchicalContainer.java:631) 
at com.vaadin.data.util.AbstractInMemoryContainer.sortContainer(AbstractInMemoryContainer.java:727) 
at com.vaadin.data.util.IndexedContainer.sort(IndexedContainer.java:977) 
at com.vaadin.ui.Table.sort(Table.java:4840) 
at com.uc4.ecc.framework.commons.controls.table.TreeTableImpl.sort(TreeTableImpl.java:87) 
at com.vaadin.ui.Table.sort(Table.java:4871) 
at com.uc4.ecc.plugins.ae.common.views.executions.ExecutionView.showValues(ExecutionView.java:312) 
at com.uc4.ecc.plugins.ae.common.views.executions.ExecutionView.access$200(ExecutionView.java:44) 
at com.uc4.ecc.plugins.ae.common.views.executions.ExecutionView$2.renderResult(ExecutionView.java:258) 
at com.uc4.ecc.plugins.ae.common.views.executions.ExecutionView$2.renderResult(ExecutionView.java:242) 
at com.uc4.ecc.framework.commons.controls.async.AsyncNoArgsContainerRenderer.renderResult(AsyncNoArgsContainerRenderer.java:28) 
at com.uc4.ecc.framework.commons.controls.async.AsyncNoArgsContainerRenderer.renderResult(AsyncNoArgsContainerRenderer.java:9) 
at com.uc4.ecc.framework.commons.controls.async.AsyncContainerRenderer.render(AsyncContainerRenderer.java:56) 
at com.uc4.ecc.framework.commons.controls.async.AsyncContainerRenderer.render(AsyncContainerRenderer.java:14) 
at com.uc4.ecc.framework.core.async.MementoSafeRenderer.render(MementoSafeRenderer.java:28) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator$4$1.run(BaseRequestCoordinator.java:443) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator$RenderingStep.execute(BaseRequestCoordinator.java:615) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator.renderInGuiThread(BaseRequestCoordinator.java:353) 
at com.uc4.ecc.framework.core.async.push.PushAsyncService$1.execute(PushAsyncService.java:205) 
at com.uc4.ecc.framework.core.async.push.PushAsyncService$1.execute(PushAsyncService.java:200) 
at com.uc4.ecc.framework.core.async.VaadinSessionLockUtil.exeuteLocked(VaadinSessionLockUtil.java:30) 
at com.uc4.ecc.framework.core.async.push.PushAsyncService.readyForRendering(PushAsyncService.java:200) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator.fireReadyForRendering(BaseRequestCoordinator.java:635) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator.setRenderingStep(BaseRequestCoordinator.java:582) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator.access$1800(BaseRequestCoordinator.java:34) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator$4.execute(BaseRequestCoordinator.java:435) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator$4.execute(BaseRequestCoordinator.java:427) 
at com.uc4.ecc.framework.core.async.VaadinSessionLockUtil.exeuteLocked(VaadinSessionLockUtil.java:38) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator.onResult(BaseRequestCoordinator.java:427) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator.access$900(BaseRequestCoordinator.java:34) 
at com.uc4.ecc.framework.core.async.BaseRequestCoordinator$1$2.onSuccess(BaseRequestCoordinator.java:235) 
at com.uc4.ecc.framework.core.pool.ContextAwareExecutorService$TimeoutListenerRunnerImplementation.run(ContextAwareExecutorService.java:113) 
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source

Cause

A coding error caused the tree node indicators to be kept at the top of the list instead of being removed from it when the child processes were being loaded. When sorting the list, these indicators failed to sort and the exception was displayed. 
This issue has been solved and the nodes are now correctly removed when the child processes finish loading.

Environment

Release: Automic Workload Automation
Component: Automic Web Interface

Resolution

Please update to a Fix Version

A fix will be available with the following versions:

Component:
Automic Web Interface

Automic Engine Version 12.2.0 - Available
Automic Engine Version 12.0.6 - Available