Open jbudynk opened 7 years ago
I can't reproduce this issue, the creation of the SED is mostly instantaneous.
However, I get some strange exception when the message dialog at the end of the operation is displayed. I am making some changes to make the creation of the SED safer and asynchronous. While it's not making the execution necessarily faster, it does make is safer. That seems to reduce the exceptions, but I still get one exception, the first time I do the extraction, as opposed to every time. There does not seem to be any difference in the extracted SED, the exception seems to come from the rendering of the JTable in the metadata browser, and it might well be that it's completely unrelated to this issue:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException at uk.ac.starlink.table.ConcatStarTable.getCell(ConcatStarTable.java:90) at uk.ac.starlink.table.WrapperStarTable.getCell(WrapperStarTable.java:111) at uk.ac.starlink.table.gui.StarTableModel.getValueAt(StarTableModel.java:112) at javax.swing.JTable.getValueAt(JTable.java:2717) at javax.swing.JTable.prepareRenderer(JTable.java:5719) at javax.swing.plaf.synth.SynthTableUI.paintCell(SynthTableUI.java:684) at javax.swing.plaf.synth.SynthTableUI.paintCells(SynthTableUI.java:581) at javax.swing.plaf.synth.SynthTableUI.paint(SynthTableUI.java:365) at javax.swing.plaf.synth.SynthTableUI.update(SynthTableUI.java:276) at javax.swing.JComponent.paintComponent(JComponent.java:770) at javax.swing.JComponent.paint(JComponent.java:1046) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5223) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295) at javax.swing.RepaintManager.paint(RepaintManager.java:1249) at javax.swing.JComponent._paintImmediately(JComponent.java:5171) at javax.swing.JComponent.paintImmediately(JComponent.java:4982) at javax.swing.RepaintManager$3.run(RepaintManager.java:808) at javax.swing.RepaintManager$3.run(RepaintManager.java:796) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718) at javax.swing.RepaintManager.access$1100(RepaintManager.java:62) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745) at java.awt.EventQueue.access$300(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:706) at java.awt.EventQueue$3.run(EventQueue.java:704) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77) at java.awt.EventQueue.dispatchEvent(EventQueue.java:715) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
I'm thinking extracting only takes awhile when there are multiple segments. Extracting a SED from one segment is almost instantaneous.
Example: