I found that the PacketListener doesn’'t catch offline messages that are spooled in jabberd. The offline message does show up in the debug window but is apparently not caught.
I ran my program through a debugger (Eclipse). I put a breakpoint at PacketReader.parsePackets(). The message was delivered.
I suspect something to do with the delays in threading?