-
Bug
-
Resolution: Done
-
Major
-
7.4.13.GA
-
False
-
None
-
False
-
-
-
-
-
-
-
The MetricCollector#collectResourceMetrics() method registers a PropertyChangeListener:
PropertyChangeListener listener = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if (ControlledProcessState.State.RUNNING == evt.getNewValue()) { registration.register(); } else if (ControlledProcessState.State.STOPPING == evt.getNewValue()) { // Unregister so if this is a reload they won't still be around in a static cache in MetricsRegistry // and cause problems when the server is starting registration.unregister(); processStateNotifier.removePropertyChangeListener(this); } } }; this.processStateNotifier.addPropertyChangeListener(listener);
This listener is never removed when related DeploymentMetricService is stopped, leading to a memory leak - each application redeployment is creating additional instance of the listener and the MetricRegistration, which are never cleared.
See JBEAP-25513 for reproduction steps.
- blocks
-
JBEAP-25573 (7.4.z) Memory leak on app redeploy
- Closed
- clones
-
JBEAP-25545 (8.0.z) Memory leak in MetricCollector
- Closed