aTalk is upgrading to use smack-4.5.0-beta9; but crashes on startup:
The logcat shows:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.security.CodeSource java.security.ProtectionDomain.getCodeSource()' on a null object reference
at org.jivesoftware.smackx.formtypes.FormFieldRegistry.loadFormFieldRegistryEntries(FormFieldRegistry.java:109)
at org.jivesoftware.smackx.formtypes.FormFieldRegistry.<clinit>(FormFieldRegistry.java:56)
at org.jivesoftware.smackx.softwareinfo.form.SoftwareInfoForm.<clinit>(SoftwareInfoForm.java:52)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:536)
at org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:210)
at org.jivesoftware.smack.SmackInitialization.parseClassesToLoad(SmackInitialization.java:190)
at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:164)
at org.jivesoftware.smack.initializer.UrlInitializer.initialize(UrlInitializer.java:69)
at org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:229)
at org.jivesoftware.smack.SmackInitialization.parseClassesToLoad(SmackInitialization.java:190)
at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:167)
at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:154)
at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:103)
at org.jivesoftware.smack.Smack.getVersion(Smack.java:51)
at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.loadJabberServiceClasses(ProtocolProviderServiceJabberImpl.java:3144)
at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.<clinit>(ProtocolProviderServiceJabberImpl.java:643)
at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderFactoryJabberImpl.createService(ProtocolProviderFactoryJabberImpl.java:117)
at net.java.sip.communicator.service.protocol.ProtocolProviderFactory.loadAccount(ProtocolProviderFactory.java:945)
at net.java.sip.communicator.service.protocol.AccountManager.doLoadStoredAccounts(AccountManager.java:145)
at net.java.sip.communicator.service.protocol.AccountManager.loadStoredAccounts(AccountManager.java:297)
at net.java.sip.communicator.service.protocol.AccountManager.runInLoadStoredAccountsThread(AccountManager.java:391)
at net.java.sip.communicator.service.protocol.AccountManager.-$$Nest$mrunInLoadStoredAccountsThread(Unknown Source:0)
at net.java.sip.communicator.service.protocol.AccountManager$1.run(AccountManager.java:328)
On checking it was found that the newly added static call is the root cause.
loadFormFieldRegistryEntries();
->
XDataManager.class.getProtectionDomain() always return null.
android-sdk always return null i.e.
public java.security.ProtectionDomain getProtectionDomain() {
// Android-changed: Removed SecurityManager check.
return null;
}