<Swing Dev> <AWT Dev> [8u-backport] JDK 8145547: [AWT/Swing] Conditional support for GTK 3 on Linux

semyon.sadetsky at oracle.com semyon.sadetsky at oracle.com
Tue Oct 9 18:37:03 UTC 2018


+1

--Semyon


On 10/8/18 12:34 PM, Phil Race wrote:
> Hi,
>
> I've looked over the code and tested on Ubuntu 18.04 and can confirm 
> it works
> as well as the JDK 11 code does.
>
> I reproduced the problems Semyon noted that are present on JDK 11 as 
> well.
>
> The UI hang when switching themes is not specific to using GTK3 - it 
> occurs with
> GTK2 as well, and not specific to Ubuntu 18.04, it occurs on Ubuntu 
> 16.04 too.
>
>
> "AWT-EventQueue-0" #14 prio=6 os_prio=0 cpu=1537.25ms elapsed=16.86s 
> tid=0x00007f7d2c6dc000 nid=0x4a32 runnable [0x00007f7cca817000]
>    java.lang.Thread.State: RUNNABLE
>         at 
> com.sun.java.swing.plaf.gtk.GTKEngine.native_switch_theme(java.desktop/Native 
> Method)
>         at 
> com.sun.java.swing.plaf.gtk.GTKEngine.themeChanged(java.desktop/GTKEngine.java:625)
>         - locked <0x0000000706613b68> (a java.lang.Object)
>         at 
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel$WeakPCL$1.run(java.desktop/GTKLookAndFeel.java:1496)
>
> ....
>
> It does NOT occur with current JDK 8u, so there is something in the 
> GTK 3 work
> causing it. This is not a stopper for the backport since switching 
> themes is unlikely / rare.
> But we should file bugs against that and the rendering issues and fix 
> in JDK 12 and backport
> those too - as a follow on as at least some of these could be blockers 
> for GTK3 on by default in 8u.
>
> "+1" to this main backport.
>
> -phil.
>
> On 10/08/2018 01:23 AM, Pankaj Bansal wrote:
>> Hi,
>>
>> The patch in 02 version no longer applies cleanly as check-ins have 
>> been done since it was created. I have updated the webrev. Also fixed 
>> the whitespace in gtk2_interface.c
>>
>> Webrev:
>> http://cr.openjdk.java.net/~pbansal/gtk3_backport/webrev.03/
>>
>> Regards,
>> Pankaj
>>
>> -----Original Message-----
>> From: Kevin Rushforth
>> Sent: Wednesday, September 12, 2018 8:19 PM
>> To: Pankaj Bansal; awt-dev at openjdk.java.net; swing-dev at openjdk.java.net
>> Subject: Re: <AWT Dev> <Swing Dev> [8u-backport] JDK 8145547: 
>> [AWT/Swing] Conditional support for GTK 3 on Linux
>>
>> Looks fine. Btw, you have a trailing whitespace in gtk2_interface.c 
>> that you need to fix before you push (jcheck will tell you about that).
>>
>> -- Kevin
>>
>>
>> On 9/12/2018 5:29 AM, Pankaj Bansal wrote:
>>> Hi,
>>>
>>> I have found a small mistake in gtk_interface.c. I had used wrong 
>>> name of gtk3 lib at line 56. I have correct the same in webrev.02.
>>> It is just a typo and should not have any effect on functionality. 
>>> All should work the same as 01 version.
>>>
>>> Webrev:
>>> http://cr.openjdk.java.net/~pbansal/gtk3_backport/webrev.02/
>>>
>>> Regards,
>>> Pankaj
>>>
>>>
>>> -----Original Message-----
>>> From: Kevin Rushforth
>>> Sent: Saturday, September 8, 2018 1:53 AM
>>> To: Pankaj Bansal; Sergey Bylokhov; awt-dev at openjdk.java.net;
>>> swing-dev at openjdk.java.net
>>> Subject: Re: <AWT Dev> <Swing Dev> [8u-backport] JDK 8145547:
>>> [AWT/Swing] Conditional support for GTK 3 on Linux
>>>
>>> I tested various combinations of Swing / FX interop and it all looks 
>>> fine to me. I only glanced through the AWT code changes, though, but 
>>> I didn't spot anything amiss.
>>>
>>> -- Kevin
>>>
>>>
>>> On 9/6/2018 4:35 AM, Pankaj Bansal wrote:
>>>> Hello Sergey/Kevin,
>>>>
>>>> I have removed the backport for 
>>>> https://bugs.openjdk.java.net/browse/JDK-8154546 : Retire 
>>>> sun.misc.GThreadHelper. I did a clean build and tried few tests for 
>>>> Swing-FX interop. They all run fine. I have attached the link to 
>>>> tests if you would like to have a look. I did run the awt and swing 
>>>> jtreg tests also.
>>>>
>>>> Webrev: http://cr.openjdk.java.net/~pbansal/gtk3_backport/webrev.01/
>>>> SwingFXInteropTests:
>>>> http://cr.openjdk.java.net/~pbansal/gtk3_backport/SwingFXInteropTests
>>>> /
>>>>
>>>> Please let me know if you would like me to do some further testing 
>>>> for Swing-FX interop.
>>>>
>>>> Regards,
>>>> Pankaj Bansal
>>>>
>>>> -----Original Message-----
>>>> From: Kevin Rushforth
>>>> Sent: Thursday, September 6, 2018 3:29 AM
>>>> To: Sergey Bylokhov; Pankaj Bansal; awt-dev at openjdk.java.net;
>>>> swing-dev at openjdk.java.net
>>>> Subject: Re: <AWT Dev> <Swing Dev> [8u-backport] JDK 8145547:
>>>> [AWT/Swing] Conditional support for GTK 3 on Linux
>>>>
>>>> The simple testing that I did -- one each of a Swing app + JFXPanel
>>>> and a JavaFX app + SwingNode -- worked for me on my local build after
>>>> restoring that file. Some additional testing (necessarily limited to
>>>> GTK
>>>> 2 until the FX backport for GTK 3 is done) might be needed.
>>>>
>>>> -- Kevin
>>>>
>>>>
>>>> On 9/5/2018 2:35 PM, Sergey Bylokhov wrote:
>>>>> HI, Pankaj.
>>>>> Can you please recheck that FX<-->Swing interop still works?
>>>>> Probably there are some other than GThreadHelper issues
>>>>>
>>>>> On 05/09/2018 11:44, Pankaj Bansal wrote:
>>>>>> Hello Kevin,
>>>>>>
>>>>>> Thanks for pointing it out. I will remove this fix for now. I hope
>>>>>> its ok, if I create new webrev when I get some more comments here.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Pankaj Bansal
>>>>>>
>>>>>> *From:*Kevin Rushforth
>>>>>> *Sent:* Wednesday, September 5, 2018 10:29 PM
>>>>>> *To:* Pankaj Bansal; awt-dev at openjdk.java.net;
>>>>>> swing-dev at openjdk.java.net
>>>>>> *Subject:* Re: <AWT Dev> [8u-backport] JDK 8145547: [AWT/Swing]
>>>>>> Conditional support for GTK 3 on Linux
>>>>>>
>>>>>> The backport of the following fix, which removes
>>>>>> sun.misc.GThreadHelper, will break all FX interop applications,
>>>>>> even if GTK2 is used:
>>>>>>
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8154546 : Retire
>>>>>> sun.misc.GThreadHelper
>>>>>>
>>>>>> The FX GTK port still uses that class, so the class needs to be
>>>>>> left in until after the FX support for GTK 3 has been backported.
>>>>>>
>>>>>> -- Kevin
>>>>>>
>>>>>>
>>>>>> On 9/5/2018 12:56 AM, Pankaj Bansal wrote:
>>>>>>
>>>>>>        Hi All,
>>>>>>
>>>>>>        Please review the patch for 8u-dev backport for JDK-8145547.
>>>>>> It adds
>>>>>>        conditional support for gtk3.
>>>>>>
>>>>>>        The original fix does not apply cleanly as few changes were
>>>>>> done in
>>>>>>        jdk9 before the gtk3 support was added, major once being
>>>>>> JDK-8025815
>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8025815>, JDK-8014212
>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8014212> and
>>>>>> JDK-8137571
>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8137571>
>>>>>>
>>>>>>        Along with the enhancement, following bug fixes have also 
>>>>>> been
>>>>>>        included in the backport webrev
>>>>>>
>>>>>> 1.https://bugs.openjdk.java.net/browse/JDK-8155772:
>>>>>> gtk3_interface.c
>>>>>>        compilation error on Ubuntu 12.10
>>>>>>
>>>>>> 2.https://bugs.openjdk.java.net/browse/JDK-8156020: 8145547
>>>>>> breaks
>>>>>>        AIX and and uses RTLD_NOLOAD incorrectly
>>>>>>
>>>>>> 3.https://bugs.openjdk.java.net/browse/JDK-8156121: Fail forward"
>>>>>>        fails for GTK3 if no GTK2 available
>>>>>>
>>>>>> 4.https://bugs.openjdk.java.net/browse/JDK-8156128: Tests for
>>>>>>        [AWT/Swing] Conditional support for GTK 3 on Linux
>>>>>>
>>>>>> 5.https://bugs.openjdk.java.net/browse/JDK-8157827:
>>>>>>        AWT_Desktop/Automated/Exceptions/BasicTest loads incorrect 
>>>>>> GTK
>>>>>>        version when jdk.gtk.version=3
>>>>>>
>>>>>> 6.https://bugs.openjdk.java.net/browse/JDK-8160160: The menu
>>>>>>        displayed nothing with the option"-server -d64 -Xmixed
>>>>>> -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel".
>>>>>>
>>>>>> 7.https://bugs.openjdk.java.net/browse/JDK-8191041:
>>>>>> Questionable
>>>>>>        Rendering of Disabled Text in Swing GTK L&F
>>>>>>
>>>>>> 8.https://bugs.openjdk.java.net/browse/JDK-8203003: Several
>>>>>>        FileDialog Modality Tests fail on Linux due to X errors
>>>>>>
>>>>>> 9.https://bugs.openjdk.java.net/browse/JDK-8155784: Build
>>>>>> failure on
>>>>>>        Linux arm64
>>>>>>
>>>>>> 10.https://bugs.openjdk.java.net/browse/JDK-8154546: Retire
>>>>>>        sun.misc.GThreadHelper
>>>>>>
>>>>>> 11.https://bugs.openjdk.java.net/browse/JDK-8152968: JTree
>>>>>> Collapse
>>>>>>        Buttons Clipped Off Under GTK
>>>>>>
>>>>>> 12.https://bugs.openjdk.java.net/browse/JDK-8160448: Make
>>>>>> GTK3 menus
>>>>>>        appearence similar to native.
>>>>>>
>>>>>> 13.https://bugs.openjdk.java.net/browse/JDK-8155613: [PIT]
>>>>>> crash in
>>>>>>        AWT_Desktop/Automated/Exceptions/BasicTest
>>>>>>
>>>>>> 14.https://bugs.openjdk.java.net/browse/JDK-8160054: The
>>>>>> FileChooser
>>>>>>        didn't displayed large font with GTK LAF option.
>>>>>>
>>>>>> 15.https://bugs.openjdk.java.net/browse/JDK-8164321: Crash of
>>>>>>        SwingNode with GTK LaF
>>>>>>
>>>>>> 16.https://bugs.openjdk.java.net/browse/JDK-8161740: [parfait]
>>>>>>        Memory leak in Java_sun_awt_UNIXToolkit_load_1gtk_1icon of
>>>>>>        awt_UNIXToolkit.c:132
>>>>>>
>>>>>> 17.https://bugs.openjdk.java.net/browse/JDK-8168077: Solaris
>>>>>> build
>>>>>>        failed: gtk2_interface.h typedef redeclared: GThreadFunctions
>>>>>>
>>>>>>        webrev:
>>>>>> http://cr.openjdk.java.net/~pbansal/gtk3_backport/webrev.00/
>>>>>> <http://cr.openjdk.java.net/%7Epbansal/gtk3_backport/webrev.00/>
>>>>>>
>>>>>>        JBS: https://bugs.openjdk.java.net/browse/JDK-8145547
>>>>>>
>>>>>>        JDK 9 Changeset:
>>>>>> http://hg.openjdk.java.net/jdk9/client/jdk/rev/6d60dfa5e3f8
>>>>>>
>>>>>>        I have run the related jtreg and jck tests and results are 
>>>>>> fine.
>>>>>>
>>>>>>        Regards,
>>>>>>
>>>>>>        Pankaj
>>>>>>
>



More information about the swing-dev mailing list