JDK-6542419 : SharedMemoryPixmapsTest.sh failed on 5.0u12b02 but passed on previous one
Type:Bug
Component:client-libs
Sub-Component:2d
Affected Version:5.0u12
Priority:P2
Status:Closed
Resolution:Fixed
OS:solaris_nevada,windows_xp
CPU:x86,sparc
Submitted:2007-04-04
Updated:2011-01-19
Resolved:2009-12-08
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.
EVALUATION
I have verified that this change fixes the regression.
04-04-2007
SUGGESTED FIX
------- VolatileSurfaceManager.java -------
180,184d179
< } else if (sdAccel != null) {
< // if the "acceleration enabled" state changed to disabled,
< // switch to software surface
< sdCurrent = getBackupSurface();
< sdAccel = null;
185a181,186
> } else if (sdAccel != null) {
> // if the "acceleration enabled" state changed to disabled,
> // switch to software surface
> sdCurrent = getBackupSurface();
> sdAccel = null;
> }
187,193c188,194
< if ((returnCode != VolatileImage.IMAGE_INCOMPATIBLE) &&
< (sdCurrent != sdPrevious))
< {
< // contents have changed - return RESTORED to user
< sdPrevious = sdCurrent;
< returnCode = VolatileImage.IMAGE_RESTORED;
< }
---
> if ((returnCode != VolatileImage.IMAGE_INCOMPATIBLE) &&
> (sdCurrent != sdPrevious))
> {
> // contents have changed - return RESTORED to user
> sdPrevious = sdCurrent;
> returnCode = VolatileImage.IMAGE_RESTORED;
> }
195,199c196,199
< if (returnCode == VolatileImage.IMAGE_RESTORED) {
< // clear the current surface with the background color,
< // only if the surface has been restored
< initContents();
< }
---
> if (returnCode == VolatileImage.IMAGE_RESTORED) {
> // clear the current surface with the background color,
> // only if the surface has been restored
> initContents();
04-04-2007
EVALUATION
This is a regression introduced by the fix for
6353972 REGRESSION: GUI fails to paint text with large heap size setting
http://jpsesvr.sfbay.sun.com:8080/ctetools/html/ViewDetail.jsp?index=2088
The problem is that the change in VolatileSurfaceManager.java was
not backported correctly, and unfortunately the reviewer (me) missed it.
This change:
180 } else if (sdAccel != null) {
181 // if the "acceleration enabled" state changed to disabled,
182 // switch to software surface
183 sdCurrent = getBackupSurface();
184 sdAccel = null;
185 }
was applied to the wrong 'if ()'. It should have been an "else" to the
'if (isAccelerationEnabled())' if. See jdk6 source code for
the proper fix.
I have put the corrected diffs relative to 5.0u12b02 source to
the suggested fix field, also attached.
This has to be fixed before 5.0u12 goes out.