Fastpath Java Errors

I just noticed Fastpath was down on my server. I found it had stopped working around the same time I installed the Red5 plugin last week (possibly because it also required moving to Java 1.6), although that may not be the cause here. I did rebuild Openfire after the new Java. Everything else appears to be working correctly. I can’t decipher all this, but when you try and click on a workgroup in the control panel or try and connect via webchat, there are Java errors. Fastpath seemed to run perfectly before this, but again, no idea why or when or what happened. I am on FreeBSD 6.4 and using Java 1.6 w/ Openfire 3.6.2. Any thoughts on correcting this would be most appreciated. Thank you.

Errors are attached.

Also:

I have restarted Openfire

Reloaded Fastpath and Fastpath Webchat

Created a new workgroup (created successfully, but immediately gave same error and can’t access queue)

Seems I can view members, create & delete. Just can’t edit the queue in the Fastpath control panel.

Also, the offline email functions are working in webchat, but online gives the java error as above.

Very strange.

I completely removed Openfire. Deleted all directories, shutdown the running process. I reinstalled from scratch. Once up, I readded Fastpath and tried it (without Red5). Same results. It appears that the Fastpath queue doesn’t run with Java 1.6. Everything was identical to errors above on a clean fresh install with Java 1.6. The entire setup worked flawlessly on Java 1.5. I’m disappointed now because Red5 requires 1.6 and I really wanted to use the Red5 Asterisk & video features. I deleted everything again and reinstalled with Java 1.5 and it again worked (without Red5). Would really appreciate some expert advice here. Is there something I’m missing here or a change that can be made to run Fastpath on Java 1.6 or is Fastpath just not yet Java 1.6 compatible? Thanks.

Hi I am getting the same errors, now that I ported to FBSD 7.x with OPF 3.6.3, and FastPath. Did you find a solution for this?

Thanks,

BEA

Researching the cause a little further lead me to believe there is a problem loading from the database. In the backtrace1, the String form, that should be returned by props.getProperty(context) (where the value of context = “jive.dataform.wg”) has been returned null2. This context value is stored in table fpWorkgroupProp and has an xml*3 value as listed below. From these two findings, this value appears like it did not load from the database, then form was null triggering the Java errors.

Refs:

*1

at org.jivesoftware.openfire.fastpath.dataforms.FormManager.getDataForm(FormManage r.java:189)

*2

179 public DataForm getDataForm(Workgroup workgroup) {

180 DbProperties props = workgroup.getProperties();

181 String context = “jive.dataform.wg”;

182 String form = props.getProperty(context);

183

184 if (form != null) {

185 XStream xstream = new XStream();

186 xstream.setClassLoader(this.getClass().getClassLoader());

187

188 try {

*189 return (DataForm) xstream.fromXML(form);

190 }

191 catch (Exception e) {

192 ComponentManagerFactory.getComponentManager().getLog().error(e);

193 }

194 }

195 return null;

196 }

*3

<org.xmpp.forms.DataForm>

<qname serialization="custom">

  <org.dom4j.QName>

    <string></string>

    <string>jabber:x:data</string>

    <default>

      <hashCode>-1110501510</hashCode>

      <documentFactory serialization="custom">

        <org.dom4j.DocumentFactory>

          <default/>

        </org.dom4j.DocumentFactory>

      </documentFactory>

      <name>x</name>

    </default>

  </org.dom4j.QName>

</qname>

<parentBranch class="org.dom4j.tree.DefaultDocument">

  <rootElement class="org.dom4j.tree.DefaultElement" reference="../.."/>

  <content>

    <org.dom4j.tree.DefaultElement reference="../../.."/>

  </content>

  <documentFactory reference="../../qname/org.dom4j.QName/default/documentFactory"/>

</parentBranch>

