This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 122052 - Personal Collaboration Server not work with OpenFire 3.4.1
Summary: Personal Collaboration Server not work with OpenFire 3.4.1
Status: CLOSED WONTFIX
Alias: None
Product: obsolete
Classification: Unclassified
Component: collab (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker with 1 vote (vote)
Assignee: issues@obsolete
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-11-15 18:16 UTC by bazerk
Modified: 2011-11-28 11:37 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description bazerk 2007-11-15 18:16:52 UTC
Using OpenFire 3.4.1 with a new, default installation on Mac OS X with NetBeans 5.5.1 or 6.0 results in an error: 

object does not represent a valid JID

The wiki page for the Collaboration Server (http://wiki.netbeans.org/wiki/view/CollabServer) says that it is tested 
with the latest version of the OpenFire XMPP server.
Comment 1 manawiz 2008-06-30 20:31:52 UTC
Upgrading this to a P1 as it renders the Netbeans collaboration capability completely unusable for many of us.  We
cannot rely on share.java.net for both security and performance reasons, and openfire appears to be the only private
server option.

I've spent some time looking into the issue.  The exception arises inside openfire in
PresenceManagerImpl.userUnavailable().  It gets a primary key violation inserting a new unavailable status into
jivePresence, because there is one already there.  The logic in available() vs. unavailable() is supposed to not allow
this to happen.  I don't understand why logging in through Netbeans is causing an unavailable entry anyway -- presumably
the user is becoming available.

It's not clear to me whether this bug is in Netbeans or in openfire, but either way Netbeans collaboration capability
simply doesn't work at all for us because nobody can log in.

The problem arises with Netbeans 6.1 using openfire 3.5.2 with either mysql or the built-in hsqldb.

Here is the exception on the openfire side:

2008.06.30 18:11:24 [org.jivesoftware.openfire.spi.PresenceManagerImpl.userUnavailable(PresenceManagerImpl.java:268)]
Error storing offline presence of user: chuck
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry 'chuck' for key 1
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
	at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:882)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)
	at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)
	at $java.sql.Wrapper$$EnhancerByProxool$$39c4002c.execute(<generated>)
	at org.jivesoftware.openfire.spi.PresenceManagerImpl.userUnavailable(PresenceManagerImpl.java:265)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:145)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:112)
	at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:176)
	at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:134)
	at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:70)
	at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:76)
	at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClose(SessionManager.java:1133)
	at org.jivesoftware.openfire.nio.NIOConnection.notifyCloseListeners(NIOConnection.java:183)
	at org.jivesoftware.openfire.nio.NIOConnection.close(NIOConnection.java:166)
	at org.jivesoftware.openfire.session.LocalSession.close(LocalSession.java:303)
	at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:132)
	at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:133)
	at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
	at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
	at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
	at org.apache.mina.common.IoFilterAdapter.messageReceived(IoFilterAdapter.java:80)
	at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
	at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
	at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
	at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:185)
	at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
	at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
	at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:239)
	at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:283)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
	at java.lang.Thread.run(Thread.java:619)

The entry already in jivePresence is this:

mysql> select * from jivePresence;
+----------+---------------------------------------------------------------------------------------------------+-----------------+
| username | offlinePresence                                                                                   |
offlineDate     |
+----------+---------------------------------------------------------------------------------------------------+-----------------+
| chuck    | <presence type="unavailable" from="chuck@innovtools.hq.brocasystems.com/ide"><status/></presence> |
001214848245704 | 
+----------+---------------------------------------------------------------------------------------------------+-----------------+
1 row in set (0.00 sec)

mysql> 
Comment 2 Antonin Nebuzelsky 2009-06-02 15:07:45 UTC
Reassigning to issues@collab. Collab Support plugin is not actively maintained.

Obsoleted in 6.7 by the newly introduced integration with Project Kenai, a
collaborative environment for developers to host their open-source projects,
which includes also a chat service.
Comment 3 _ hair 2009-07-30 11:30:26 UTC
Project Kenai does not provide the same functionality set. The collab modules provide excellent in house development
collaboration for companies developing private (or you-are-going-hell-proprietary) code. Project Kenai is only for open
source projects. In house collaboration also provides superior performance and security.
Comment 4 Jan Chalupa 2011-11-28 09:03:30 UTC
Obsolete issue. Closing.
Comment 5 Marian Mirilovic 2011-11-28 11:37:49 UTC
v/c