<AWT Dev> <Awt Dev> [9] Review Request for 8141528: Test closed/java/awt/FullScreen/DisplayMode/CycleDMImage.java fails for Ubuntu 15.10

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Thu Dec 10 16:02:43 UTC 2015


On 10/12/15 18:45, Semyon Sadetsky wrote:
>
>
> On 12/10/2015 5:50 PM, Sergey Bylokhov wrote:
>> On 09/12/15 10:21, Semyon Sadetsky wrote:
>>>
>>>
>>> On 12/8/2015 10:36 PM, Sergey Bylokhov wrote:
>>>> On 08/12/15 22:07, Semyon Sadetsky wrote:
>>>>>
>>>>>
>>>>> On 12/8/2015 9:11 PM, Sergey Bylokhov wrote:
>>>>>> On 08.12.15 21:03, Semyon Sadetsky wrote:
>>>>>>> The test fails on Ubuntu 14 as well. It only was discovered on
>>>>>>> Ubunu 15
>>>>>>> by QA.
>>>>>>
>>>>>> In the bug description they said that it passes on Ubuntu 14.04. I
>>>>>> guess this is the reason why it was filed only now.
>>>>> On my Ubuntu 14.04 it doesn't pass because of the same reason. Also
>>>>> I've
>>>>> read the same complains in the I-net. Can you confirm that your Ubuntu
>>>>> 14 passes the test?
>>>>
>>>> The system on which it is passed is provided in the description.
>>> This system you are talking about is not an Ubuntu 14. It uses
>>> another WM:
>>>
>>> gtee at stt-137:/export/local/aurora/sandbox$ export | grep DESKTOP
>>> declare -x DESKTOP_SESSION="gnome"
>>> declare -x GNOME_DESKTOP_SESSION_ID="this-is-deprecated"
>>> declare -x XDG_CURRENT_DESKTOP="GNOME"
>>>>
>>>>>>
>>>>>>> I think this is because Compiz WM takes more control on windows for
>>>>>>> enhanced effects and does extra work when desktop resolution has
>>>>>>> changed.
>>>>>>
>>>>>> I suggest at least check this with their developers via bug database.
>>>>> Yes, I can file a bug there but not sure that there strict specs for
>>>>> that functionality.
>>>>> The fix solves the problem on our side for Ubuntu selectively, so
>>>>> please
>>>>> review it.
>>>>
>>>> We should at least understand that we have a problem on our side.
>>> It is relative... It is better to follow that our customers should not
>>> have problems on their side.
>>
>> But it is better to understand the problem instead of creating the
>> workarounds. For example standalone code below(copied from the jdk)
>> works as expected on ubuntu 14.04+unity. But the same code in jdk does
>> not work.
>>
>> #include <X11/Xlib.h>
>> #include <strings.h>
>> #include <memory.h>
>> #include <stdlib.h>
>> #include <stdio.h>
>>
>> int main ()
>> {
>>     Display* awt_display = XOpenDisplay(NULL);
>>     Window win = XCreateSimpleWindow(awt_display,
>> RootWindow(awt_display, 0), 0, 0, 10, 10,
>>                                      0, BlackPixel (awt_display, 0),
>> BlackPixel(awt_display, 0));
>>     XMapWindow(awt_display, win);
>>     Atom wmState = XInternAtom(awt_display, "_NET_WM_STATE", False);
>>     Atom wmStateFs = XInternAtom(awt_display,
>>                                  "_NET_WM_STATE_FULLSCREEN", False);
>>     XWindowAttributes attr;
>>     XEvent event;
>>
>>     if (wmState == None || wmStateFs == None
>>             || !XGetWindowAttributes(awt_display, win, &attr)) {
>>         return;
>>     }
>>
>>     memset(&event, 0, sizeof(event));
>>     event.xclient.type = ClientMessage;
>>     event.xclient.message_type = wmState;
>>     event.xclient.display = awt_display;
>>     event.xclient.window = win;
>>     event.xclient.format = 32;
>>     event.xclient.data.l[0] = 1; // 1==add, 0==remove
>>     event.xclient.data.l[1] = wmStateFs;
>>
>>     XSendEvent(awt_display, attr.root, False,
>>                SubstructureRedirectMask | SubstructureNotifyMask,
>>                &event);
>>     XSync(awt_display, False);
>>
>>     sleep(5);
>>     return(0);
>>
>> }
> It looks like you did not fully understand the issue. The problem shows
> itself only after the screen with a full screen window is switched to
> another resolution.

The test which I use to reproduce it in java(similar to native above) do 
not change the resolution, it does not work from the beginning:

import java.awt.*;

public class CycleDMImage extends Component
{
     static Frame frame;
     public static void main(String args[]) throws InterruptedException {

         GraphicsDevice gd =
                 GraphicsEnvironment.getLocalGraphicsEnvironment().
                         getDefaultScreenDevice();
         if (!gd.isFullScreenSupported()) {
             System.err.println("FullScreen mode is not supported,"+
                     " the test is considered passed.");
             return;
         }

         Frame frame = new Frame();
         frame.setSize(400, 400);
         frame.setUndecorated(true);
         CycleDMImage comp = new CycleDMImage();
         frame.add(comp);
         frame.setVisible(true);
         gd.setFullScreenWindow(frame);
         Thread.sleep(5000);
         gd.setFullScreenWindow(null);
         System.exit(0);
     }
}


>>
>>>>
>>>>>>
>>>>>>>
>>>>>>> On 12/8/2015 8:37 PM, Sergey Bylokhov wrote:
>>>>>>>> Hi, Semyon.
>>>>>>>> Can you please provide an additional information why compiz in
>>>>>>>> ubuntu
>>>>>>>> 15.10 require this. Is it specified/intended behavior or probably a
>>>>>>>> bug? since it works on ubuntu 14.04.
>>>>>>>>
>>>>>>>> On 07.12.15 14:11, Semyon Sadetsky wrote:
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> Please review fix for JDK9:
>>>>>>>>>
>>>>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8141528
>>>>>>>>> webrev: http://cr.openjdk.java.net/~ssadetsky/8141528/webrev.00/
>>>>>>>>>
>>>>>>>>> Compiz WM requires override redirect for full-screen window to
>>>>>>>>> preserve
>>>>>>>>> the full size upon display mode switching.
>>>>>>>>>
>>>>>>>>> --Semyon
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>


-- 
Best regards, Sergey.


More information about the awt-dev mailing list