Sending the following XMPP-Packet to the Server
<presence><show/></presence>
results in a warning like this:
2009.03.17 17:27:01 Invalid presence show for -<presence><show/></presence>
java.lang.IllegalArgumentException: No enum const class org.xmpp.packet.Presence$Show.
at java.lang.Enum.valueOf(Enum.java:196)
at org.xmpp.packet.Presence$Show.valueOf(Presence.java:378)
at org.xmpp.packet.Presence.getShow(Presence.java:137)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:239)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:176)
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:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
at java.lang.Thread.run(Thread.java:619)
RFC3921, Page 7, Section 2.2.2.1. is a bit misunderstanding in this case, but I think empty show-Elements like this are allowed. However, it seems some client out there does use this.
The OPTIONAL element contains non-human-readable XML
character data that specifies the particular availability status of
an entity or specific resource. A presence stanza MUST NOT contain
more than one element. The element MUST NOT possess
any attributes. If provided, the XML character data value MUST be
one of the following (additional availability types could be defined
through a properly-namespaced child element of the presence stanza):
o away -- The entity or resource is temporarily away.
o chat -- The entity or resource is actively interested in chatting.
o dnd -- The entity or resource is busy (dnd = "Do Not Disturb").
o xa -- The entity or resource is away for an extended period (xa =
"eXtended Away").
If no element is provided, the entity is assumed to be online
and available.
I think the problem is located in org.xmpp.packet.Presence#getShow
public Show getShow() {
String show = element.elementText("show");
if (show == null) {
return null;
}
else {
return Show.valueOf(show);
}
}
I'm not sure, but probably element.elementText returns an empty string in this case instead of NULL. An additional check should solve the problem. It is possible that this little problem is causing other problems. I had strange server problems in these days. Login not working, Clients get kicked when joining a MUC room....strange things. I'm not sure this is related, just wanted to mention it if someone else has this problems.
Message was edited by: Coolcat This WYSIWYG-Editor is like hell....even when working with the HTML-Editor the results are different than that you typed...