New chat state is fired when it should not be

I am implementing a org.jivesoftware.smackx.ChatStateListener, and I am getting new ChatState notifications when I should not be.

For example, I sign on to google talk thru our chat app, and type a series of messages very quickly, eventually causing Google Talk to send back 503 service-unavailable messages, which include the original messages sent to the google talk xmpp server.

For example, these errors will come back:

e13pr0

For these messages, I can deal with the errors in MessageListener#processMessage. I do not think ChatStateListener#stateChanged should be called when the Message is of type org.jivesoftware.smack.packet.Message.Type.error.

In ChatStateManager.java (http://www.igniterealtime.org/fisheye/browse/svn-org/smack/trunk/source/org/jive software/smackx/ChatStateManager.java?r=8480), I think the code should check to make sure that the Message type is not an error, before it calls the code to fireNewChatState. I’m not sure about the other Message types.