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@openjdk.java.net; swing-...@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@openjdk.java.net;
swing-...@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@openjdk.java.net;
swing-...@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@openjdk.java.net;
swing-...@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


Reply via email to