I'm using XIFF to talk to Openfire and sending the following stanza to Openfire when I join a permanent chat room.
<presence to="test_group@conference.myserver.com/andrew">
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc">
<history since="2011-02-16T18:28:59Z" />
</x>
</presence>
According to the XMPP.org spec, the format of my dateTime for history since is perfectly syntactically correct.
http://xmpp.org/extensions/xep-0045.html#enter-managehistory
http://xmpp.org/extensions/xep-0082.html#sect-id218623
The openfire error log shows that it is unable to parse this date. WHY???
2011.02.16 19:55:57 [org.jivesoftware.openfire.muc.HistoryRequest.<init>(HistoryRequest.java:73)] Error parsing date from history management
java.text.ParseException: Unparseable date: "2011-02-16T18:28:59Z"
at java.text.DateFormat.parse(DateFormat.java:337)
at org.jivesoftware.openfire.muc.HistoryRequest.<init>(HistoryRequest.java:69)
at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:444)
at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:164)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.processPacket(MultiU serChatServiceImpl.java:275)
at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponents .process(InternalComponentManager.java:619)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.jav a:260)
at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:164)
at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:70)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:76)
at org.jivesoftware.openfire.net.StanzaHandler.processPresence(StanzaHandler.java: 337)
at org.jivesoftware.openfire.net.ClientStanzaHandler.processPresence(ClientStanzaH andler.java:85)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:254)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:176)
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(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)
2011.02.16 19:55:57 [org.jivesoftware.openfire.muc.HistoryRequest.<init>(HistoryRequest.java:73)] Error parsing date from history management
java.text.ParseException: Unparseable date: "2011-02-16T18:28:59Z"
at java.text.DateFormat.parse(DateFormat.java:337)
at org.jivesoftware.openfire.muc.HistoryRequest.<init>(HistoryRequest.java:69)
at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:444)
at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:164)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.processPacket(MultiU serChatServiceImpl.java:275)
at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponents .process(InternalComponentManager.java:619)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.jav a:260)
at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:164)
at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:70)
at ...
...
-Andrew