aboutsummaryrefslogtreecommitdiff
path: root/src/share/classes/javax/swing/plaf/basic/BasicTransferable.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/classes/javax/swing/plaf/basic/BasicTransferable.java')
-rw-r--r--src/share/classes/javax/swing/plaf/basic/BasicTransferable.java15
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) {