Hi all!
I’m running Openfire on Arch Linux and I recently updated from version 4.0.1 to 4.0.2 and all of a sudden, OpenFire cant connect to the mysql database.
Here is the error log
2016.03.26 11:47:40 org.jivesoftware.util.JiveProperties - java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:514)
at java.util.Properties.setProperty(Properties.java:161)
at org.jivesoftware.database.DefaultConnectionProvider.start(DefaultConnectionProvider.java:106)
at org.jivesoftware.database.DbConnectionManager.setConnectionProvider(DbConnectionManager.java:598)
at org.jivesoftware.database.DbConnectionManager.ensureConnectionProvider(DbConnectionManager.java:104)
at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:121)
at org.jivesoftware.util.JiveProperties.loadProperties(JiveProperties.java:357)
at org.jivesoftware.util.JiveProperties.init(JiveProperties.java:88)
at org.jivesoftware.util.JiveProperties.getInstance(JiveProperties.java:66)
at org.jivesoftware.util.JiveGlobals.getProperty(JiveGlobals.java:557)
at org.jivesoftware.util.cache.CacheFactory.<clinit>(CacheFactory.java:94)
at org.jivesoftware.openfire.XMPPServer.initialize(XMPPServer.java:332)
at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:440)
at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:169)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:383)
at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:105)
at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:56)
2016.03.26 11:47:40 org.jivesoftware.util.log.util.CommonsLogFactory - Prototype
java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:926)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1748)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1288)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2506)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2539)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2321)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:187)
at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39)
at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)
at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102)
at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44)
2016.03.26 11:47:43 org.jivesoftware.openfire.XMPPServer - Database could not be accessed
java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 retries. The exception from the last attempt is as follows: java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:156)
at org.jivesoftware.openfire.XMPPServer.verifyDataSource(XMPPServer.java:724)
at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:448)
at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:169)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:383)
at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:105)
at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:56)
The error log indicates that OpenFire is trying to connect with a blank user name and no password. This is not what OpenFire is configured with obviously. I’m assuming the root cause is indicated by the first error message indicating a NullPointerException.
Does anyone have any idea whats wrong here? I tried downgrading to 4.0.1 but the problem persists on that version now as well.
Thanks!