-
Bug
-
Resolution: Duplicate
-
P4
-
9
-
None
Run the following sample:
------------------------------
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.SystemFlavorMap;
import java.io.IOException;
import java.io.Reader;
import javax.swing.JLabel;
import javax.swing.TransferHandler;
public class ConstructFlavoredObjectTest {
private static final String TEST_MIME_TYPE = "text/plain;class="
+ MyStringReader.class.getName();
public static void main(String[] args) throws Exception {
final DataFlavor dataFlavor = new DataFlavor(TEST_MIME_TYPE);
SystemFlavorMap systemFlavorMap = (SystemFlavorMap) SystemFlavorMap.
getDefaultFlavorMap();
systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT");
systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor);
TransferHandler transferHandler = new TransferHandler("Test Handler");
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
transferHandler.exportToClipboard(new JLabel("Test"), clipboard,
TransferHandler.COPY);
Object clipboardData = clipboard.getData(dataFlavor);
System.out.println("clipboardData: " + clipboardData);
if (!(clipboardData instanceof MyStringReader)) {
throw new RuntimeException("Wrong clipboard data!");
}
}
public static class MyStringReader extends Reader {
public MyStringReader(Reader reader) {
}
@Override
public int read(char[] cbuf, int off, int len) throws IOException {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void close() throws IOException {
throw new UnsupportedOperationException("Not supported yet.");
}
}
}
------------------------------
The exception is thrown:
------------------------------
Exception in thread "main" java.lang.InternalError
at java.lang.invoke.MethodHandleImpl$BindCaller.bindCaller(MethodHandleImpl.java:1144)
at java.lang.invoke.MethodHandleImpl$BindCaller.bindCaller(MethodHandleImpl.java:1144)
at java.lang.invoke.MethodHandleImpl.bindCaller(MethodHandleImpl.java:1130)
at java.lang.invoke.MethodHandles$Lookup.maybeBindCaller(MethodHandles.java:1677)
at java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:1665)
at java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(MethodHandles.java:1613)
at java.lang.invoke.MethodHandles$Lookup.getDirectMethodForConstant(MethodHandles.java:1798)
at java.lang.invoke.MethodHandles$Lookup.linkMethodHandleConstant(MethodHandles.java:1747)
at java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(MethodHandleNatives.java:399)
at sun.awt.datatransfer.DataTransferer.constructFlavoredObject(DataTransferer.java:1438)
at sun.awt.datatransfer.DataTransferer.translateStream(DataTransferer.java:1361)
at sun.awt.windows.WDataTransferer.translateStream(WDataTransferer.java:237)
at sun.awt.datatransfer.DataTransferer.translateBytes(DataTransferer.java:1190)
at sun.awt.windows.WDataTransferer.translateBytes(WDataTransferer.java:285)
at sun.awt.datatransfer.SunClipboard.getData(SunClipboard.java:230)
at datatransfer.ConstructFlavoredObjectTest.main(ConstructFlavoredObjectTest.java:59)
------------------------------
------------------------------
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.SystemFlavorMap;
import java.io.IOException;
import java.io.Reader;
import javax.swing.JLabel;
import javax.swing.TransferHandler;
public class ConstructFlavoredObjectTest {
private static final String TEST_MIME_TYPE = "text/plain;class="
+ MyStringReader.class.getName();
public static void main(String[] args) throws Exception {
final DataFlavor dataFlavor = new DataFlavor(TEST_MIME_TYPE);
SystemFlavorMap systemFlavorMap = (SystemFlavorMap) SystemFlavorMap.
getDefaultFlavorMap();
systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT");
systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor);
TransferHandler transferHandler = new TransferHandler("Test Handler");
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
transferHandler.exportToClipboard(new JLabel("Test"), clipboard,
TransferHandler.COPY);
Object clipboardData = clipboard.getData(dataFlavor);
System.out.println("clipboardData: " + clipboardData);
if (!(clipboardData instanceof MyStringReader)) {
throw new RuntimeException("Wrong clipboard data!");
}
}
public static class MyStringReader extends Reader {
public MyStringReader(Reader reader) {
}
@Override
public int read(char[] cbuf, int off, int len) throws IOException {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void close() throws IOException {
throw new UnsupportedOperationException("Not supported yet.");
}
}
}
------------------------------
The exception is thrown:
------------------------------
Exception in thread "main" java.lang.InternalError
at java.lang.invoke.MethodHandleImpl$BindCaller.bindCaller(MethodHandleImpl.java:1144)
at java.lang.invoke.MethodHandleImpl$BindCaller.bindCaller(MethodHandleImpl.java:1144)
at java.lang.invoke.MethodHandleImpl.bindCaller(MethodHandleImpl.java:1130)
at java.lang.invoke.MethodHandles$Lookup.maybeBindCaller(MethodHandles.java:1677)
at java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:1665)
at java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(MethodHandles.java:1613)
at java.lang.invoke.MethodHandles$Lookup.getDirectMethodForConstant(MethodHandles.java:1798)
at java.lang.invoke.MethodHandles$Lookup.linkMethodHandleConstant(MethodHandles.java:1747)
at java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(MethodHandleNatives.java:399)
at sun.awt.datatransfer.DataTransferer.constructFlavoredObject(DataTransferer.java:1438)
at sun.awt.datatransfer.DataTransferer.translateStream(DataTransferer.java:1361)
at sun.awt.windows.WDataTransferer.translateStream(WDataTransferer.java:237)
at sun.awt.datatransfer.DataTransferer.translateBytes(DataTransferer.java:1190)
at sun.awt.windows.WDataTransferer.translateBytes(WDataTransferer.java:285)
at sun.awt.datatransfer.SunClipboard.getData(SunClipboard.java:230)
at datatransfer.ConstructFlavoredObjectTest.main(ConstructFlavoredObjectTest.java:59)
------------------------------
- duplicates
-
JDK-8133719 java.lang.InternalError in java.lang.invoke.MethodHandleImpl$BindCaller.bindCaller
-
- Resolved
-