今天用戶提交了一個測試問題,在使用我們的業務模塊 ’ 辦理托運 ’ 的時候,執行保存操作的時界面突然退出,而且每次執行同樣的操作時都這樣,我們的項目是RCP架構,運行在JVM1.6 10.0 ,但是其他用戶使用相同配置的電腦卻沒有這個問題,公司電腦都是統一配置,看來不是硬件問題,所以懷疑是他電腦的環境問題,比如安裝了一些其他軟件會和SWT有沖突,畢竟SWT也是通過JNI調用操作系統的資源,在檢查客戶端環境的時候在安裝目錄下面新生成了一個類似 hs_err_pid1824.log 的一個日志文件,出現這個日志說明JVM工作不正常了,通常都記錄了操作JVM崩潰的原因和崩潰之前的內存快照,大致內容如下:
#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6951dbd7, pid=1824, tid=3756
#
# Java VM: Java HotSpot(TM) Client VM (10.0-b19 mixed mode windows-x86)
# Problematic frame:
# C [UNISPIM6.IME+0x1dbd7]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
這里面最有價值的一句話是
# Problematic frame:
# C [ UNISPIM6.IME +0x1dbd7]
從他的電腦上進行文件搜索 UNISPIM6.IME 這個文件, 發現 這個文件是紫光輸入法的模塊,使用的版本是6.1 ,將紫光輸入法卸載掉,再執行同樣的操作,錯誤不再發生!看來真的是紫光輸入有問題.
后來在我的電腦上模擬客戶的安裝環境,安裝了個紫光輸入法6.1,執行他們同樣的操作時也會異常退出,而替換成5.x版本的話就不會產生問題,看來這個版本的紫光輸入法和我們軟件有沖突,看來要將紫光輸入法列入我們公司的黑名單了!希望清華同方公司能夠重視這個問題,不然要損失大概1萬名潛在的用戶了。