JDK-8027639 : JComboBox's popup leaves tracks after closing
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 7u10,8,9
  • Priority: P5
  • Status: Open
  • Resolution: Unresolved
  • OS: linux
  • CPU: generic
  • Submitted: 2013-10-31
  • Updated: 2023-01-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Blocks :  
Relates :  
Relates :  
Description
JComboBox's popup leaves tracks after closing

JDK/JRE tested: 1.8.0_b112 (32/64 bits)
OS/architecture: Ubuntu 12.04, Intel
Reproducible: Always.
Is it a Regression: Yes, works correctly with b01, and fail with b60 (regression somewhere between these builds)
Is it a platform specific issue: Yes

Does not reproducible with 7.

To reproduce use attached file. 
Comments
ILW=LLM =P5
30-01-2017

Avik, please clarify why this is P5
25-01-2017

http://mail.openjdk.java.net/pipermail/swing-dev/2016-October/006743.html http://mail.openjdk.java.net/pipermail/swing-dev/2016-November/007007.html http://cr.openjdk.java.net/~ssadetsky/8027639/webrev.00/
13-12-2016

Release team: Approved for deferral.
06-12-2013

Impact: Undecorated windows with transparent background has some artifacts during painting.
28-11-2013

The fix is risky because the shared RepaintManager class should be fixed and the behaviour of double buffering on other platforms can be affected.
28-11-2013

Workaround: You could switch off double buffering for undecorated transparent window: RepaintManager.currentManager(frame).setDoubleBufferingEnabled(false); Also, it is recommended to disable XRender to workaround JDK-8029189: java -Dsun.java2d.xrender=false MainClass
28-11-2013

This is not a regression, because the issue is reproduced with 7 u10 b18.
28-11-2013

The following code disables double buffering and shows transparent green box as expected: RepaintManager.currentManager(frame).setDoubleBufferingEnabled(false); But it does not solve the issue, because the inner component is not visible.
26-11-2013

This is definitely a Swing issue. The following code shows transparent green box in the top left corner: Frame frame = new Frame(); // use AWT on Ubuntu frame.setSize(200, 200); frame.setUndecorated(true); frame.setBackground(new Color(0f, 1f, 0f, 0.5f)); frame.setVisible(true); The following code shows NON-transparent green box in the top left corner: Frame frame = new JFrame(); // use Swing on Ubuntu frame.setSize(200, 200); frame.setUndecorated(true); frame.setBackground(new Color(0f, 1f, 0f, 0.5f)); frame.setVisible(true);
26-11-2013

According to the ShapeTracks test, this does not look a Swing issue. However, it could be caused by a double buffering in Swing. https://weblogs.java.net/blog/alexfromsun/archive/2008/04/custom_repaintm.html
22-11-2013

SAM, please evaluate this bug, is it 2d issue or swing related?
22-11-2013

is it reproducible on 7 GA and Ubuntu 12.04 ?
18-11-2013

The attached ShapeTracks java class draws transparent green color on the window background and transparent red color on the component. Run the ShapeTracks and click mouse on it. The moved blue circle shows that there are artifacts on the opacity areas.
13-11-2013

This is the same test, but different bug.
07-11-2013

is it relates (dup) to JDK-8027541 ?
07-11-2013

> As far I understand everything is ok under X11&opengl. Actually there is an open bug with translucency of the window in xrender that affects Swing but still what's in the screenshot doesn't seem to show compositing even of the swing back buffer. Maybe its the screenshot that's a bit misleading.
05-11-2013

> PS the artifacts in the image look like they are not showing any translucency at all and so may be being run on > a window manager that doesn't support it. As far I understand everything is ok under X11&opengl.
05-11-2013

The problem reproduced for swing lightweight popup menu and was not reproduced for heavyweight.
05-11-2013

I don't see the exact messed up layout that is in the image but I do see something which you can reproduce simply showing the app then clicking the down arrow of "JComboBox" once to show the list and once more to hide it. The string "JComboBox" remains on the translucent area below. I regressed this to 7u6 b15 and I think its likely a regression caused by https://bugs.openjdk.java.net/browse/JDK-2224554 or one of the related issues in the same build. The same went into JDK 8 b43. This failure has no relationship to xrender. It reproduces with either X11 or Xrender. Since this has been around for many JDK7 updates releases and wasn't spotted in testing until now, I don't think it can be that critical to fix for 8. Should be assigned to a Linux/AWT engineer to investigate. PS the artifacts in the image look like they are not showing any translucency at all and so may be being run on a window manager that doesn't support it.
05-11-2013

is it critical to fix in jdk8 or defer?
05-11-2013

Not a test bug, it's reproducible on 7u21 so not a regression.
05-11-2013

Andrei, please note that in order to turn xrender off, you need to pass -Dsun.java2d.xrender=false (note lower case false, not False) It doesn't seems to be a dup, this test actually doesn't work correctly even with X11 pipepline. Also it's nto a regression, xrender was turned on by default early in JDK 8, hence different results with default pipeline. To properly test if it's a regression or not, use xrender=True and xrender=false.
05-11-2013

is it test bug? otherwise is it critical to fix in jdk8 or defer?
05-11-2013

is it dup?
31-10-2013

Test works with -Dsun.java2d.xrender=False. But if I enable xrender, issue is reproducible.
31-10-2013

Can you run all related tests with and w/o xrender? -Dsun.java2d.xrender=True -Dsun.java2d.xrender=False
31-10-2013