Reusing TimerTask sometimes fails

Stephen Paul Weber created

Change summary

src/main/java/eu/siacs/conversations/entities/Conversation.java | 8 ++
1 file changed, 7 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Conversation.java 🔗

@@ -1451,7 +1451,13 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
                 @Override
                 public void run() {
                     if (getAccount().getStatus() != Account.State.ONLINE) {
-                        new Timer().schedule(this, 1000);
+                        final TimerTask self = this;
+                        new Timer().schedule(new TimerTask() {
+                            @Override
+                            public void run() {
+                                self.run();
+                            }
+                        }, 1000);
                     } else {
                         xmppConnectionService.sendIqPacket(getAccount(), packet, (a, iq) -> {
                             session.updateWithResponse(iq);