[jitsi-dev] [jitsi/jitsi] Updating Arch Linux package to Jitsi nightly (June 17) leads to many missing class errors (#274)


#1

I am the package maintainer of the Jitsi-nightly package in the Arch Linux repository. Once in a while I update the Arch Linux package to the latest nightly. When I tested the package before publishing it, I ran into many class not found errors.

Is this a packaging issue or does this have to do with the state of the Jitsi nightly?

java.io.IOException: Referenced file does not exist: sc-bundles/jnalib.jar
	at org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:852)
	at org.apache.felix.framework.cache.BundleArchive.reviseInternal(BundleArchive.java:550)
	at org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:226)
	at org.apache.felix.framework.cache.BundleCache.getArchives(BundleCache.java:247)
	at org.apache.felix.framework.Felix.init(Felix.java:757)
	at org.apache.felix.framework.Felix.init(Felix.java:626)
	at org.apache.felix.main.Main.main(Main.java:289)
	at net.java.sip.communicator.launcher.SIPCommunicator.main(SIPCommunicator.java:219)
java.io.IOException: Referenced file does not exist: sc-bundles/jfontchooserlib.jar
	at org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:852)
	at org.apache.felix.framework.cache.BundleArchive.reviseInternal(BundleArchive.java:550)
	at org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:226)
	at org.apache.felix.framework.cache.BundleCache.getArchives(BundleCache.java:247)
	at org.apache.felix.framework.Felix.init(Felix.java:757)
	at org.apache.felix.framework.Felix.init(Felix.java:626)
	at org.apache.felix.main.Main.main(Main.java:289)
	at net.java.sip.communicator.launcher.SIPCommunicator.main(SIPCommunicator.java:219)
java.lang.NoClassDefFoundError: org/xbill/DNS/Resolver
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
	at java.lang.Class.getConstructor0(Class.java:3075)
	at java.lang.Class.newInstance(Class.java:412)
	at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4474)
	at org.apache.felix.framework.Felix.activateBundle(Felix.java:2221)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.xbill.DNS.Resolver
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.apache.felix.framework.ExtensionManager$ExtensionManagerWiring.getClassByDelegation(ExtensionManager.java:1010)
	at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1595)
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1525)
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 10 more
java.lang.NoClassDefFoundError: org/xbill/DNS/TextParseException
	at net.java.sip.communicator.impl.netaddr.NetworkAddressManagerServiceImpl.initRandomPortSocket(NetworkAddressManagerServiceImpl.java:433)
	at net.java.sip.communicator.impl.netaddr.NetworkAddressManagerServiceImpl.start(NetworkAddressManagerServiceImpl.java:107)
	at net.java.sip.communicator.impl.netaddr.NetaddrActivator.start(NetaddrActivator.java:89)
	at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
	at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.xbill.DNS.TextParseException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.apache.felix.framework.ExtensionManager$ExtensionManagerWiring.getClassByDelegation(ExtensionManager.java:1010)
	at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1595)
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1525)
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 9 more
ALSA lib pcm_dmix.c:1029:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.hdmi.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM hdmi
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.hdmi.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM hdmi
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.modem.0:CARD=0'
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline:CARD=0,DEV=0
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.modem.0:CARD=0'
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline:CARD=0,DEV=0
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.modem.0:CARD=0'
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM phoneline
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.modem.0:CARD=0'
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM phoneline
ALSA lib pcm_dmix.c:968:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1029:(snd_pcm_dmix_open) unable to open slave
java.lang.NullPointerException
	at net.java.sip.communicator.plugin.reconnectplugin.ReconnectPluginActivator.start(ReconnectPluginActivator.java:228)
	at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
	at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.lang.Thread.run(Thread.java:745)
2016-06-17 07:41:12.078 SEVERE: [222] impl.protocol.sip.SipStackSharing.<init>().151 Failed to get SIP Factory.
java.lang.NullPointerException: Specified service reference cannot be null.
	at org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:460)
	at net.java.sip.communicator.impl.protocol.sip.SipActivator.getNetworkAddressManagerService(SipActivator.java:171)
	at net.java.sip.communicator.impl.protocol.sip.SipStackSharing.<init>(SipStackSharing.java:146)
	at net.java.sip.communicator.impl.protocol.sip.ProtocolProviderServiceSipImpl.initialize(ProtocolProviderServiceSipImpl.java:521)
	at net.java.sip.communicator.impl.protocol.sip.ProtocolProviderFactorySipImpl.createService(ProtocolProviderFactorySipImpl.java:315)
	at net.java.sip.communicator.service.protocol.ProtocolProviderFactory.loadAccount(ProtocolProviderFactory.java:995)
	at net.java.sip.communicator.service.protocol.AccountManager.doLoadStoredAccounts(AccountManager.java:215)
	at net.java.sip.communicator.service.protocol.AccountManager.loadStoredAccounts(AccountManager.java:463)
	at net.java.sip.communicator.service.protocol.AccountManager.runInLoadStoredAccountsThread(AccountManager.java:579)
	at net.java.sip.communicator.service.protocol.AccountManager.access$100(AccountManager.java:37)
	at net.java.sip.communicator.service.protocol.AccountManager$2.run(AccountManager.java:504)
