--- old/src/solaris/classes/sun/awt/X11/XDataTransferer.java 2014-04-18 11:00:58.000000000 +0400 +++ new/src/solaris/classes/sun/awt/X11/XDataTransferer.java 2014-04-18 11:00:58.000000000 +0400 @@ -258,28 +258,9 @@ Transferable localeTransferable) throws IOException { - String charset = null; - if (localeTransferable != null && - isLocaleDependentTextFormat(format) && - localeTransferable.isDataFlavorSupported(javaTextEncodingFlavor)) { - try { - charset = new String( - (byte[])localeTransferable.getTransferData(javaTextEncodingFlavor), - "UTF-8" - ); - } catch (UnsupportedFlavorException cannotHappen) { - } - } else { - charset = getCharsetForTextFormat(format); - } - if (charset == null) { - // Only happens when we have a custom text type. - charset = getDefaultTextCharset(); - } - - BufferedReader reader = null; - try { - reader = new BufferedReader(new InputStreamReader(stream, charset)); + String charset = getBestCharsetForTextFormat(format, localeTransferable); + try (InputStreamReader isr = new InputStreamReader(stream, charset); + BufferedReader reader = new BufferedReader(isr)) { String line; ArrayList uriList = new ArrayList<>(); URI uri; @@ -292,9 +273,6 @@ uriList.add(uri); } return uriList.toArray(new URI[uriList.size()]); - } finally { - if (reader != null) - reader.close(); } }