In smack 3.1.0 :
XMPPConnection, line 1222 - 1223. ‘pcb’ is referencing a null pointer, which is then assigned on the next line. These two lines should be swapped.
Before:
ks.load(new FileInputStream(configuration.getKeystorePath()), pcb.getPassword());
pcb = new PasswordCallback("Keystore Password: ",false);
After:
pcb = new PasswordCallback("Keystore Password: ",false);
ks.load(new FileInputStream(configuration.getKeystorePath()), pcb.getPassword());