powered by Jive Software

Problems with Spark with Oracle Beehive as backend

Hi folks,

We are looking at trying to integrate the Spark client with an instance of the Oracle Beehive IM messaging, and running into some problems. If you have run into problems with Spark+Beehive and/or might have some insight how to troubleshoot these issues; advice is welcome.

Versions Tested

  • Builds from 2.5.8, but also from the spark trunk/HEAD, and seeing the same issues. We have built with Java 1.0.0_18
  • Also tried testing with pre-built 2.5.8 and 2.6.0 beta2 binaries.

We have also tested some other clients (pidgin, pandion) and do not run into these issues.

**Problems (some…!)

  • Presence: we notice issues where initial presence of existing users is not found: User A logs in. User B logs in but does not see User A as logged in. If user A switches his/her on-line status, user B will see the status update.

  • Creating Conferences/Multi-User chats. There seem to be lots of issues with this. Some include:

  1. One of the main issues I am seeing is that conferences do not get created (e.g. through the Actions --> Start a conference, or the “Invite to conference” from direct chat, for example) as an exception is hit, like:

Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: Field not found for the specified variable name
at org.jivesoftware.smackx.Form.setAnswer(Form.java:129)
at org.jivesoftware.spark.ui.conferences.ConferenceUtils.createPrivateConference(C onferenceUtils.java:382)

The fields that appear to be causing the problems are muc#roomconfig_roomname and muc#roomconfig_roomowners. In fact, Beehive returns a very limited set of those “muc#” fields (We’ve tested with ejabberd and openfire servers, dumped the form variables returned by the server, and there are much more than what we are returned with Beehive).

A question: Should it be okay if we do not set these variables (i.e. can I comment out the problem-causing muc# settings)? That’s the only way I can get the conference rooms to appear in Spark.

  1. Changing room configuration (e.g. make room public searchable): These settings get updated, randomly. However, from the debug console, we do see packets are sent and received.

I do see an IQ Sent from the server to the conference room, there are multiple instances of the same field value, for example, in the same packet, we will see an entry like this:


then another entry like this:


Looking at the sent packets, we are submitting the latter (with the labels attached). The server is sending back two sets of the field vars, one with no label, one with a label.

A question: Is it customary/normal to have duplicate field vars set?

  1. Trying to change the room subject will occasionally work, but will also freeze/kill the client.

If anybody has ideas about what the issues above may be (or how to better debug or resolve them!!) it is appreciated.