Where can I download V3.4.5 for linux?

I was developing a custom user provider. It was working fine on version 3.4.5 for windows. Now, I need to intall it on server. The server is version 3.5.0 for linux.

I have a NPE when I try to create a user. This is line 65 on SmokeUserProvider (my custom user provider):

new User(username, name, email, now, now)

and this is the stack trace:

java.lang.NullPointerException

at org.jivesoftware.openfire.user.UserManager.getUserProvider(UserManager.java:51)

at org.jivesoftware.openfire.user.User.<init>(User.java:141)

at com.wissenla.smoke.openfire.plugin.SmokeUserProvider.treeWalk(SmokeUserProvider .java:65)

at com.wissenla.smoke.openfire.plugin.SmokeUserProvider.treeWalk(SmokeUserProvider .java:68)

at com.wissenla.smoke.openfire.plugin.SmokeUserProvider.<init>(SmokeUserProv ider.java:50)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at java.lang.Class.newInstance0(Unknown Source)

at java.lang.Class.newInstance(Unknown Source)

at org.jivesoftware.openfire.user.UserManager.initProvider(UserManager.java:417)

at org.jivesoftware.openfire.user.UserManager.<init>(UserManager.java:75)

at org.jivesoftware.openfire.user.UserManager.<init>(UserManager.java:35)

at org.jivesoftware.openfire.user.UserManager$UserManagerContainer.<clinit>( UserManager.java:39)

at org.jivesoftware.openfire.user.UserManager.getInstance(UserManager.java:60)

at org.jivesoftware.openfire.XMPPServer.getUserManager(XMPPServer.java:1204)

at org.jivesoftware.openfire.spi.PresenceManagerImpl.initialize(PresenceManagerImp l.java:477)

at org.jivesoftware.openfire.XMPPServer.initModules(XMPPServer.java:574)

at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:463)

at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:160)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openf ire_3_4_5.tar.gz

java.lang.NullPointerException
at org.jivesoftware.openfire.user.UserManager.getUserProvider(UserManager.java:51)
at org.jivesoftware.openfire.user.User.<init>(User.java:141)
...
at org.jivesoftware.openfire.user.UserManager.initProvider(UserManager.java:417)
at org.jivesoftware.openfire.user.UserManager.<init>(UserManager.java:75)

It seems that constructor of class User does call method getUserProvider(). Because you calling this constructor while initializing your provider you get an NullPointerException.

See class UserManager, line 417-418:

Class c = ClassUtils.forName(className);
provider = (UserProvider) c.newInstance();

Your constructor is called during the call of newInstance(), not till then the reference is assigned to provider, so method getUserProvider can read it.

Thanks for the speed of your response mtstravel! It was very nice to recive help in 20 minutes when in a rush at the client. Version 3.4.5 sovle my problem untill I change my custom user provider to something more correct.

Thanks a lot Coolcat. Yes, now you say that, I see it.

I’m

creating users in the constructor of my custom user provider because

it’s a small univers of users and I’m not expecting many changes on the

list. This works fine on version 3.4.5 because aparently does not

produce a circular constructor reference. I made the downgrade to 3.4.5

yesterday at my client and every thing goes fine. But I think that a

better choice (actually the right choice) is to create users in a lazy

way at the loadUser method off my custom user provider (for this and other reasons) and cut the circular constructor reference that you pointed.