-
Bug
-
Resolution: Done
-
Major
-
None
-
None
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.
- clones
-
JBEAP-25545 (8.0.z) Memory leak in MetricCollector
- Closed