JavaのSmackでKeystoreのIOException
こんなエラーが出る。
java.io.IOException: Keystore was tampered with, or password was incorrect at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:771) at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:38) at java.security.KeyStore.load(KeyStore.java:1185) at org.jivesoftware.smack.ServerTrustManager.<init>(ServerTrustManager.java:63) at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:1246) at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:313) at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44) at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76) Caused by: java.security.UnrecoverableKeyException: Password verification failed at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:769) ... 7 more
runというメソッドの中で呼ばれている例外なのでおそらく別スレッドでパケットを読んでいるときのエラーだと思われる。実際、本スレッドの処理は影響なく実行されていた。
sudo keytool -storepasswd -new changeme -keystore /Library/Java/Home/lib/security/cacerts -storepass changeit
を実行したら解決。