JDK-6354368 : Japanese IME crashes JVM on J2SE 1.5 for WindowsXP 64 bit edition
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 1.4.2_11,5.0
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2005-11-22
  • Updated: 2012-10-08
  • Resolved: 2006-01-10
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
5.0u7 b01Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Description
FULL PRODUCT VERSION :
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_05-b05, mixed mode)


ADDITIONAL OS VERSION INFORMATION :
Windows [Version 5.2.3790]

EXTRA RELEVANT SYSTEM CONFIGURATION :
WindowsXP 64 bit edition Japanese
Micorsoft IME Standard 2002 ver 8.1 - Japanese

A DESCRIPTION OF THE PROBLEM :
At satrt time, the following warning message is shown :

WARNING: Default charset MS932 not supported, using ISO-8859-1 instead


Invoke IME and input roman characters and try to convert them into Kanji
JVM crashes.


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the following program JTextFieldTest.class on Windows XP 64 bit edition Japanese.

Invoke IME
Input roman characters ( for example : AI )

Press the space bar 3 or 4 times to choose convert candidate.

JVM crash.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
with Japanese IME, we convert Roman characters into Kanji normally
ACTUAL -
D:\jV-test>start /BELOWNORMAL /b /wait d:\jre1.5.0\bin\java.exe -showversion JTextFieldTest
WARNING: Default charset MS932 not supported, using ISO-8859-1 instead
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_05-b05, mixed mode)

#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000078d0f14f, pid=956, ti
d=2156
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_05-b05 mixed mode)
# Problematic frame:
# C  [kernel32.dll+0x2f14f]
#
# An error report file with more information is saved as hs_err_pid956.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp


ERROR MESSAGES/STACK TRACES THAT OCCUR :
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000078d0f14f, pid=956, tid=2156
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_05-b05 mixed mode)
# Problematic frame:
# C  [kernel32.dll+0x2f14f]
#

---------------  T H R E A D  ---------------

Current thread (0x0000000000437690):  JavaThread "AWT-Windows" daemon [_thread_in_native, id=2156]

siginfo: ExceptionCode=0xc0000005, reading address 0x000007ff00000000

Registers:
EAX=0x000007ff0000000f, EBX=0x0000000000000000, ECX=0x000007ff00000000, EDX=0x0000000000000010
ESP=0x00000000043eef40, EBP=0x0000000000000001, ESI=0x0000000000000001, EDI=0x000007ff00000000
EIP=0x0000000078d0f14f, EFLAGS=0x0000000000010206

  Top of Stack: (sp=0x00000000043eef40)
0x00000000043eef40:   00000000043ef000 0000000000000001
0x00000000043eef50:   00000000fffffff8 000007ff76fa2edd
0x00000000043eef60:   0000000000000000 000007ff0000000f
0x00000000043eef70:   00000000004337f8 0000000000000001
0x00000000043eef80:   000213a000000190 0000000000010003
0x00000000043eef90:   0000000003c40890 0000000000000000
0x00000000043eefa0:   0000000000000003 000007ff76fa5ea7
0x00000000043eefb0:   0000000000000000 0000000000010003
0x00000000043eefc0:   0000000002f6a950 0000000000000001
0x00000000043eefd0:   000007ff76fc1180 0000000000000000
0x00000000043eefe0:   0000000000000000 00000000770107fd
0x00000000043eeff0:   00000000043ef150 0000000000000001
0x00000000043ef000:   0000000000000000 0000000000010003
0x00000000043ef010:   00000000fffffff8 00000000044d667b
0x00000000043ef020:   0000000000000000 00000000047b8170
0x00000000043ef030:   00000000047bcc98 0000000000000000

Instructions: (pc=0x0000000078d0f14f)
0x0000000078d0f13f:   11 ff 48 89 44 24 28 48 3b c1 0f 82 83 b2 04 00
0x0000000078d0f14f:   0f b6 01 41 8d 41 ff f7 d0 48 63 c8 48 8b d1 49


Stack: [0x00000000042f0000,0x00000000043f0000),  sp=0x00000000043eef40,  free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [kernel32.dll+0x2f14f]

[error occurred during error reporting, step 120, id 0xc0000005]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  sun.awt.windows.WToolkit.eventLoop()V+0
j  sun.awt.windows.WToolkit.run()V+69
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x0000000000435bb0 JavaThread "DestroyJavaVM" [_thread_blocked, id=1556]
  0x0000000000437bf0 JavaThread "TimerQueue" daemon [_thread_blocked, id=208]
  0x0000000000437940 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=436]
=>0x0000000000437690 JavaThread "AWT-Windows" daemon [_thread_in_native, id=2156]
  0x00000000004373e0 JavaThread "AWT-Shutdown" [_thread_blocked, id=216]
  0x0000000000437130 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=3012]
  0x0000000000436e80 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=388]
  0x0000000000436bd0 JavaThread "CompilerThread1" daemon [_thread_blocked, id=2644]
  0x0000000000436920 JavaThread "CompilerThread0" daemon [_thread_blocked, id=444]
  0x0000000000436670 JavaThread "AdapterThread" daemon [_thread_blocked, id=2800]
  0x00000000004363c0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2416]
  0x0000000000436110 JavaThread "Finalizer" daemon [_thread_blocked, id=2204]
  0x0000000000435e60 JavaThread "Reference Handler" daemon [_thread_blocked, id=1816]