<content class="list">

  <org.dom4j.tree.DefaultElement>

    <qname serialization="custom">

      <org.dom4j.QName>

        <string></string>

        <string>jabber:x:data</string>

        <default>

          <hashCode>0</hashCode>

          <documentFactory reference="../../../../../../qname/org.dom4j.QName/default/documentFactory"/>

          <name>field</name>

        </default>

      </org.dom4j.QName>

    </qname>

    <parentBranch class="org.dom4j.tree.DefaultElement" reference="../../.."/>

    <content class="org.dom4j.tree.DefaultElement">

      <qname serialization="custom">

        <org.dom4j.QName>

          <string></string>

          <string>jabber:x:data</string>

          <default>

            <hashCode>0</hashCode>

            <documentFactory reference="../../../../../../../qname/org.dom4j.QName/default/documentFactory"/ >

            <name>required</name>

          </default>

        </org.dom4j.QName>

      </qname>

      <parentBranch class="org.dom4j.tree.DefaultElement" reference="../.."/>

    </content>

    <attributes class="list">

      <org.dom4j.tree.DefaultAttribute>

        <parent class="org.dom4j.tree.DefaultElement" reference="../../.."/>

        <qname serialization="custom">

          <org.dom4j.QName>

            <string></string>

            <string></string>

            <default>

              <hashCode>0</hashCode>

              <documentFactory reference="../../../../../../../../qname/org.dom4j.QName/default/documentFactor y"/>

              <name>label</name>

            </default>

          </org.dom4j.QName>

        </qname>

        <value>Name:</value>

      </org.dom4j.tree.DefaultAttribute>

      <org.dom4j.tree.DefaultAttribute>

        <parent class="org.dom4j.tree.DefaultElement" reference="../../.."/>

        <qname serialization="custom">

          <org.dom4j.QName>

            <string></string>

            <string></string>

            <default>

              <hashCode>0</hashCode>

              <documentFactory reference="../../../../../../../../qname/org.dom4j.QName/default/documentFactor y"/>

              <name>var</name>

              <qualifiedName>var</qualifiedName>

            </default>

          </org.dom4j.QName>

        </qname>

        <value>username</value>

      </org.dom4j.tree.DefaultAttribute>

      <org.dom4j.tree.DefaultAttribute>

        <parent class="org.dom4j.tree.DefaultElement" reference="../../.."/>

        <qname serialization="custom">

          <org.dom4j.QName>

            <string></string>

            <string></string>

            <default>

              <hashCode>3575610</hashCode>

              <documentFactory reference="../../../../../../../../qname/org.dom4j.QName/default/documentFactor y"/>

              <name>type</name>

              <qualifiedName>type</qualifiedName>

            </default>

          </org.dom4j.QName>

        </qname>

        <value>text-single</value>

      </org.dom4j.tree.DefaultAttribute>

    </attributes>

  </org.dom4j.tree.DefaultElement>

  <org.dom4j.tree.DefaultElement>

    <qname reference="../../org.dom4j.tree.DefaultElement/qname"/>

    <parentBranch class="org.dom4j.tree.DefaultElement" reference="../../.."/>

    <content class="org.dom4j.tree.DefaultElement">

      <qname reference="../../../org.dom4j.tree.DefaultElement/content/qname"/>

      <parentBranch class="org.dom4j.tree.DefaultElement" reference="../.."/>

    </content>

    <attributes class="list">

      <org.dom4j.tree.DefaultAttribute>

        <parent class="org.dom4j.tree.DefaultElement" reference="../../.."/>

        <qname reference="../../../../org.dom4j.tree.DefaultElement/attributes/org.dom4j.tree. DefaultAttribute/qname"/>

        <value>Email Address:</value>

      </org.dom4j.tree.DefaultAttribute>

      <org.dom4j.tree.DefaultAttribute>

        <parent class="org.dom4j.tree.DefaultElement" reference="../../.."/>

        <qname reference="../../../../org.dom4j.tree.DefaultElement/attributes/org.dom4j.tree. DefaultAttribute[2]/qname"/>

        <value>email</value>

      </org.dom4j.tree.DefaultAttribute>

      <org.dom4j.tree.DefaultAttribute>

        <parent class="org.dom4j.tree.DefaultElement" reference="../../.."/>

        <qname reference="../../../../org.dom4j.tree.DefaultElement/attributes/org.dom4j.tree. DefaultAttribute[3]/qname"/>

        <value>text-single</value>

      </org.dom4j.tree.DefaultAttribute>

    </attributes>

  </org.dom4j.tree.DefaultElement>

  <org.dom4j.tree.DefaultElement>

    <qname reference="../../org.dom4j.tree.DefaultElement/qname"/>

    <parentBranch class="org.dom4j.tree.DefaultElement" reference="../../.."/>

    <content class="org.dom4j.tree.DefaultElement">

      <qname reference="../../../org.dom4j.tree.DefaultElement/content/qname"/>

      <parentBranch class="org.dom4j.tree.DefaultElement" reference="../.."/>

    </content>

    <attributes class="list">

      <org.dom4j.tree.DefaultAttribute>

        <parent class="org.dom4j.tree.DefaultElement" reference="../../.."/>

        <qname reference="../../../../org.dom4j.tree.DefaultElement/attributes/org.dom4j.tree. DefaultAttribute/qname"/>

        <value>Question:</value>

      </org.dom4j.tree.DefaultAttribute>

      <org.dom4j.tree.DefaultAttribute>

        <parent class="org.dom4j.tree.DefaultElement" reference="../../.."/>

        <qname reference="../../../../org.dom4j.tree.DefaultElement/attributes/org.dom4j.tree. DefaultAttribute[2]/qname"/>

        <value>question</value>

      </org.dom4j.tree.DefaultAttribute>

      <org.dom4j.tree.DefaultAttribute>

        <parent class="org.dom4j.tree.DefaultElement" reference="../../.."/>

        <qname reference="../../../../org.dom4j.tree.DefaultElement/attributes/org.dom4j.tree. DefaultAttribute[3]/qname"/>

        <value>text-single</value>

      </org.dom4j.tree.DefaultAttribute>

    </attributes>

  </org.dom4j.tree.DefaultElement>

