We have the storphe openfire client which creates the http-bind request once in 30 seconds and everything works fine. After few hours of keeping the session idle, the response for the http-bind gives the old values of rid value not the one requested.
Eg:
Request: <body rid='771796934' xmlns='http://jabber.org/protocol/httpbind' sid='zgnmepnk3'/>
Response: <body xmlns='http://jabber.org/protocol/httpbind' ack='771796934'>
</body>
Request: <body rid='771796935' xmlns='http://jabber.org/protocol/httpbind' sid='zgnmepnk3'/>
Response: <body xmlns='http://jabber.org/protocol/httpbind' ack='771796935'>
</body>
Request: <body rid='771796936' xmlns='http://jabber.org/protocol/httpbind' sid='zgnmepnk3'/>
Response: <body xmlns='http://jabber.org/protocol/httpbind' ack='771796936'>
</body>
Request: <body rid='771796937' xmlns='http://jabber.org/protocol/httpbind' sid='zgnmepnk3'/>
Response: <body xmlns='http://jabber.org/protocol/httpbind' ack='771796935'>
</body>
Request: <body rid='771796938' xmlns='http://jabber.org/protocol/httpbind' sid='zgnmepnk3'/>
Response: <body xmlns='http://jabber.org/protocol/httpbind' ack='771796935'>
</body>
And the session closed with the error saying not-found.
Request: <body rid='771796939' xmlns='http://jabber.org/protocol/httpbind' sid='zgnmepnk3'/>
Response: <body xmlns="http://jabber.org/protocol/httpbind" type="terminate" condition="item-not-found"/>
Looks like there are some concurrency issue in HttpSession.java code in openfire. This should be fixed.