今天用户提交了一个测试问题,在使用我们的业务模块 ’ 办理托运 ’ 的时候,执行保存操作的时界面突然退出,而且每次执行同样的操作时都这样,我们的项目是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万名潜在的用户了。