diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java index bb3abd8cc..36534ed24 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java @@ -193,15 +193,23 @@ public class ResourceLoadController implements Composer { addNameFilterListener(); } - private void addNameFilterListener() { - resourcesLoadPanel.addNameFilterListener(new IPaginationFilterChangedListener() { + /* + * This object is stored in an attribute to keep one reference to it, so the + * garbage collector doesn't get rid of it. It's necessary because it is stored + * by ResourcesLoadPanel using weak references. + */ + private IPaginationFilterChangedListener keepAlivePaginationListener = + new IPaginationFilterChangedListener() { @Override public void filterChanged(int initialPosition) { resourceLoadModel.setPageFilterPosition(initialPosition); reload(currentFilterByResources); addSchedulingScreenListeners(); } - }); + }; + + private void addNameFilterListener() { + resourcesLoadPanel.addNameFilterListener(keepAlivePaginationListener); } private void addSchedulingScreenListeners() {