2016-06-17 07:41:12.078 SEVERE: [222] impl.protocol.sip.ProtocolProviderFactorySipImpl.createService().323 Failed to initialize account
net.java.sip.communicator.service.protocol.OperationFailedException: Failed to get SIP Factory
	at net.java.sip.communicator.impl.protocol.sip.SipStackSharing.<init>(SipStackSharing.java:152)
	at net.java.sip.communicator.impl.protocol.sip.ProtocolProviderServiceSipImpl.initialize(ProtocolProviderServiceSipImpl.java:521)
	at net.java.sip.communicator.impl.protocol.sip.ProtocolProviderFactorySipImpl.createService(ProtocolProviderFactorySipImpl.java:315)
	at net.java.sip.communicator.service.protocol.ProtocolProviderFactory.loadAccount(ProtocolProviderFactory.java:995)
	at net.java.sip.communicator.service.protocol.AccountManager.doLoadStoredAccounts(AccountManager.java:215)
	at net.java.sip.communicator.service.protocol.AccountManager.loadStoredAccounts(AccountManager.java:463)
	at net.java.sip.communicator.service.protocol.AccountManager.runInLoadStoredAccountsThread(AccountManager.java:579)
	at net.java.sip.communicator.service.protocol.AccountManager.access$100(AccountManager.java:37)
	at net.java.sip.communicator.service.protocol.AccountManager$2.run(AccountManager.java:504)
Caused by: java.lang.NullPointerException: Specified service reference cannot be null.
	at org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:460)
	at net.java.sip.communicator.impl.protocol.sip.SipActivator.getNetworkAddressManagerService(SipActivator.java:171)
	at net.java.sip.communicator.impl.protocol.sip.SipStackSharing.<init>(SipStackSharing.java:146)
	... 8 more
2016-06-17 07:41:12.078 SEVERE: [222] service.protocol.AccountManager.doLoadStoredAccounts().223 Failed to load account {OPT_CLIST_USE_SIP_CREDETIALS=false, Encodings.speex/16000=700, OVERRIDE_ENCODINGS=false, speex/8000=352, AMR-WB/16000=0, Encodings.GSM/8000=450, SILK/12000=0, Encodings.SILK/24000=714, VOICEMAIL_ENABLED=true, ACCOUNT_UID=SIP:309@aram.pbxcomplete.nl, ENCRYPTION_PROTOCOL.DTLS-SRTP=2, PROTOCOL_NAME=SIP, Encodings.ulpfec/90000=0, Encodings.red/90000=0, DTMF_METHOD=AUTO_DTMF, Encodings.SILK/8000=0, H263-1998/90000=0, SAVP_OPTION=0, Encodings.SILK/16000=713, Encodings.H263-1998/90000=0, ENCRYPTION_PROTOCOL_STATUS.DTLS-SRTP=false, H264/90000=1100, Encodings.PCMA/8000=600, USER_ID=309@aram.pbxcomplete.nl, XCAP_ENABLE=false, KEEP_ALIVE_INTERVAL=25, ENCRYPTION_PROTOCOL_STATUS.SDES=false, red/90000=0, telephone-event/8000=1, ENCRYPTION_PROTOCOL.ZRTP=0, SILK/8000=0, XIVO_ENABLE=false, PCMA/8000=600, PROXY_AUTO_CONFIG=true, opus/48000=750, Encodings.VP8/90000=0, DISPLAY_NAME=Arthur Borsboom, Encodings.speex/8000=352, Encodings.SILK/12000=0, Encodings.AMR-WB/16000=0, IS_PRESENCE_ENABLED=true, DEFAULT_SIPZRTP_ATTRIBUTE=true, Encodings.PCMU/8000=650, Encodings.iLBC/8000=500, SILK/24000=714, VP8/90000=0, DEFAULT_ENCRYPTION=true, SERVER_ADDRESS=aram.pbxcomplete.nl, Encodings.H264/90000=1100, ENCRYPTION_PROTOCOL_STATUS.ZRTP=true, Encodings.G722/8000=705, ulpfec/90000=0, KEEP_ALIVE_METHOD=OPTIONS, SILK/16000=713, Encodings.telephone-event/8000=1, PCMU/8000=650, speex/32000=701, iLBC/8000=500, Encodings.speex/32000=701, ENCRYPTED_PASSWORD=N1jH8A/JsZrnwH0AAp9DLA==, G722/8000=705, GSM/8000=450, FORCE_P2P_MODE=false, Encodings.opus/48000=750, ENCRYPTION_PROTOCOL.SDES=1, SDES_CIPHER_SUITES=AES_CM_128_HMAC_SHA1_80,AES_CM_128_HMAC_SHA1_32, speex/16000=700}
java.lang.IllegalArgumentException: Failed to initialize accountFailed to get SIP Factory
	at net.java.sip.communicator.impl.protocol.sip.ProtocolProviderFactorySipImpl.createService(ProtocolProviderFactorySipImpl.java:325)
	at net.java.sip.communicator.service.protocol.ProtocolProviderFactory.loadAccount(ProtocolProviderFactory.java:995)
	at net.java.sip.communicator.service.protocol.AccountManager.doLoadStoredAccounts(AccountManager.java:215)
	at net.java.sip.communicator.service.protocol.AccountManager.loadStoredAccounts(AccountManager.java:463)
	at net.java.sip.communicator.service.protocol.AccountManager.runInLoadStoredAccountsThread(AccountManager.java:579)
	at net.java.sip.communicator.service.protocol.AccountManager.access$100(AccountManager.java:37)
	at net.java.sip.communicator.service.protocol.AccountManager$2.run(AccountManager.java:504)