Other Threads:
  0x00000000003699d0 VMThread [id=1708]
  0x0000000000369d00 WatcherThread [id=2436]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 def new generation   total 2368K, used 615K [0x0000000050010000, 0x00000000502a0000, 0x0000000051c10000)
  eden space 2112K,  17% used [0x0000000050010000, 0x0000000050069e78, 0x0000000050220000)
  from space 256K, 100% used [0x0000000050260000, 0x00000000502a0000, 0x00000000502a0000)
  to   space 256K,   0% used [0x0000000050220000, 0x0000000050220000, 0x0000000050260000)
 tenured generation   total 1792K, used 631K [0x0000000051c10000, 0x0000000051dd0000, 0x0000000055410000)
   the space 1792K,  35% used [0x0000000051c10000, 0x0000000051cadd00, 0x0000000051cade00, 0x0000000051dd0000)
 compacting perm gen  total 21248K, used 9117K [0x0000000055410000, 0x00000000568d0000, 0x000000005a610000)
   the space 21248K,  42% used [0x0000000055410000, 0x0000000055cf7570, 0x0000000055cf7600, 0x00000000568d0000)
No shared spaces configured.

Dynamic libraries:
0x0000000000400000 - 0x0000000000410000 	d:\jre1.5.0\bin\java.exe
0x0000000078ea0000 - 0x0000000078ff3000 	C:\WINDOWS\system32\ntdll.dll
0x0000000078ce0000 - 0x0000000078e91000 	C:\WINDOWS\system32\kernel32.dll
0x000007ff7fed0000 - 0x000007ff7ffe4000 	C:\WINDOWS\system32\ADVAPI32.dll
0x000007ff7fd20000 - 0x000007ff7fec9000 	C:\WINDOWS\system32\RPCRT4.dll
0x000007ff7fbf0000 - 0x000007ff7fc76000 	C:\WINDOWS\system32\MSVCRT.dll
0x0000000008000000 - 0x00000000084dc000 	d:\jre1.5.0\bin\server\jvm.dll
0x0000000078bd0000 - 0x0000000078cdb000 	C:\WINDOWS\system32\USER32.dll
0x000007ff7fc80000 - 0x000007ff7fd19000 	C:\WINDOWS\system32\GDI32.dll
0x000007ff7dfa0000 - 0x000007ff7dfee000 	C:\WINDOWS\system32\WINMM.dll
0x000007ff7d1f0000 - 0x000007ff7d229000 	C:\WINDOWS\system32\IMM32.DLL
0x000007ff67b60000 - 0x000007ff67b6d000 	C:\WINDOWS\system32\LPK.DLL
0x000007ff78be0000 - 0x000007ff78c6a000 	C:\WINDOWS\system32\USP10.dll
0x0000000010000000 - 0x0000000010009000 	d:\jre1.5.0\bin\hpi.dll
0x000007ff7e0e0000 - 0x000007ff7e0f0000 	C:\WINDOWS\system32\PSAPI.DLL
0x00000000003e0000 - 0x00000000003f0000 	d:\jre1.5.0\bin\verify.dll
0x0000000001d30000 - 0x0000000001d5a000 	d:\jre1.5.0\bin\java.dll
0x0000000001d60000 - 0x0000000001d74000 	d:\jre1.5.0\bin\zip.dll
0x0000000003930000 - 0x0000000003b26000 	D:\jre1.5.0\bin\awt.dll
0x000007ff78c70000 - 0x000007ff78cb1000 	C:\WINDOWS\system32\WINSPOOL.DRV
0x000007ff7ecf0000 - 0x000007ff7ef62000 	C:\WINDOWS\system32\ole32.dll
0x000007ff76fa0000 - 0x000007ff7701f000 	C:\WINDOWS\system32\uxtheme.dll
0x000007ff790b0000 - 0x000007ff79122000 	C:\WINDOWS\system32\ddraw.dll
0x000007ff79300000 - 0x000007ff79308000 	C:\WINDOWS\system32\DCIMAN32.dll
0x0000000004090000 - 0x00000000040ec000 	D:\jre1.5.0\bin\fontmanager.dll
0x000007ff7a150000 - 0x000007ff7a1ef000 	C:\WINDOWS\system32\MSCTF.dll
0x000007ff7cb50000 - 0x000007ff7cb91000 	C:\WINDOWS\system32\apphelp.dll
0x0000000004440000 - 0x000000000449c000 	C:\WINDOWS\system32\msctfime.ime
0x00000000044a0000 - 0x0000000004534000 	C:\WINDOWS\system32\imjp81.ime
0x000007ff7f1a0000 - 0x000007ff7fb8f000 	C:\WINDOWS\system32\SHELL32.dll
0x000007ff7ef70000 - 0x000007ff7f00b000 	C:\WINDOWS\system32\SHLWAPI.dll
0x0000000004540000 - 0x000000000462e000 	C:\WINDOWS\WinSxS\amd64_Microsoft.Windows.Common-Controls_6595b64144ccf1df_5.82.3790.1830_x-ww_4D792D2A\COMCTL32.dll
0x000007ff69aa0000 - 0x000007ff69bbf000 	C:\WINDOWS\system32\imjp81k.dll
0x000007ff7f010000 - 0x000007ff7f197000 	C:\WINDOWS\WinSxS\amd64_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.1830_x-ww_ACED72AF\comctl32.dll
0x000007ff7c380000 - 0x000007ff7c485000 	C:\WINDOWS\system32\USERENV.dll
0x0000000004f60000 - 0x0000000004f7e000 	C:\WINDOWS\IME\IMJP8_1\Dicts\IMJPCD.DIC
0x0000000004fc0000 - 0x0000000004fda000 	D:\jre1.5.0\bin\net.dll
0x000007ff77090000 - 0x000007ff770c0000 	C:\WINDOWS\system32\WS2_32.dll
0x000007ff77080000 - 0x000007ff7708c000 	C:\WINDOWS\system32\WS2HELP.dll
0x0000000004fe0000 - 0x0000000004fea000 	D:\jre1.5.0\bin\nio.dll
0x000007ff7e9f0000 - 0x000007ff7eb04000 	C:\WINDOWS\system32\oleaut32.dll
0x0000000004ff0000 - 0x000000000501c000 	D:\jre1.5.0\bin\dcpr.dll

