It looks like there are no provisions in Smack to actually wait for and process a
<stream:stream> from the server. I’m seeing very very weird behavior in my implementation during stream resumption, where outgoing
<resume> are sent in parallel:
12-19 07:40:33.821 D/SMACK (13162): SENT (1): <stream:stream xmlns='jabber:client' to='yax.im' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' id='1ffda9a8-b175-4326-9bfc-de590b1bb0d8<'resume xmlns='urn:xmpp:sm:3'xml:lang ='hen=''29686> 12-19 07:40:33.822 D/SMACK (13162): SENT (1): ' previd='79042661-3d09-49bd-86ad-f10abc4140db'/>
I don’t understand yet how this is happening (both are triggered from
loginInternal which is synchronized, so I don’t think it’s related to my threading). OTOH, both elements are put into the
PacketWriter.queue so I wonder how they end up intermixed.