8051588: DataTransferer.getInstance throws ClassCastException in headless mode

Reviewed-by: serb, alexsch
This commit is contained in:
Petr Pchelko 2014-07-28 19:11:52 +04:00
parent 0fecd77694
commit 0b40742fe1
4 changed files with 13 additions and 3 deletions

View File

@ -25,6 +25,8 @@
package sun.awt;
import sun.awt.datatransfer.DataTransferer;
import java.awt.*;
import java.awt.dnd.*;
import java.awt.dnd.peer.DragSourceContextPeer;
@ -93,4 +95,6 @@ public interface ComponentFactory {
RobotPeer createRobot(Robot target, GraphicsDevice screen)
throws AWTException, HeadlessException;
DataTransferer getDataTransferer();
}

View File

@ -25,6 +25,8 @@
package sun.awt;
import sun.awt.datatransfer.DataTransferer;
import java.awt.*;
import java.awt.dnd.*;
import java.awt.dnd.peer.DragSourceContextPeer;
@ -402,6 +404,11 @@ public class HeadlessToolkit extends Toolkit
return null;
}
@Override
public DataTransferer getDataTransferer() {
return null;
}
@SuppressWarnings("deprecation")
public FontMetrics getFontMetrics(Font font) {
return tk.getFontMetrics(font);

View File

@ -203,8 +203,6 @@ public abstract class SunToolkit extends Toolkit
public abstract boolean isTraySupported();
public abstract DataTransferer getDataTransferer();
@SuppressWarnings("deprecation")
public abstract FontPeer getFontPeer(String name, int style);

View File

@ -74,6 +74,7 @@ import java.util.*;
import sun.datatransfer.DataFlavorUtil;
import sun.awt.AppContext;
import sun.awt.ComponentFactory;
import sun.awt.SunToolkit;
import java.awt.image.BufferedImage;
@ -177,7 +178,7 @@ public abstract class DataTransferer {
* instead, null will be returned.
*/
public static synchronized DataTransferer getInstance() {
return ((SunToolkit) Toolkit.getDefaultToolkit()).getDataTransferer();
return ((ComponentFactory) Toolkit.getDefaultToolkit()).getDataTransferer();
}
/**