Below is a capture of the log while testing aTalk in session resume. The ejabberd xmpp server responses with the following stanza with an embedded descriptive element giving the reason for the resume failure.
06-06 08:05:58.252 D/SMACK: RECV (1): Previous session timed out
However smack attempt to decode this <.text> to XMPPErrorCondition but failed with
“java.lang.IllegalStateException: Could not transform string ‘text’ to XMPPErrorCondition”
Note: XEP-0198: “Stream Management#Example 12. Stream timed” out does not specifically state a requirement for an descriptive elements. Not sure if ejabberd or Smack need action on this error.
=========== atalk Log failed on resume due to “Previous session timed out” ================
06-06 08:05:58.092 D/SMACK: SENT (1): biwsbj10ZXN0LHI9PF4wRF49ciMhKDkoXzt5QyZpd0J2fnx+QXc2RG9 ATGQ=
06-06 08:05:58.102 D/SMACK: RECV (1): cj08XjBEXj1yIyEoOShfO3lDJml3QnZ+fH5Bdz ZEb0BMZDEyTE9VK0JBckhYUG1iWWFHRmROTWc9PSxzPUFlVHVURmQxMlV6anN4SjZkNy80RlE9PSxpPT QwOTY=
06-06 08:05:58.112 D/SMACK: SENT (1): Yz1iaXdzLHI9PF4wRF49ciMhKDkoXzt5QyZpd0 J2fnx+QXc2RG9ATGQxMkxPVStCQXJIWFBtYllhR0ZkTk1nPT0scD1ldUxsaUQyU3hyQ2VBUENKd29sUk FZSUdUNHc9
06-06 08:05:58.142 D/SMACK: RECV (1): dj1RTndiRGJlRTRWajRKUit0Sk1XbHJJVGhRK1 U9
06-06 08:05:58.142 D/SMACK: SENT (1): <stream:stream xmlns=‘jabber:client’ to=‘atalk.org’ xmlns:stream=‘http://etherx.jabber.org/streams’ version=‘1.0’ id=‘2896674283834107045’ xml:lang=‘en’>
06-06 08:05:58.252 D/SMACK: RECV (1): <?xml version='1.0'?><stream:stream id=‘8777163671007096347’ version=‘1.0’ xml:lang=‘en’ xmlns:stream=‘http://etherx.jabber.org/streams’ from=‘atalk.org’ xmlns=‘jabber:client’>
06-06 08:05:58.252 D/SMACK: RECV (1): stream:features</stream:features>
06-06 08:05:58.252 D/SMACK: RECV (1): Previous session timed out
06-06 08:06:03.152 W/αTalk: [48] org.jivesoftware.smack.AbstractXMPPConnection.callConnectionClosedOnErrorListen er() Connection XMPPTCPConnection[test@atalk.org/atalk] (1) closed with error
java.lang.IllegalStateException: Could not transform string ‘text’ to XMPPErrorCondition
at org.jivesoftware.smack.packet.XMPPError$Condition.fromString(XMPPError.java:414 )
at org.jivesoftware.smack.sm.provider.ParseStreamManagement.failed(ParseStreamMana gement.java:56)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPC onnection.java:1130)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPCon nection.java:980)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnecti on.java:996)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.IllegalArgumentException: text is not a constant in org.jivesoftware.smack.packet.XMPPError$Condition
at java.lang.Enum.valueOf(Enum.java:200)
at org.jivesoftware.smack.packet.XMPPError$Condition.valueOf(XMPPError.java:374)
at org.jivesoftware.smack.packet.XMPPError$Condition.fromString(XMPPError.java:412 )
at org.jivesoftware.smack.sm.provider.ParseStreamManagement.failed(ParseStreamMana gement.java:56)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPC onnection.java:1130)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPCon nection.java:980)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnecti on.java:996)
at java.lang.Thread.run(Thread.java:818)