Paula,
yuk. This seems to be a problem with Java on Windows when the
Windows filesystem is in a weird state, namely two files with
the same name, one "special" and one not. I don't actually
know what that means, but other people have encountered this:
https://bugs.openjdk.org/browse/JDK-8305072
Unfortunately the OpenJDK maintainers don't seem to be very keen
to fix this bug.
A couple of possibilities:
- You could try to identify the offending files and delete one
of them, if you understand what's going on here.
- You could run topcat starting from a different directory,
or with a different default directory by setting the user.dir
system property (probably "java -Duser.dir=C:\ -jar topcat-full.jar"
or something)
any good? If not I could try to put some workaround in the code
(which would probably mean that files can't be saved, but other
things could still work).
Mark
On Tue, 31 Oct 2023, Paula Stella Teixeira wrote:
> Hi,
>
> We’ve come across a problem with topcat that I hope you will be able to help us solve.
>
> A student with Windows 11 laptop, latest java, and the latest topcat version (topcat-full.jar) can’t open the plane plotting windows (scatter plot or histogram) when clicking the icons. Everything else seems to be working ok with topcat except for this. When he tries to open a plane poltting window the following error is given (see end of email).
>
> Any idea what is causing this issue and how to solve it?
>
> Thanks,
> Paula
>
> C:\Users\student>"C:\Program Files\Java\jdk-21\bin\java.exe" -jar "C:\Users\student\folder\topcat-full.jar"
> WARNING: Hub ping method failed
> WARNING: Hub ping method failed
> WARNING: Overwriting C:\Users\adity\.samp lockfile for apparently dead hub
> Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Comparison method violates its general contract!
> at java.base/java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:870)
> at java.base/java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:487)
> at java.base/java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:426)
> at java.base/java.util.ComparableTimSort.sort(ComparableTimSort.java:222)
> at java.base/java.util.Arrays.sort(Arrays.java:1042)
> at java.desktop/sun.awt.shell.Win32ShellFolderManager2.get(Win32ShellFolderManager2.java:319)
> at java.desktop/sun.awt.shell.ShellFolder.get(ShellFolder.java:272)
> at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.addItem(MetalFileChooserUI.java:1031)
> at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI.doDirectoryChanged(MetalFileChooserUI.java:719)
> at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI$5.propertyChange(MetalFileChooserUI.java:808)
> at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343)
> at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335)
> at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268)
> at java.desktop/java.awt.Component.firePropertyChange(Component.java:8717)
> at java.desktop/javax.swing.JFileChooser.setCurrentDirectory(JFileChooser.java:610)
> at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxAction.actionPerformed(MetalFileChooserUI.java:1269)
> at java.desktop/javax.swing.JComboBox.fireActionEvent(JComboBox.java:1294)
> at java.desktop/javax.swing.JComboBox.contentsChanged(JComboBox.java:1367)
> at java.desktop/javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:127)
> at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.setSelectedItem(MetalFileChooserUI.java:1104)
> at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.addItem(MetalFileChooserUI.java:1069)
> at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI.doDirectoryChanged(MetalFileChooserUI.java:719)
> at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI$5.propertyChange(MetalFileChooserUI.java:808)
> at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343)
> at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335)
> at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268)
> at java.desktop/java.awt.Component.firePropertyChange(Component.java:8717)
> at java.desktop/javax.swing.JFileChooser.setCurrentDirectory(JFileChooser.java:610)
> at java.desktop/javax.swing.JFileChooser.<init>(JFileChooser.java:380)
> at java.desktop/javax.swing.JFileChooser.<init>(JFileChooser.java:325)
> at uk.ac.starlink.topcat.plot2.PlotExporter.<init>(PlotExporter.java:43)
> at uk.ac.starlink.topcat.plot2.PlotExporter.getInstance(PlotExporter.java:129)
> at uk.ac.starlink.topcat.plot2.StackPlotWindow.<init>(StackPlotWindow.java:491)
> at uk.ac.starlink.topcat.plot2.HistogramPlotWindow.<init>(HistogramPlotWindow.java:88)
> at uk.ac.starlink.topcat.plot2.PlotWindowType$1.createWindow(PlotWindowType.java:24)
> at uk.ac.starlink.topcat.ControlWindow$Plot2WindowAction.actionPerformed(ControlWindow.java:1866)
> at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
> at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
> at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
> at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
> at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
> at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
> at java.desktop/java.awt.Component.processMouseEvent(Component.java:6621)
> at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398)
> at java.desktop/java.awt.Component.processEvent(Component.java:6386)
> at java.desktop/java.awt.Container.processEvent(Container.java:2266)
> at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4996)
> at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
> at java.desktop/java.awt.Component.dispatchEvent(Component.java:4828)
> at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
> at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
> at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
> at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
> at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
> at java.desktop/java.awt.Component.dispatchEvent(Component.java:4828)
> at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
> at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
> at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
> at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
> at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
> at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
> at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
> at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
> at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
> at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
> at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
> at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
> at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
> at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
> at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
> at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
> at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
>
>
> ########################################################################
>
> To unsubscribe from the TOPCAT-USER list, click the following link:
> https://www.jiscmail.ac.uk/cgi-bin/WA-JISC.exe?SUBED1=TOPCAT-USER&A=1
>
> This message was issued to members of www.jiscmail.ac.uk/TOPCAT-USER, a mailing list hosted by www.jiscmail.ac.uk, terms & conditions are available at https://www.jiscmail.ac.uk/policyandsecurity/
>
--
Mark Taylor Astronomical Programmer Physics, Bristol University, UK
[log in to unmask] https://www.star.bristol.ac.uk/mbt/
########################################################################
To unsubscribe from the TOPCAT-USER list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/WA-JISC.exe?SUBED1=TOPCAT-USER&A=1
This message was issued to members of www.jiscmail.ac.uk/TOPCAT-USER, a mailing list hosted by www.jiscmail.ac.uk, terms & conditions are available at https://www.jiscmail.ac.uk/policyandsecurity/
|