HistoryRequest since... Unparseable Date Error

I’m using XIFF to talk to Openfire and sending the following stanza to Openfire when I join a permanent chat room.

0

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.(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.(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.(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.(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

It looks like Openfire is one of those servers where the milliseconds part of the dateTime is required. I added that in and then it parsed ok.

OF-600 will track a resolution to this.