Xlib:  extension "RANDR" missing on display ":0".
java.lang.NullPointerException
	at net.java.sip.communicator.plugin.pluginmanager.PluginManagerActivator.start(PluginManagerActivator.java:99)
	at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
	at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.lang.Thread.run(Thread.java:745)
2016-06-17 07:41:12.603 SEVERE: [274] impl.osdependent.jdic.SystrayServiceJdicImpl.checkInitialized().453 Systray not init
2016-06-17 07:41:12.659 SEVERE: [433] util.account.LoginManager.run().442 Failed to register protocol provider. 
java.lang.NoClassDefFoundError: org/xbill/DNS/TextParseException
	at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectUsingSRVRecords(ProtocolProviderServiceJabberImpl.java:834)
	at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.initializeConnectAndLogin(ProtocolProviderServiceJabberImpl.java:680)
	at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.register(ProtocolProviderServiceJabberImpl.java:477)
	at net.java.sip.communicator.util.account.LoginManager$RegisterProvider.run(LoginManager.java:434)
Caused by: java.lang.ClassNotFoundException: org.xbill.DNS.TextParseException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.apache.felix.framework.ExtensionManager$ExtensionManagerWiring.getClassByDelegation(ExtensionManager.java:1010)
	at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1595)
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1525)
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 4 more
···

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jitsi/jitsi/issues/274


#2

dnsjava used to be bundled into util.jar and got onto the classpath as util.jar is there. This is no longer the case and dnsjava.jar needs to be added to the classpath. See commits 1afb3d652955b469722a0c9ab960f8cd458e0321 and 1a9fec52218d8c1b1f1feb1706d6c06efa8a56a0 for the changes in the bundled launchscripts.

If Arch ships dnsjava 2.1.7 as a package you can depend on that, otherwise it needs to be the bundled one from Jitsi.

···

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jitsi/jitsi/issues/274#issuecomment-226709231


#3

Just saw two other:
- jfontchooserlib is gone. It shouldn't be referenced from felix.client.run.properties anymore (4d6e58c20066632c2593f52c40a6f1b5279c6115). If you don't see this in your file but still getting the error, try deleting ~/.jitsi/sip-communicator.bin
- jnalib has been replaced by directly using jna.jar and jna-platform.jar (8bee4d318ea5a5bf29a83e02a5ec8d68e74434df). Same issue as for jfontchooserlib. If Arch has jna and jnalib as a package, you can reference them.

···

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jitsi/jitsi/issues/274#issuecomment-226711818


#4

Adding the dnsjava.jar to the classpath in the startup script solved most of the errors. Good one. Thanks.

The only real error remaining is

java.lang.NullPointerException
	at net.java.sip.communicator.plugin.pluginmanager.PluginManagerActivator.start(PluginManagerActivator.java:99)
	at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
	at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.lang.Thread.run(Thread.java:745)

Any ideas in this one?

···

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jitsi/jitsi/issues/274#issuecomment-226712309


#5

I've seen this one when using IntelliJ too, I'll take a look at it over the weekend. This only prevents loading the pluginmanger plugin though in the advanced options though.

···

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jitsi/jitsi/issues/274#issuecomment-226712741


#6

Okay... that is no show stopper... I can push the updated package back into Arch. Jitsi seems to work as before.

But since we are now on it anyway, would you mind to do a check the launch script below regarding the libraries, etc? Does it look good to you?

#!/bin/bash

CLIENTARGS=""
uname -m | grep i686 && CLIENTARGS="-client -Xmx256m"

if [[ -n ${JAVA_HOME} ]]; then
  javabin=${JAVA_HOME}/bin/java
else
  javabin=java
fi

SCDIR=/usr/lib/jitsi
LIBPATH=$SCDIR/lib
CLASSPATH=$LIBPATH/jdic_stub.jar:$LIBPATH/jdic-all.jar:$LIBPATH/felix.jar:$LIBPATH/bcprovider.jar:$SCDIR/sc-bundles/sc-launcher.jar:$SCDIR/sc-bundles/util.jar$
FELIX_CONFIG=$LIBPATH/felix.client.run.properties
LOG_CONFIG=$LIBPATH/logging.properties
COMMAND="$javabin $CLIENTARGS -classpath $CLASSPATH -Djna.library.path=$LIBPATH/native -Dfelix.config.properties=file:$FELIX_CONFIG -Djava.util.logging.config$

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBPATH/native

cd $SCDIR

exec $COMMAND $*
···

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jitsi/jitsi/issues/274#issuecomment-226713048