VM Arguments:
java_command: JTextFieldTest

Environment Variables:
PATH=d:\jdk1.6.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
USERNAME=stella
OS=Windows_NT
PROCESSOR_IDENTIFIER=AMD64 Family 15 Model 4 Stepping 8, AuthenticAMD



---------------  S Y S T E M  ---------------

OS: Windows Server 2003 family Build 3790 Service Pack 1

CPU:total 1 amd64 3dnow

Memory: 4k page, physical 3145092k(2532720k free), swap 43910444k(43517172k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (1.5.0_05-b05) for windows-amd64, built on Aug 26 2005 14:56:05 by "java_re" with unknown MS VC++:1400



REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
import javax.swing.*;

public class JTextFieldTest extends JFrame {

  public static void main( String[] args ){
    JFrame w = new JTextFieldTest( "JTextFieldTest" );
    w.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    w.setSize( 200, 50 );
    w.setVisible( true );
  }

  public JTextFieldTest( String title ){
    super( title );
    JPanel pane = (JPanel)getContentPane();
    
    JTextField tf1 = new JTextField();

    pane.add( tf1 );
  }
}

---------- END SOURCE ----------

Comments
EVALUATION Temporarily fixed per option (1) in comments. Plan to do (2) in update 8.
21-12-2005

EVALUATION With enable UseMembar in 5.0u07 on Windows platform, this should not happen, please try run with 5.0u07.
14-12-2005

EVALUATION Using WinDBG, I got the stack trace when it crashes. jvm!frame::link(void)+0x15 jvm!os::is_first_C_frame(class frame * fr = 0x00000000`0429da20)+0x40 jvm!VMError::report(class outputStream * st = 0x00000000`0429de70)+0x900 jvm!VMError::report_and_die(void)+0x450 jvm!topLevelExceptionFilter(struct _EXCEPTION_POINTERS * exceptionInfo = 0x00000000`0429e160)+0x686 ntdll!RtlQueryProcessLockInformation+0xe0c ntdll!RtlLookupFunctionEntry+0x4d3 ntdll!KiUserExceptionDispatcher+0x2d kernel32!IsBadReadPtr+0x2f uxtheme!DrawThemeText+0x22d imjp81!MSIMEUICandTransWndProc+0x3b3b imjp81!ImeEnumRegisterWord+0x4f3b imjp81!ImeEnumRegisterWord+0x4b68 imjp81!MSIMEUICandWndProc+0x16d1 imjp81!MSIMEUICandWndProc+0xf9 USER32!GetSystemMetrics+0x24c USER32!DefWindowProcW+0x20f USER32!DefWindowProcW+0x2ed ntdll!KiUserCallbackDispatcher+0x1f USER32!FillRect+0x7a USER32!EndPaint+0x1c awt!Java_sun_awt_windows_WToolkit_eventLoop(struct JNIEnv_ * env = 0x00000000`004422b8, class _jobject * self = 0x00000000`0044f208)+0xc4 The intersting thing is with the latest JDK 6.0 b61, I saw the same first chance exception as well and I got the similar stack as above till "kernel32!IsBadReadPtr+0x2f", however, I don't see JVM crashes after that exception. So I believe in JDK 6.0, the jvm code made changes to the exception filter which avoids that crash. I think we should do the same thing to JDK 1.5.0 update release to avoid this crash. Reassign it to VM team.
28-11-2005

EVALUATION I can reproduce the crash with 1.5.0_05, but not with the latest JDK 6.
23-11-2005