我们有一个以编程方式创建的应用KeyStore
程序。我们KeyStore
以以下方式创建(示例代码,为简洁起见抑制异常处理),
KeyStore ks = KeyStore.getInstance( "JKS" );
ks.load( null, null );
... // Add crypto material here
keystore.store( new FileOutputStream( "keystore.ks" ), "password" );
方法store(OutputStream stream, char[] password)
抛出以下异常,
java.lang.NullPointerException
at sun.security.provider.JavaKeyStore.engineStore(Unknown Source)
at sun.security.provider.JavaKeyStore$JKS.engineStore(Unknown Source)
at java.security.KeyStore.store(Unknown Source)
该keystore.ks
文件是在文件系统中创建的。但是当我们尝试检查它时,keytool
我们得到,
keytool -list -keystore nms.keystore
keytool error: java.io.EOFException
有趣的是,相同的代码在我们测试过的所有其他机器上都能完美运行。在实际代码中,传递给store
方法的参数都不是null
,我们已经对其进行了三重检查。
关于行为不端的机器的一些细节,
- CentOS 5.8 32 位
- Sun 的 JRE 1.6.0_43