After DEFAULT_MAX_CACHE_LIFETIME (6 hours), openfire purges the roster from cache. When the roster is needed again, openfire rebuilds it from the backend but all the Kraken contacts are now missing.
Maybe this would be fixed if rosterLoaded() in BaseTransport.java called syncLegacyRoster?
Log in with an AIM transport active
Wait 6+ hours
Without closing the first connection, open another XMPP link with a different resource. All the AIM buddies will be missing.
Wow – great catch! I don't tend to log in from multiple places so I'm not sure I would have ever caught this! =D
I'll look into the rosterLoaded solution – but I vaguely recall that causing me weird problems in the past. (but I was using it for something else) I'll see what I can do! Thanks for the debugging work!! I think I can lower that cache timeout to test it in a reasonable timeframe.
After thinking this through a bit, I've decided this should go into 1.1.4. It's a bit of a potentially drastic change (if it does cause problems that is) to throw in at the last minute for 1.1.3. =)
I have one and only one issue outstanding for 1.1.3 at the moment. Once I get that knocked out it's on to 1.1.4.
I have the same problem but for me it is a major bug. My main reason for using the ICQ gateway is being able to access the network via multiple clients. One on my mobile phone which is always logged in and one on the pc I am working with at the time. So please provide a fix as really need it
I'm going to look into this for 1.1.3 but make no promises – if it's easy then I'll put it in 1.1.3, but I recall that rosterLoaded being called way too often which is why it's not set to do anything currently. (like if you log in with debug mode turned on you'll see rosterLoaded called a lot more than seems sane)