diff options
Diffstat (limited to 'src/share/classes/javax/swing/plaf/basic/BasicTransferable.java')
-rw-r--r-- | src/share/classes/javax/swing/plaf/basic/BasicTransferable.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/share/classes/javax/swing/plaf/basic/BasicTransferable.java b/src/share/classes/javax/swing/plaf/basic/BasicTransferable.java index 7ed4e3d53..23020eaf7 100644 --- a/src/share/classes/javax/swing/plaf/basic/BasicTransferable.java +++ b/src/share/classes/javax/swing/plaf/basic/BasicTransferable.java @@ -24,6 +24,8 @@ */ package javax.swing.plaf.basic; +import sun.awt.datatransfer.DataTransferer; + import java.io.*; import java.awt.datatransfer.*; import javax.swing.plaf.UIResource; @@ -145,7 +147,7 @@ class BasicTransferable implements Transferable, UIResource { } else if (Reader.class.equals(flavor.getRepresentationClass())) { return new StringReader(data); } else if (InputStream.class.equals(flavor.getRepresentationClass())) { - return new StringBufferInputStream(data); + return createInputStream(flavor, data); } // fall through to unsupported } else if (isPlainFlavor(flavor)) { @@ -156,7 +158,7 @@ class BasicTransferable implements Transferable, UIResource { } else if (Reader.class.equals(flavor.getRepresentationClass())) { return new StringReader(data); } else if (InputStream.class.equals(flavor.getRepresentationClass())) { - return new StringBufferInputStream(data); + return createInputStream(flavor, data); } // fall through to unsupported @@ -168,6 +170,15 @@ class BasicTransferable implements Transferable, UIResource { throw new UnsupportedFlavorException(flavor); } + private InputStream createInputStream(DataFlavor flavor, String data) + throws IOException, UnsupportedFlavorException { + String cs = DataTransferer.getTextCharset(flavor); + if (cs == null) { + throw new UnsupportedFlavorException(flavor); + } + return new ByteArrayInputStream(data.getBytes(cs)); + } + // --- richer subclass flavors ---------------------------------------------- protected boolean isRicherFlavor(DataFlavor flavor) { |