diff --git a/core/src/main/java/org/piccolo2d/activities/PActivityScheduler.java b/core/src/main/java/org/piccolo2d/activities/PActivityScheduler.java index 6ae7f9e..3e6358a 100644 --- a/core/src/main/java/org/piccolo2d/activities/PActivityScheduler.java +++ b/core/src/main/java/org/piccolo2d/activities/PActivityScheduler.java @@ -170,7 +170,6 @@ public void processActivities(final long currentTime) { final int size = activities.size(); if (size > 0) { - processingActivities.clear(); processingActivities.addAll(activities); for (int i = size - 1; i >= 0; i--) { final PActivity each = (PActivity) processingActivities.get(i); diff --git a/examples/src/main/java/org/piccolo2d/examples/ActivityMemoryLeakBugExample.java b/examples/src/main/java/org/piccolo2d/examples/ActivityMemoryLeakBugExample.java index c5fa500..f621e08 100644 --- a/examples/src/main/java/org/piccolo2d/examples/ActivityMemoryLeakBugExample.java +++ b/examples/src/main/java/org/piccolo2d/examples/ActivityMemoryLeakBugExample.java @@ -91,14 +91,17 @@ // empty } - PActivity a = new PActivity(-1) { - /** {@inheritDoc} */ - protected void activityStep(final long elapsedTime) { - System.out.println("cleanup activity"); - terminate(); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + PActivity a = new PActivity(-1) { + protected void activityStep(final long elapsedTime) { + System.out.println("cleanup activity"); + terminate(); + } + }; + layer.getRoot().addActivity(a); } - }; - layer.getRoot().addActivity(a); + }); } }.start(); }