Not receiving RoomEvent.DECLINED event on decline

I am having some trouble receiving a decline event. Any help would be greatly appreciated, details below:

  • Setup: 2 users, rob & rose. rose sends invite to rob, rob declines, rose does not receive decline event.

Using Xiff on trunk and Openfire v3.5.2

On receiving the room invite, the following code is exectuted:

roomEvent.room.decline(event.room.userJID,“No thanks”);

The following is consequently sent over the wire:

<message to="myroom26916000@conference.test" id="m_10"><x xmlns="http://jabber.org/protocol/muc#user"><decline         to="myroom26916000@conference.test/rob"><reason>No thanks</reason></decline></x></message>

Nothing is received on the other side.

The following exception appears in the OpenFire logs:

2008.07.14 21:42:49 [org.jivesoftware.openfire.muc.spi.MultiUserChatServerImpl.processPacket(MultiU serChatServerImpl.java:251)

] Internal server error java.lang.NullPointerException: JID cannot be null at org.xmpp.packet.JID.<init>(JID.java:226) at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:216) at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:161) at org.jivesoftware.openfire.muc.spi.MultiUserChatServerImpl.processPacket(MultiUs erChatServerImpl.java:248) at org.jivesoftware.openfire.muc.spi.MultiUserChatServerImpl.process(MultiUserChat ServerImpl.java:228) at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.jav a:258) at org.jivesoftware.openfire.MessageRouter.route(MessageRouter.java:97) at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:72) at org.jivesoftware.openfire.muc.spi.LocalMUCRoom.sendInvitationRejection(LocalMUC Room.java:1700) at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:216) at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:161) at org.jivesoftware.openfire.muc.spi.MultiUserChatServerImpl.processPacket(MultiUs erChatServerImpl.java:248) at org.jivesoftware.openfire.muc.spi.MultiUserChatServerImpl.process(MultiUserChat ServerImpl.java:228) at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.jav a:258) at org.jivesoftware.openfire.MessageRouter.route(MessageRouter.java:97) at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:72) at org.jivesoftware.openfire.net.StanzaHandler.processMessage(StanzaHandler.java:3 47) at org.jivesoftware.openfire.net.ClientStanzaHandler.processMessage(ClientStanzaHa ndler.java:91) at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:208) at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:175) at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:133) at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:570) at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299) at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53) at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648) at org.apache.mina.common.IoFilterAdapter.messageReceived(IoFilterAdapter.java:80) at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299) at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53) at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648) at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:58) at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:185) at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299) at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53) at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648) at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :239) at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:283) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.lang.Thread.run(Unknown Source)

Is there a possiblity that there is a bug in Xiff around room invitation declines or have I done something monumentally stupid?

Thanks

Rob

It’s absolutely possible there’s a bug in XIFF. I haven’t tested declines extensively, but giving invites in general some polishing is on my list for this week.

Great, I will continue to play around with it and let you know if I find anything.

One thing I did notice late last night but did not have a chance to chase up, is that there is no “from” attribute sent on room.decline(). I was thinking this may be the missing attribute that is causing the exception in OpenFire.

Should be simple enough to try adding it and see if it fixes the issue

Hard coded a from on the decline message but for whatever reason am not receiving the event on the other side.

Interestingly when I use spark to do the decline, I receive an incoming data event in my software:

<message from=“myroom7330399@conference.test” to=“rob@test”><x xmlns=“http://jabber.org/protocol/muc#user”><decline from=“rose@test”><reason>No thank you</reason></decline></x></message>

However I do not receive a ROOM.DECLINE event, so I suspect there is more than 1 bug around this area.

Rob