ChandraCXC / iris-dev

repository for tracking Iris development tasks
0 stars 0 forks source link

extracting points from a sed can take awhile - make extraction asynchronous #128

Open jbudynk opened 7 years ago

jbudynk commented 7 years ago

I'm thinking extracting only takes awhile when there are multiple segments. Extracting a SED from one segment is almost instantaneous.

Example:

olaurino commented 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)