8130390: Applet fails to launch on virtual desktop

Reviewed-by: azvegint, serb
This commit is contained in:
Semyon Sadetsky 2015-07-21 09:35:04 +03:00
parent 3bc940fdaa
commit 1564b678e7
2 changed files with 63 additions and 4 deletions

View File

@ -3980,9 +3980,10 @@ public abstract class Component implements ImageObserver, MenuContainer,
/**
* Inner class for flipping buffers on a component. That component must
* be a <code>Canvas</code> or <code>Window</code>.
* be a <code>Canvas</code> or <code>Window</code> or <code>Applet</code>.
* @see Canvas
* @see Window
* @see Applet
* @see java.awt.image.BufferStrategy
* @author Michael Martak
* @since 1.4
@ -4030,9 +4031,11 @@ public abstract class Component implements ImageObserver, MenuContainer,
/**
* Creates a new flipping buffer strategy for this component.
* The component must be a <code>Canvas</code> or <code>Window</code>.
* The component must be a <code>Canvas</code> or <code>Window</code> or
* <code>Applet</code>.
* @see Canvas
* @see Window
* @see Applet
* @param numBuffers the number of buffers
* @param caps the capabilities of the buffers
* @exception AWTException if the capabilities supplied could not be
@ -4049,10 +4052,11 @@ public abstract class Component implements ImageObserver, MenuContainer,
throws AWTException
{
if (!(Component.this instanceof Window) &&
!(Component.this instanceof Canvas))
!(Component.this instanceof Canvas) &&
!(Component.this instanceof Applet))
{
throw new ClassCastException(
"Component must be a Canvas or Window");
"Component must be a Canvas or Window or Applet");
}
this.numBuffers = numBuffers;
this.caps = caps;

View File

@ -0,0 +1,55 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* @test
@bug 8130390
@summary Applet fails to launch on virtual desktop
@author Semyon Sadetsky
*/
import sun.awt.AWTAccessor;
import java.applet.Applet;
import java.awt.*;
public class AppletFlipBuffer {
public static void main(String[] args) throws Exception {
Applet applet = new Applet();
AWTAccessor.ComponentAccessor componentAccessor
= AWTAccessor.getComponentAccessor();
BufferCapabilities caps = new BufferCapabilities(
new ImageCapabilities(true), new ImageCapabilities(true),
BufferCapabilities.FlipContents.BACKGROUND);
Frame frame = new Frame();
try {
frame.add(applet);
frame.setUndecorated(true);
frame.setVisible(true);
componentAccessor.createBufferStrategy(applet, 2, caps);
System.out.println("ok");
}
finally {
frame.dispose();
}
}
}