Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6711890
Votes 0
Synopsis ClassCastException while running the Photo Uploader - Fotki
Category java:classes_swing
Reported Against b26
Release Fixed 6u10(b27)
State 10-Fix Delivered, bug
Priority: 2-High
Related Bugs
Submit Date 07-JUN-2008
Description
ClassCastException: java.lang.String cannot be cast to javax.swing.Icon from the Photo Uploader application

Steps to reproduce:

1. Use the current PIT build (b26)
2. Set Nimbus as the default LAF in the swing.properties
3. go to http://fotki.com
4. create an album (after logging in)
5. use the Java Photo Uploader to add picture
6. Only part of the uploader app is displayed, and watch the ClassCastException in the Java Console.

Stack Trace is attached:

Exception in thread "AWT-EventQueue-2" java.lang.ClassCastException: java.lang.String cannot be cast to javax.swing.Icon
	at javax.swing.plaf.synth.SynthTableUI$SynthTableCellRenderer.configureValue(SynthTableUI.java:745)
	at javax.swing.plaf.synth.SynthTableUI$SynthTableCellRenderer.getTableCellRendererComponent(SynthTableUI.java:724)
	at javax.swing.JTable.prepareRenderer(JTable.java:5729)
	at javax.swing.plaf.synth.SynthTableUI.paintCell(SynthTableUI.java:622)
	at javax.swing.plaf.synth.SynthTableUI.paintCells(SynthTableUI.java:519)
	at javax.swing.plaf.synth.SynthTableUI.paint(SynthTableUI.java:308)
	at javax.swing.plaf.synth.SynthTableUI.update(SynthTableUI.java:234)
	at javax.swing.JComponent.paintComponent(JComponent.java:763)
	at javax.swing.JComponent.paint(JComponent.java:1027)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JViewport.paint(JViewport.java:747)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5129)
	at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1467)
	at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1398)
	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:293)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1213)
	at javax.swing.JComponent.paint(JComponent.java:1013)
	at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
	at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
	at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
	at java.awt.Container.paint(Container.java:1762)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:810)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
	at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Posted Date : 2008-06-07 00:42:08.0
Work Around
N/A
Evaluation
This is a simple case where all other look and feels were defensive against the developer putting a object that was not a Icon in a Icon column in a JTable. Synth should be just as defensive to be backwards compatable.
Posted Date : 2008-06-09 16:05:08.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang