-
Bug
-
Resolution: Fixed
-
P4
-
1.4.1_03, 1.4.2, 1.4.2_10
-
tiger
-
x86
-
windows_2000
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2171992 | 1.4-pool | Vaibhav Choudhary | P3 | Closed | Cannot Reproduce |
Name: pa48320 Date: 09/15/2003
The follow program hangs on a W2K SP4 machine on Window.setVisible(true);
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// java.*
import java.awt.Frame;
import java.awt.Window;
import java.awt.image.ImageObserver;
/**
* Class declaration
*
*
* @author
* @version %I%, %G%
*/
public class Test extends Window implements ImageObserver
{
private static final int HEIGHT = 251;
private static final int WIDTH = 382;
/**
* Constructor
* @param parent the parent frame
*/
public Test(Frame parent)
{
super(parent);
setSize(WIDTH, HEIGHT); // wizard size
}
public static void main(String[] argv) throws Exception
{
Frame f = new Frame();
Test t = new Test(f);
t.setVisible(true);
}
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Tested with 1.3.1_06 - works fine
Tested with 1.4.1_03 - hangs
Tested with 1.4.2 - hangs
This may be a display card related issue: The display information is as follows-
Default Monitor on ATI Technoligies Inc. 3D RAGE IIC PCI
(Incident Review ID: 207469)
======================================================================
This seems like another one of these uncommon hang-on-trying-to-load-nonexistent-ddraw.dll bugs that we've gotten occasionally. I think the root cause of the problem is some weird system configuration where DirectX has been mysteriously de-installed (or simply not installed in the first place). It's my understanding the every Windows OS starting with Win98 and NT4 sp5 shipped with some version of DirectX. On Windows 2000, it should be DX7. The fact that PlatformInfo cannot locate DirectX means that it probably cannot find ddraw.dll and thus DirectX does not appear to be installed.
The best fix here (one which would work around the hang as well as give all possible performance for Java) would be for the customer to manually install DirectX. Go to www.microsoft.com/directx and download/install the latest directX runtime on your system. See if that causes the hang to go away.
In the meantime, there is some weirdness in Java about how we treat this error. The code is supposed to attempt to load ddraw.dll, but failing that, to continue without DirectX acceleration. This appears to be what is happening on 1.5, but not on 1.4.2 (I just tried 1.4.2_02 and my latest developer build of 1.5).
Note that we have not tracked down the problem in the past because it is not trivial to even reproduce the problem. Windows 2000 and XP run a service called "Windows File Protection" which automatically reinstalls (from some hidden cache) any system file (dll, ocx, exe, etc.) that has been deleted, renamed, corrupted, etc. This is a great way to protect systems from accidental or malicious corruption, but makes it quite difficult to remove ddraw.dll for testing purposes. A little scouring on the net turned up information on how to disable this feature, thus the results I reported above for 1.4.2 and 1.5.
I will probably close the bug since it appears to be fixed in 1.5, but first I need to figure out why it wasn't working in 1.4.2 in the first place (so that we don't fall prey to this again and so that the fix can be backported if necessary). More later...
###@###.### 2003-12-03
- backported by
-
JDK-2171992 Java hangs on specific machines when trying to set the Window to visible
-
- Closed
-
- duplicates
-
JDK-4887437 Missing DDraw.dll don't show error message
-
- Closed
-