</content>

<attributes class="org.dom4j.tree.DefaultAttribute">

  <parent class="org.dom4j.tree.DefaultElement" reference="../.."/>

  <qname reference="../../content/org.dom4j.tree.DefaultElement/attributes/org.dom4j.tre e.DefaultAttribute[3]/qname"/>

  <value>form</value>

</attributes>

</org.xmpp.forms.DataForm>

form does indeed have the correct xml value assigned, thus the database read is not the issue.

Folks,

OK, I have a solution, was able to get it working with JDK 1.6.x 1. Basically xstream2 needed to be rebuilt from source using latest stable (1.3.1 at this time). I downloaded the updated version of the sources, recompiled and copied over the updated version and all is working. Took many hours to deduce that the backtrace line “at com.thoughtworks.xstream.XStream.fromXML(XStream.java:753)” was occurring because an older JDK jar build created incompatibilities triggering the error. I essentially started by rebuilding OPF 3.6.3 from source, and modifying the sources until I ruled out other reasons. Attached is the output of the rebuild of Xstream (xstream-1.3.1.jar). Copy into $OPENFIRE_HOME/plugins/fastpath/lib (/usr/local/share/java/openfire/plugins/fastpath/lib in my case) and create a symbolic link to xstream.jar (if needed).

HTH,

BEA

Refs:

*1 FreeBSD 7.0-RELEASE amd64, diablo-jdk-1.6.0.07.02_1, jdk-1.6.0.3p4_7, Openfire 3.6.3

*2 http://xstream.codehaus.org

Dear @slicer321,

You give me a great solution. Now I have solve the same problem on Fastpath.

My system is Freebsd7.2 AMD 64 diablo-jdk-1.6.0.07.02_1, jdk-1.6.0.3p4_7, Openfire 3.6.4

Openfire use Ports install

After the default install , I meet the Fastpath jave Errors same as this topic.

I see your solution, and do following job:

#cd /usr/ports/textproc/xstream/

#make install

#cp /usr/local/share/java/classes/xstream.jar /usr/local/share/java/openfire/plugins/

#cp /usr/local/share/java/classes/xstream.jar /usr/local/share/java/openfire/fastpath/

#sudo /usr/local/etc/rc.d/openfire restart

I don’t know which one exactly works, but after i done all jobs above, the fastpath begin to work well.

No errors find!

Thank you slicer321, thank you all!