我们有一个以编程方式创建的应用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