In recent JDK6ux( jdk6u21 and later), Icon can not be gotten by getIcon. CONFIGURATION : JDK : 6u21 and later/JDK7u5/JDK8(b53) (sparcV9) OS : Solaris10 REPRODUCE: 1. Compile the test case attached below. 2. Run "java -XX:SoftRefLRUPolicyMSPerMB=0 b" EXPECTED : BufferedImage@116471f: type = 1 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=0 IntegerInterleavedRaster: width = 16 height = 16 #Bands = 3 xOff = 0yOff = 0 dataOffset[0] 0 BufferedImage@1f14ceb: type = 1 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=0 IntegerInterleavedRaster: width = 16 height = 16 #Bands = 3 xOff = 0yOff = 0 dataOffset[0] 0 ACTUAL : (2nd icon inf. cahnges "null") BufferedImage@34a1fc: type = 1 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=0 IntegerInterleavedRaster: width = 16 height = 16 #Bands = 3 xOff = 0 yOff = 0 dataOffset[0] 0 null TESTCASE: ============================================================== import java.beans.*; import java.awt.*; import java.awt.image.*; class b { public static void main(String[] arg) throws Exception { BeanInfo info = Introspector.getBeanInfo(X.class); Image im = info.getIcon(BeanInfo.ICON_COLOR_16x16); System.out.println(im); System.gc(); im = info.getIcon(BeanInfo.ICON_COLOR_16x16); System.out.println(im); } public static class X { } public static class XBeanInfo extends SimpleBeanInfo { public XBeanInfo(){} public Image getIcon(int type) { return new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); } } } ============================================================== Please see comment section for more detils