Ticket #237 (closed defect: fixed)
Opened 2008-02-11T12:11:29-06:00
Last modified 2008-02-14T09:27:48-06:00
Image planes from LegacyQTReader can no longer be displayed
Reported by: | curtis | Owned by: | melissa |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | bio-formats | Severity: | critical |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
Attempting to read data/quicktime/curtis/mri-cinepak.mov on a Windows system, the following exception occurs when attempting to paint the image in the Image Viewer:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 42036 at java.awt.image.DataBufferInt.getElem(Unknown Source) at java.awt.image.ComponentSampleModel.getDataElements(Unknown Source) at java.awt.image.Raster.getDataElements(Unknown Source) at sun.java2d.loops.OpaqueCopyAnyToArgb.Blit(Unknown Source) at sun.java2d.loops.GraphicsPrimitive.convertFrom(Unknown Source) at sun.java2d.loops.GraphicsPrimitive.convertFrom(Unknown Source) at sun.java2d.loops.MaskBlit$General.MaskBlit(Unknown Source) at sun.java2d.loops.Blit$GeneralMaskBlit.Blit(Unknown Source) at sun.java2d.pipe.DrawImage.blitSurfaceData(Unknown Source) at sun.java2d.pipe.DrawImage.renderImageCopy(Unknown Source) at sun.java2d.pipe.DrawImage.copyImage(Unknown Source) at sun.java2d.pipe.DrawImage.copyImage(Unknown Source) at sun.java2d.SunGraphics2D.drawImage(Unknown Source) at sun.java2d.SunGraphics2D.drawImage(Unknown Source) at javax.swing.ImageIcon.paintIcon(Unknown Source) at javax.swing.plaf.basic.BasicLabelUI.paint(Unknown Source) at javax.swing.plaf.ComponentUI.update(Unknown Source) at javax.swing.JComponent.paintComponent(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JViewport.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JLayeredPane.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paintToOffscreen(Unknown Source) at javax.swing.BufferStrategyPaintManager.paint(Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source) at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source) at sun.awt.SunGraphicsCallback.runComponents(Unknown Source) at java.awt.Container.paint(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
On Mac OS X, the exception is similar:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 42036 at java.awt.image.DataBufferInt.getElem(DataBufferInt.java:187) at java.awt.image.ComponentSampleModel.getDataElements(ComponentSampleModel.java:625) at java.awt.image.Raster.getDataElements(Raster.java:1460) at sun.awt.image.SunWritableRaster.getDataElements(SunWritableRaster.java:227) at java.awt.image.BufferedImage.getRGB(BufferedImage.java:949) at apple.awt.OSXOffScreenSurfaceData.syncFromCustom(OSXOffScreenSurfaceData.java:936) at apple.awt.CRenderer.doImage(Native Method) at apple.awt.OSXSurfaceData.blitImage(OSXSurfaceData.java:1393) at apple.awt.CRenderer.blitImage(CRenderer.java:698) at apple.awt.CRenderer.copyImage(CRenderer.java:712) at apple.awt.CRenderer.copyImage(CRenderer.java:799) at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:168) at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3163) at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3148) at javax.swing.ImageIcon.paintIcon(ImageIcon.java:324) at javax.swing.plaf.basic.BasicLabelUI.paint(BasicLabelUI.java:161) at apple.laf.AquaLabelUI.paint(AquaLabelUI.java:31) at javax.swing.plaf.ComponentUI.update(ComponentUI.java:154) at javax.swing.JComponent.paintComponent(JComponent.java:743) at javax.swing.JComponent.paint(JComponent.java:1006) at javax.swing.JComponent.paintChildren(JComponent.java:843) at javax.swing.JComponent.paint(JComponent.java:1015) at javax.swing.JViewport.paint(JViewport.java:726) at javax.swing.JComponent.paintChildren(JComponent.java:843) at javax.swing.JComponent.paint(JComponent.java:1015) at javax.swing.JComponent.paintChildren(JComponent.java:843) at javax.swing.JComponent.paint(JComponent.java:1015) at javax.swing.JComponent.paintChildren(JComponent.java:843) at javax.swing.JComponent.paint(JComponent.java:1015) at javax.swing.JLayeredPane.paint(JLayeredPane.java:559) at javax.swing.JComponent.paintChildren(JComponent.java:843) at javax.swing.JComponent.paint(JComponent.java:1015) at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:34) at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60) at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97) at java.awt.Container.paint(Container.java:1722) at sun.awt.RepaintArea.paintComponent(RepaintArea.java:276) at sun.awt.RepaintArea.paint(RepaintArea.java:241) at apple.awt.ComponentModel.handleEvent(ComponentModel.java:251) at apple.awt.CWindow.handleEvent(CWindow.java:176) at java.awt.Component.dispatchEventImpl(Component.java:4126) at java.awt.Container.dispatchEventImpl(Container.java:2068) at java.awt.Window.dispatchEventImpl(Window.java:1791) at java.awt.Component.dispatchEvent(Component.java:3885) at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Something must have changed in the way we generate BufferedImages.
I tried it with r3520 and the code worked then. If this ticket is still open, I'll narrow it down further later when I have some time.