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

Document ID : KB000104943
Last Modified Date : 14/11/2018
Show Technical Document Details
Issue:
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.
Resolution:
Please update to a Fix Version

A fix will be available with the following versions:

Component:
Automic WebInterface

Automic Engine Version 12.2.0 - available to download
Automic Engine Version 12.0.6 - planned release September, 12 2018