--- old/src/solaris/classes/sun/font/XRGlyphCache.java 2014-07-01 17:26:38.000000000 -0700 +++ new/src/solaris/classes/sun/font/XRGlyphCache.java 2014-07-01 17:26:38.000000000 -0700 @@ -190,20 +190,23 @@ for (XRGlyphCacheEntry cacheEntry : glyphList) { if (cacheEntry.isGrayscale(containsLCDGlyphs)) { if (grayGlyphs == null) { - grayGlyphs = new ArrayList(glyphList.size()); + grayGlyphs = new ArrayList<>(glyphList.size()); } cacheEntry.setGlyphSet(grayGlyphSet); grayGlyphs.add(cacheEntry); } else { if (lcdGlyphs == null) { - lcdGlyphs = new ArrayList(glyphList.size()); + lcdGlyphs = new ArrayList<>(glyphList.size()); } cacheEntry.setGlyphSet(lcdGlyphSet); lcdGlyphs.add(cacheEntry); } } - - return new List[] { grayGlyphs, lcdGlyphs }; + // Arrays and generics don't play well together + @SuppressWarnings({"unchecked", "rawtypes"}) + List[] tmp = + (List[]) (new List[] { grayGlyphs, lcdGlyphs }); + return tmp; } /**