i am using Smack 4.0.3
Every once in a while I get a message on the server from the client that looks something like this:
INCOMING MESSAGE!!!!!!!!!!!!
<message id='2u650-31' to='xxxxxxxxxxx@gcm.googleapis.com/Smack0152E3A3' type='error'><error type="cancel"><not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xml:lang="en" xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Received more acks than expected.</text></error><gcm xmlns="google:mobile:data">{"to":"ClientsRegistrationIDGoesHere","message_id":"1054919404","message_type":"ack"}</gcm></message>
GCM PACKET
com.bannervision.web.controller.admin.SmackCcsClient$GcmPacketExtension@6454f46b
JSON
{"to":"ClientsRegistrationIDGoesHere","message_id":"1054919404","message_type":"ack"}
After this error I get a stack trace that looks like this:
WARNING:Not connected anymore, echo message is not sent
org.jivesoftware.smack.SmackException$NotConnectedException
at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:584)
at com.bannervision.web.controller.admin.SmackCcsClient.send(SmackCcsClient.java:106)
at com.bannervision.web.controller.admin.SmackCcsClient.sendDownstreamMessage(SmackCcsClient.java:84)
at com.bannervision.web.controller.admin.SmackCcsClient.handleUpstreamMessage(SmackCcsClient.java:228)
at com.bannervision.web.controller.admin.SmackCcsClient$2.processPacket(SmackCcsClient.java:409)
at org.jivesoftware.smack.XMPPConnection$ListenerWrapper.notifyListener(XMPPConnection.java:1233)
at org.jivesoftware.smack.XMPPConnection$ListenerNotification.run(XMPPConnection.java:1143)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Oct08,201410:36:01 PM com.bannervision.web.controller.admin.SmackCcsClient$2 processPacket
SEVERE:Failed to process packet
org.jivesoftware.smack.SmackException$NotConnectedException
at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:584)
at com.bannervision.web.controller.admin.SmackCcsClient.send(SmackCcsClient.java:106)
at com.bannervision.web.controller.admin.SmackCcsClient$2.processPacket(SmackCcsClient.java:415)
at org.jivesoftware.smack.XMPPConnection$ListenerWrapper.notifyListener(XMPPConnection.java:1233)
at org.jivesoftware.smack.XMPPConnection$ListenerNotification.run(XMPPConnection.java:1143)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
The error that pops doesn't seem to effect anything else, everything keeps sending and coming in as it should but after this error start popping, it will continue every 5 seconds.
Question How do I catch this error? The error only appears in the xml. Better yet how do I prevent it?
Any ideas?