I'm attempting to receive a custom IQ result packet on Smack 4.1.0-alpha1-SNAPSHOT, and some of the XML elements are being dropped between the reception of the packet and the delivery to my listener.
I've set SmackConfiguration.DEBUG_ENABLED = true, and I receive the following stanza: (Cleaned up a little to make readable)
11:11:59 PM RCV (1631684231):<iq type="result" id="j6p8N-33" from="lighthouse.seattle1.adspore.com" to="bot_ijyffc@seattle1.adspore.com/Smack"> <account xmlns="http://adspore.com/v1/lighthouse"> <username>bot_ijyffc@seattle1.adspore.com</username> <email>foo@foo.bar</email> <objectid>2002126324076833545</objectid> <visibility>true</visibility> </account></iq>
However, by the time it reaches my PacketFilter/PacketListener, it looks like this...
<iq id='j6p8N-33' to='bot_ijyffc@seattle1.adspore.com/Smack' from='lighthouse.seattle1.adspore.com' type='result'> .... missing bits.... true</visibility></iq>
I've configured a PacketFilter to accept everything, and add the listener for it just before sending the outgoing IQ like this:
publicvoid sendAccount() { AccountIQ accountIQ = new AccountIQ(getUsername(), "foo@foo.bar", true, 0L); accountIQ.setTo(Main.SERVICE); accountIQ.setFrom(mConnection.getUser()); accountIQ.setType(IQ.Type.set); LOG.info("Sending AccountInfo:" + accountIQ.toString()); try{ mConnection.addPacketListener(this, new AcceptEverythingPacketFilter()); mConnection.sendPacket(accountIQ); }catch (SmackException.NotConnectedException e) { LOG.error("Caught exception", e); } }
Here is the PacketFilter and handler:
@Override publicvoid processPacket(Packet packet) throws SmackException.NotConnectedException { if (packet instanceof IQ) { LOG.info("Received IQ:" + packet.toXML()); } } privateclass AcceptEverythingPacketFilter implements PacketFilter { @Override publicboolean accept(Packet packet) { LOG.info("Checking packet:" + packet.toString()); returntrue; } }
Thanks for any help, I'm not able to determine where the characters are getting lost.