<Swing Dev> <AWT Dev> [8u-backport] JDK 8145547: [AWT/Swing] Conditional support for GTK 3 on Linux
Phil Race
philip.race at oracle.com
Mon Oct 8 19:34:52 UTC 2018
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