Ticket #423 (closed defect: fixed)
Opened 2011-04-01T15:48:44-05:00
Last modified 2011-05-23T10:56:12-05:00
Z Project can fail with an exception
Reported by: | bdezonia | Owned by: | gharris |
---|---|---|---|
Priority: | major | Milestone: |
|
Component: | Display API | Version: | |
Severity: | serious | Keywords: | |
Cc: | Blocked By: | ||
Blocking: |
Description
Using the Image > Stacks > Z Project command with T1 Head can fail. If you choose Average Intensity it works. If you choose Median you get an exception thrown.
Exception in thread "PluginRunner-imagej.legacy.plugin.LegacyPlugin" java.lang.ArrayIndexOutOfBoundsException: 393210
at java.awt.image.ComponentColorModel.getRGBComponent(ComponentColorModel.java:886)
at java.awt.image.ComponentColorModel.getRed(ComponentColorModel.java:927)
at java.awt.image.ComponentColorModel.getRGB(ComponentColorModel.java:1118)
at sun.java2d.loops.OpaqueCopyAnyToArgb.Blit(CustomComponent.java:127)
at sun.java2d.loops.GraphicsPrimitive.convertFrom(GraphicsPrimitive.java:542)
at sun.java2d.loops.GraphicsPrimitive.convertFrom(GraphicsPrimitive.java:523)
at sun.java2d.loops.MaskBlit$General.MaskBlit(MaskBlit.java:171)
at sun.java2d.loops.Blit$GeneralMaskBlit.Blit(Blit.java:186)
at sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:927)
at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:550)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:54)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:982)
at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:168)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3261)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3246)
at imagej.ui.swing.display.NavigableImagePanel.toCompatibleImage(NavigableImagePanel.java:379)
at imagej.ui.swing.display.NavigableImagePanel.setImage(NavigableImagePanel.java:354)
at imagej.ui.swing.display.AWTDisplayController.update(AWTDisplayController.java:155)
at imagej.ui.swing.display.AWTDisplayController.setDataset(AWTDisplayController.java:132)
at imagej.ui.swing.display.AWTDisplayController.<init>(AWTDisplayController.java:71)
at imagej.ui.swing.display.SimpleImageDisplay.display(SimpleImageDisplay.java:82)
at imagej.display.DisplayPostprocessor.displayDataset(DisplayPostprocessor.java:119)
at imagej.display.DisplayPostprocessor.handleOutput(DisplayPostprocessor.java:76)
at imagej.display.DisplayPostprocessor.handleOutput(DisplayPostprocessor.java:71)
at imagej.display.DisplayPostprocessor.handleOutput(DisplayPostprocessor.java:71)
at imagej.display.DisplayPostprocessor.process(DisplayPostprocessor.java:63)
at imagej.plugin.PluginRunner.postProcess(PluginRunner.java:99)
at imagej.plugin.PluginRunner.run(PluginRunner.java:70)
at imagej.plugin.PluginManager$1.run(PluginManager.java:129)
at java.lang.Thread.run(Thread.java:680)
This is now working. I believe my code for full support of all pixel types in display code may have cleaned this up. The stack trace shows some ARGB code is getting exercised. The new display code only creates 16-bit grayscale images so these lower level calls should be avoided.
When color support is in place we should retest that this is still working.