Included is a description from Lotus about how to crash the appletviewer in Windows 2000. This issue has been filed as an RFE 4303460. Please some additional details there. It is also filed against 1.2.2. We are publicly claiming on our Web site to support 1.1.8 on Windows 2000. So I am filing this as a bug against 1.1.8. Please see RFE 4303460 for details on how to fix the problem.
Here is how to reproduce the crash of appletviewer.
Start Windows 2000.
In the control panel, open Regional Options.
Select Indic in the "Language settings for the system".
Windows 2000 will access the CD to install Indic specific files. Please
insert the Windows 2000 CD.
You might need to restart the system.
After restarting the system, please go to the Regional Options again.
Select "Hindi" in "Your locale (location)".
Open appletviewer and run any applet.
The applet viewer crashes.
I think you can always reproduct the crash
tom.kincaid@east 2000-02-09
The evaluation called for us to reproduce it on the Kestrel Beta. The bug was not filed on the kestrel beta. It was filed on 1.1.8. The bug is not incomplete.
In the meantime I will see if I can get the customer to reproduce the bug on the Kestrel Beta in order to help debug the problem.
Comments from licensee Oracle::
---
Specifically, this occurs only when a component is displayed. An
application that simply creates and shows a frame will cause the
crash.
The problem is that awt_Font.cpp->GetCodePageSubkey calls setlocale,
which returns NULL. The problem isn't that setlocale is failing,
but that the subsequent code then attemps to pass the return value to
strchr, which fails.
The NULL result occurs because there's no ANSI code page for the
Indic locales, which are all Unicode. I recommend reading the
documentation for GetLocaleInfo, GetLocaleInfoW, setlocale and
_wsetlocale on msdn.microsoft.com.
Note that this only occurs using Windows 2000. This occurs in 1.1.7
of the JDK, and though I haven't tested in newer versions, the code
is the same. As long as Windows 2000 is returning a NULL code page,
the crash will occur.
Also, this crash occurs running a simple applet in the Netscape VM,
but does NOT occur using the IE VM.
Bug WorkaroundI have no workaround, other than returning NULL upon failure of
setlocale to return a valid code page. I don't know if this will
work on Indic versions of Windows 2000, but it does work on English
versions that have been set to an Indic locale.
---
Here is how to reproduce the crash of appletviewer.
Start Windows 2000.
In the control panel, open Regional Options.
Select Indic in the "Language settings for the system".
Windows 2000 will access the CD to install Indic specific files. Please
insert the Windows 2000 CD.
You might need to restart the system.
After restarting the system, please go to the Regional Options again.
Select "Hindi" in "Your locale (location)".
Open appletviewer and run any applet.
The applet viewer crashes.
I think you can always reproduct the crash
tom.kincaid@east 2000-02-09
The evaluation called for us to reproduce it on the Kestrel Beta. The bug was not filed on the kestrel beta. It was filed on 1.1.8. The bug is not incomplete.
In the meantime I will see if I can get the customer to reproduce the bug on the Kestrel Beta in order to help debug the problem.
Comments from licensee Oracle::
---
Specifically, this occurs only when a component is displayed. An
application that simply creates and shows a frame will cause the
crash.
The problem is that awt_Font.cpp->GetCodePageSubkey calls setlocale,
which returns NULL. The problem isn't that setlocale is failing,
but that the subsequent code then attemps to pass the return value to
strchr, which fails.
The NULL result occurs because there's no ANSI code page for the
Indic locales, which are all Unicode. I recommend reading the
documentation for GetLocaleInfo, GetLocaleInfoW, setlocale and
_wsetlocale on msdn.microsoft.com.
Note that this only occurs using Windows 2000. This occurs in 1.1.7
of the JDK, and though I haven't tested in newer versions, the code
is the same. As long as Windows 2000 is returning a NULL code page,
the crash will occur.
Also, this crash occurs running a simple applet in the Netscape VM,
but does NOT occur using the IE VM.
Bug WorkaroundI have no workaround, other than returning NULL upon failure of
setlocale to return a valid code page. I don't know if this will
work on Indic versions of Windows 2000, but it does work on English
versions that have been set to an Indic locale.
---
- relates to
-
JDK-4371865 java and appletviewer Fail to Run with Windows 2000 Unicode Locales
-
- Closed
-
-
JDK-4459099 J2RE can't run on Windows 2000 Hindi locale
-
- Closed
-