From e88de19307ee2869039db092b37ba843437feb73 Mon Sep 17 00:00:00 2001 From: Guillermo Mazzola Date: Mon, 5 May 2025 11:51:15 +0200 Subject: [PATCH] Removes `messageQueue` since produces memory leaks --- .../com/mparticle/internal/BaseHandler.java | 21 ------------------- .../main/java/com/mparticle/AccessUtils.java | 14 ------------- 2 files changed, 35 deletions(-) diff --git a/android-core/src/main/java/com/mparticle/internal/BaseHandler.java b/android-core/src/main/java/com/mparticle/internal/BaseHandler.java index 455b80630..92d68b689 100644 --- a/android-core/src/main/java/com/mparticle/internal/BaseHandler.java +++ b/android-core/src/main/java/com/mparticle/internal/BaseHandler.java @@ -13,11 +13,6 @@ public class BaseHandler extends Handler { private volatile boolean disabled; private volatile boolean handling; - private ConcurrentHashMap messageQueue = new ConcurrentHashMap(); - - public Set getMessageQueue() { - return messageQueue.keySet(); - } public BaseHandler() { } @@ -50,9 +45,6 @@ public final void handleMessage(Message msg) { } handling = true; try { - if (msg != null) { - messageQueue.remove(msg); - } if (msg != null && msg.what == -1 && msg.obj instanceof CountDownLatch) { ((CountDownLatch) msg.obj).countDown(); } else { @@ -78,22 +70,9 @@ public boolean sendMessageAtTime(Message msg, long uptimeMillis) { if (InternalListenerManager.isEnabled()) { InternalListenerManager.getListener().onThreadMessage(getClass().getName(), msg, false); } - if (msg != null) { - messageQueue.put(msg, true); - } return super.sendMessageAtTime(msg, uptimeMillis); } - public void removeMessage(int what) { - Set messages = messageQueue.keySet(); - for (Message message : messages) { - if (message.what == what) { - messageQueue.remove(message); - } - } - super.removeMessages(what); - } - //Override this in order to handle messages public void handleMessageImpl(Message msg) { } diff --git a/testutils/src/main/java/com/mparticle/AccessUtils.java b/testutils/src/main/java/com/mparticle/AccessUtils.java index 3ea77bb58..0a8a8ded3 100644 --- a/testutils/src/main/java/com/mparticle/AccessUtils.java +++ b/testutils/src/main/java/com/mparticle/AccessUtils.java @@ -19,20 +19,6 @@ public static void reset(Context context, boolean deleteDatabase, boolean switch MParticle.reset(context, deleteDatabase, switchingWorkspaces); } - /** - * This is a way less than ideal implementation, but I think the insight is very important. - * - * This method returns an ordered list of the pending Messages in the UploadHandler queue. This - * gives us the ability to test the UploadHandler's true "state" when looking closely at how - * our Upload loop is performing - * - * @return - */ - @RequiresApi(api = Build.VERSION_CODES.M) - public static Set getUploadHandlerMessageQueue() { - return getMessageManager().mUploadHandler.getMessageQueue(); - } - public static MessageManager getMessageManager() { return MParticle.getInstance().mMessageManager; }