JDK-4796630 : REGRESSION: fullscreen apps crash on NT4 and win98
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 1.4.2
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_nt
  • CPU: x86
  • Submitted: 2002-12-20
  • Updated: 2003-01-13
  • Resolved: 2003-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 Other
1.4.1_02 02Fixed 1.4.2Fixed
Related Reports
Relates :  
Description
To reproduce the crash, run the fullscreen test:
	test/java/awt/FullScreen/MultiBufferDuke/MultiBufferDuke.java

Be sure to run it on either NT4 or a win98 system that has not had its
DirectX version upgraded to DX7 or later.  The app will crash as soon as
you select a display mode in the dialog and click the button to run the test.

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.4.1_02 mantis-beta FIXED IN: 1.4.1_02 mantis-beta INTEGRATED IN: 1.4.1_02 mantis-b13 mantis-beta
14-06-2004

EVALUATION The problem is that we do not check for a NULL pClipper object in the SetClipper call in ddrawObject.cpp. NULL is a valid thing for us to pass into ddraw, but the way that we use the DDrawClipper wrapper object for the true ddraw Clipper object depends on the DDrawClipper being a valid object. I fixed this problem in the DX7 version of the code in ddrawObject.cpp and neglected to fix it for the DX5 version (which is the code that gets executed on NT4 and any other platform running pre-dx7 libraries). The fix is simple: copy the code from the DX7Surface::SetClipper() method into the DX5Surface::SetClipper method. The code simply checks for a NULL pClipper object and passes in the appropriate parameter into the actual ddraw interface function.
11-06-2004