JDK-6873928 : Windows7: Rendering artifacts when scrolling/dragging on Vista with Aero/D
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 6u14
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • OS: windows_7
  • CPU: x86
  • Submitted: 2009-08-20
  • Updated: 2012-01-16
Related Reports
Relates :  
Description
FULL PRODUCT VERSION :
jre 1.6.0_14

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows 7 RC - 6.1.7100

EXTRA RELEVANT SYSTEM CONFIGURATION :
Test cases where double buffering has been switched off
(-Dswing.bufferPerWindow=false)
and switched on (property not set) have both been run.


A DESCRIPTION OF THE PROBLEM :
REGRESSION for BUG: 6630702 on Windows 7

This report is for a regression in the behaviour described in 6630702 (now closed), which was reported as fixed in 6u10, but the behaviour is observed once again in Windows 7 RC:

If the Windows 7 'Aero' desktop theme is enabled (the default behaviour), many/most swing artifcats are incorrectly painted/repainted.
If Aero is disabled, and the 'Windows Classic' theme is used instead, Swing paints beautifully, and no problems are encountered.

It is suspected that the evaluation given in 6630702 - DWM/double buffering - is likely to be the culprit in this case as well.

It was also observed that splash screens (JWindow) and JDialogs displayed generally OK under Aero - and it was JFrame objects and their children where painting problems were encountered.


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Launch a Swing application that contains a displayed JFrame with a number of JPanel/JTable/JTree/JMenuItems JComponents etc.


EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
It is expected that the JRE will display the JFrame and children correctly within the native Windows 7 Aero frame.
ACTUAL -
Some components (e.g. JTrees) displayed OK some of the time. Other components (e.g. JTables) never displayed at all except for the odd JTableHeader now and again.
Some scrollbars are shown some of the time.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
No errors/exceptions are reported within the JRE or under Window 7.

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
Use your favourite Swing JFrame example to demonstrate the issue.
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
As stated, the previous workaround from 6630702 of disabled double-buffering by using:
  -Dswing.bufferPerWindow=false
does not work in this case.
Also tried was disabling ddraw using:
  -Dsun.java2d.noddraw=true
as well as combinations of the above. None of these address the paint problem.

The only current workaround on Windows 7 RC is to disable Aero and use a 'Windows Classic' theme.