juglab / labkit-ui

Advanced Tool for Labeling And Segmentation
BSD 2-Clause "Simplified" License
33 stars 20 forks source link

java.lang.IllegalArgumentException: Comparison method violates its general contract! #120

Open KOBE24DUNK opened 1 month ago

KOBE24DUNK commented 1 month ago

When opening image from labkit, I met such error:

Keymap list file C:\Users\user\AppData\Roaming\fiji\bigdataviewer\config\keymaps\keymaps.yaml not found. Using builtin styles. Appearance settings file C:\Users\user\AppData\Roaming\fiji\bigdataviewer\config/appearance.yaml not found. Using defaults. [ERROR] Command errored: Open Current Image With Labkit java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:866) at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:483) at java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:422) at java.util.ComparableTimSort.sort(ComparableTimSort.java:222) at java.util.Arrays.sort(Arrays.java:1246) at sun.awt.shell.Win32ShellFolderManager2.get(Win32ShellFolderManager2.java:306) at sun.awt.shell.ShellFolder.get(ShellFolder.java:258) at javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.addItem(MetalFileChooserUI.java:942) at javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.access$800(MetalFileChooserUI.java:910) at javax.swing.plaf.metal.MetalFileChooserUI.doDirectoryChanged(MetalFileChooserUI.java:659) at javax.swing.plaf.metal.MetalFileChooserUI.access$1100(MetalFileChooserUI.java:53) at javax.swing.plaf.metal.MetalFileChooserUI$5.propertyChange(MetalFileChooserUI.java:748) at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:327) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263) at java.awt.Component.firePropertyChange(Component.java:8434) at javax.swing.JFileChooser.setCurrentDirectory(JFileChooser.java:598) at javax.swing.JFileChooser.(JFileChooser.java:344) at javax.swing.JFileChooser.(JFileChooser.java:296) at sc.fiji.labkit.ui.actions.AbstractFileIoAction.(AbstractFileIoAction.java:64) at sc.fiji.labkit.ui.actions.LabelingIoAction.(LabelingIoAction.java:57) at sc.fiji.labkit.ui.SegmentationComponent.initActions(SegmentationComponent.java:93) at sc.fiji.labkit.ui.SegmentationComponent.(SegmentationComponent.java:80) at sc.fiji.labkit.ui.LabkitFrame.initSegmentationComponent(LabkitFrame.java:130) at sc.fiji.labkit.ui.LabkitFrame.(LabkitFrame.java:103) at sc.fiji.labkit.ui.LabkitFrame.show(LabkitFrame.java:97) at sc.fiji.labkit.ui.LabkitFrame.showForImage(LabkitFrame.java:91) at sc.fiji.labkit.ui.plugin.LabkitPlugin.run(LabkitPlugin.java:56) at org.scijava.command.CommandModule.run(CommandModule.java:196) at org.scijava.module.ModuleRunner.run(ModuleRunner.java:165) at org.scijava.module.ModuleRunner.call(ModuleRunner.java:125) at org.scijava.module.ModuleRunner.call(ModuleRunner.java:64) at org.scijava.thread.DefaultThreadService.lambda$wrap$2(DefaultThreadService.java:247) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750)

The same fiji in my friend's PC can work smoothly.

And reinstalling, updating ImageJ, or doing anything what I can do about JAVA in my system cannot help.

Thank you!

maarzt commented 1 month ago

@KOBE24DUNK Thank you for the bug report. I'm sorry that you ran into this problem. I had another user running in the same problem before. But the bug it's not a bug in Fiji or Labkit. It's a bug in the JDK, that is very hard to reproduce. The problem is for example discussed here: https://github.com/skylot/jadx/issues/1628

Somehow the java file open dialog crashes when trying to sort file. The are 3 solutions that you might try: