JDK-4283280 : Java Application on VM is terminated by OS with the key "shift+alt"
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt:i18n
  • Affected Version: 1.3.0
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_98
  • CPU: x86
  • Submitted: 1999-10-21
  • Updated: 2000-03-01
  • Resolved: 1999-11-09
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
1.3.0 kestrelFixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Description
===========================================================================
This was occuerd when Justsystem, one of Licensee in Japan validated
the fixes for bugid 4253607.

1. Configration

  This issue occurs on both jdk1.3-build J and K.
    
  1.1  OS and IME    
    (1) Win95(osr2), MS-IME97, and Atok12
    (2) Win98, MS-IME98, and Atok12
    (3) Win98, MS-IME98-SR1, and Atok12
    
    Note)
      - Not happened on WinNT4.0.
      - Atok12 is the Japanese IME developed by Justsystem.
  
2. Reproduction

  (1) Go to the demo\jfc\Swingset directory.
  (2) Type "javaw -jar Swingset.jar"(Run Swingset demo)
      -> SwingSet will window show up      
  (3) Open some modal dialogues and close it
      (I opended the JfileChooser included in SwingSet)
  (3) Click the MS-IME Palette with the left button of mouse.
      -> SwingSet window will be released from "focus"     
  (4) Shift + alt 
      -> Then the SwingSet window will disappear.
     
3. Others

  (1) Under Win98, I found similar issues filed in the bugtraq.
      Please "See Also".
  (2) On Win98,IME98 and Atok12, I tried the suggestion from the FYI (2) 
      in  "Evaluation" of bugid 4177508 and the issue did not occur.
    
      Suggestion : Click the IME palette with right button of mouse an         
                   and select the item "Include the palette in Task Bar


tbaba@japan 1999-10-21

============================================================================

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: kestrel FIXED IN: kestrel INTEGRATED IN: kestrel VERIFIED IN: kestrel-rc1
14-06-2004

EVALUATION In awt_Dialog.cpp, it implements dialog modality by disabling all toplevel windows in AWT thread, and enables them when the modal dialog disappears. So, UI windows of MS-IME98 get enabled after closing the modal dialog, though the original state of those IME windows are disabled. After that, those IME Windows can obtain the input focus if the user clicks them, which is not supposed to be. In this situation, if the user tries to change the locale by hitting Alt+Shift key, ::DispatchMessage(hwnd==IMEWindow, message==WM_INPUTLANGCHANGEREQUEST) causes Access Violation on Windows 98. I suspect this is a bug in Windows98 because Windows NT has no problem with this call. To fix this problem, disable/enable top level window code need to be changed to handle IME Window correctly. naoto.satoh@eng 1999-10-22 Added a fix for the above problem, but there still is the problem if you keep pressing Alt+Shift key for 10 or 15 times. In this case, access violation occurs at ATOK module called ATOK12W.IME. Here is the code: 5F3B27E0 push esi 5F3B27E1 push edi 5F3B27E2 mov edi,ecx 5F3B27E4 call 5F384E40 5F3B27E9 mov esi,dword ptr [esp+0Ch] 5F3B27ED mov edx,dword ptr [esp+10h] 5F3B27F1 cmp si,359h 5F3B27F6 jne 5F3B2803 5F3B27F8 test dl,dl 5F3B27FA jne 5F3B2803 5F3B27FC or dword ptr [edi+4],100000h 5F3B2803 cmp si,308h 5F3B2808 jne 5F3B2820 5F3B280A mov ecx,dword ptr [eax+8] 5F3B280D test ecx,ecx 5F3B280F jbe 5F3B2820 5F3B2811 lea ecx,[ecx+ecx*2] 5F3B2814 cmp dword ptr [eax+ecx*4+28h],1 5F3B2819 jne 5F3B2820 5F3B281B mov esi,3A8h 5F3B2820 cmp si,31Ch 5F3B2825 jne 5F3B283D 5F3B2827 mov ecx,dword ptr [eax+8] 5F3B282A test ecx,ecx 5F3B282C jbe 5F3B283D 5F3B282E lea ecx,[ecx+ecx*2] 5F3B2831 cmp dword ptr [eax+ecx*4+28h],1 5F3B2836 jne 5F3B283D 5F3B2838 mov esi,3A8h 5F3B283D mov ecx,dword ptr [eax+8] At 0x5F3B283D, it refers to 0x00000008 because eax == 0, then access violation occurs. This eax comes from the call at 0x5F3B27E4 which usually return some non-zero handle. The offset of this function in this module is 0x000327E0, as this module starts from address 0x5F380000. The follwoing is the information of this module. C:\windows\system\atok12w.ime, size: 1293824, date: 10/28/1998 naoto.satoh@eng 1999-10-22 Testing with the tentative fix without ATOK IME works fine. (e.g. MS-IME98, English layout, German layout, etc.) naoto.satoh@eng 1999-11-02 Engineers in Justsystem are now investigating the access violation in ATOK module from their side. Apparently there are two separate problems exist in this scenario. One is the problem in AWT Dialog code, and the other is the one which causes the access violation in ATOK module. So I am closing this bug report for the AWT Dialog problem. If Justsystem find the cause of its access violation as JDK side problem, then another bug report should be filed. naoto.satoh@eng 1999-11-03
03-11-1999