org.simantics.browsing.ui.common.internal.GECache$GECacheKey equal objects must have equal hashcodes
Found the following stack trace from a log file:
!ENTRY org.eclipse.ui 4 0 2019-07-09 17:54:13.256
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.IllegalArgumentException: Equal objects must have equal hashcodes. During rehashing, Trove discovered that the following two objects claim to be equal (as in java.lang.Object.equals()) but their hashCodes (or those calculated by your TObjectHashingStrategy) are not equal.This violates the general contract of java.lang.Object.hashCode(). See bullet point two in that method's documentation. object #1 =class org.simantics.browsing.ui.common.internal.GECache$GECacheKey id= 890630119 hashCode= -10755 toString= org.simantics.browsing.ui.common.internal.GECache$GECacheKey@ffffd5fd; object #2 =class org.simantics.browsing.ui.common.internal.GECache$GECacheKey id= 1930844754 hashCode= -10755 toString= org.simantics.browsing.ui.common.internal.GECache$GECacheKey@ffffd5fd
hashCode() and/or equals() have inconsistent implementation
Key set lost entries, now got 393 instead of 399. This can manifest itself as an apparent duplicate key.
at gnu.trove.impl.hash.TObjectHash.buildObjectContractViolation(TObjectHash.java:464)
at gnu.trove.impl.hash.TObjectHash.throwObjectContractViolation(TObjectHash.java:448)
at gnu.trove.map.hash.THashMap.rehash(THashMap.java:403)
at gnu.trove.impl.hash.THash.postInsertHook(THash.java:388)
at gnu.trove.map.hash.THashMap.doPut(THashMap.java:178)
at gnu.trove.map.hash.THashMap.put(THashMap.java:145)
at org.simantics.browsing.ui.common.internal.GECache.put(GECache.java:111)
at org.simantics.browsing.ui.common.internal.GENodeQueryManager.query(GENodeQueryManager.java:240)
at org.simantics.browsing.ui.swt.DefaultLabelDecoratorsProcessor.query(DefaultLabelDecoratorsProcessor.java:32)
at org.simantics.browsing.ui.swt.DefaultLabelDecoratorsProcessor.query(DefaultLabelDecoratorsProcessor.java:1)
at org.simantics.browsing.ui.common.internal.GENodeQueryManager.query(GENodeQueryManager.java:246)
at org.simantics.browsing.ui.swt.GraphExplorerImpl.setTextAndImage(GraphExplorerImpl.java:2766)
at org.simantics.browsing.ui.swt.GraphExplorerImpl.setData(GraphExplorerImpl.java:2376)
at org.simantics.browsing.ui.swt.GraphExplorerImpl.handleEvent(GraphExplorerImpl.java:2044)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088)
at org.eclipse.swt.widgets.Tree.checkData(Tree.java:1661)
at org.eclipse.swt.widgets.Tree.checkData(Tree.java:1640)
at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:7594)
at org.eclipse.swt.widgets.Control.wmNotify(Control.java:5869)
at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:2025)
at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5423)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4899)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2454)
at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1555)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:6188)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5178)
at org.eclipse.swt.internal.win32.OS.RedrawWindow(Native Method)
at org.eclipse.swt.widgets.Control.update(Control.java:4661)
at org.eclipse.swt.widgets.Control.update(Control.java:4651)
at org.eclipse.jface.layout.AbstractColumnLayout.layoutTableTree(AbstractColumnLayout.java:236)
at org.eclipse.jface.layout.AbstractColumnLayout.layout(AbstractColumnLayout.java:259)
at org.eclipse.jface.layout.TreeColumnLayout.layout(TreeColumnLayout.java:89)
at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1363)
at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1348)
at org.eclipse.swt.widgets.Composite.layout(Composite.java:702)
at org.eclipse.swt.widgets.Composite.layout(Composite.java:653)
at org.eclipse.swt.widgets.Composite.layout(Composite.java:609)
at org.simantics.browsing.ui.swt.GraphExplorerImpl.setData(GraphExplorerImpl.java:2496)
at org.simantics.browsing.ui.swt.GraphExplorerImpl.handleEvent(GraphExplorerImpl.java:2044)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088)
at org.eclipse.swt.widgets.Tree.checkData(Tree.java:1661)
at org.eclipse.swt.widgets.Tree.checkData(Tree.java:1640)
at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:7594)
at org.eclipse.swt.widgets.Control.wmNotify(Control.java:5869)
at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:2025)
at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5423)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4899)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5178)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2454)
at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1555)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:6188)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5178)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2560)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3815)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at org.simantics.workbench.internal.SimanticsWorkbenchApplication.start(SimanticsWorkbenchApplication.java:156)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)