igniterealtime/openfire-monitoring-plugin

Remove references to Statistics of unloaded plugins

guusdk opened this issue · 1 comments

The monitoring plugin displays data that is collected by implementations of org.jivesoftware.openfire.stats.Statistic. This data is mainly used to populate RRD databases and display graphs.

When a Statistic instance is provided by another plugin, it can disappear, when that plugin gets unloaded (or reloaded).

The Monitoring plugin keeps a reference to a Statistic instance indefinitely. It should release the reference if the instance was provided by a plugin that is being unloaded. Failing to do so will prevent that plugin's classloader from being removed. This keeps various entities that should be removed available, with various (undesired) side-effects: one of which is that the graphs shown by the Monitoring plugin for that particular plugin fail to show new data.

A work-around for the issue is restarting Openfire after a plugin that provides statistics is reloaded or upgraded in Openfire.