An unexpected exception occurred with loading clustering plugin

Description

user provided logs of Openfire 4.2.1 attempting to load old clustering plugin over and over again every 20 seconds without stopping

2017.12.08 12:17:23 ERROR [pool-4-thread-1]: org.jivesoftware.openfire.container.PluginMonitor - An unexpected exception occurred: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Plugin could not be located: clustering at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask.run(PluginMonitor.java:310) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException: Plugin could not be located: clustering at org.jivesoftware.util.LocaleUtils.getLocalizedString(LocaleUtils.java:484) at org.jivesoftware.util.LocaleUtils.getLocalizedString(LocaleUtils.java:440) at org.jivesoftware.util.LocaleUtils.getLocalizedString(LocaleUtils.java:424) at org.jivesoftware.admin.AdminConsole.getAdminText(AdminConsole.java:207) at org.jivesoftware.openfire.container.PluginMetadataHelper.getName(PluginMetadataHelper.java:149) at org.jivesoftware.openfire.container.PluginMetadata.getInstance(PluginMetadata.java:103) at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:403) at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:276) at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:264) at java.util.concurrent.FutureTask.run(FutureTask.java:266) ... 3 more

Environment

None

Activity

Greg Thomas June 8, 2018 at 12:59 PM
Edited

FWIW, I'm seeing something very similar to this very intermittently with Openfire 4.2.3 on Windows. It seems to happen either more often, or perhaps only ever, when a new plugin has been installed and needs unpacking. My suspicion is that, in my case at least, the AV on the machine in question is preventing access from the Openfire process to a newly created file while it's still being AV scanned, causing this issue.  If it happened more reliably I'd have an attempt at trying to diagnose it better!

Greg

2018.06.08 12:44:38 ERROR [pool-4-thread-1]: org.jivesoftware.openfire.container.PluginMonitor - An unexpected exception occurred: java.util.concurrent.ExecutionException: java.lang.NullPointerException at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask.run(PluginMonitor.java:310) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException at java.util.TreeMap.rotateRight(TreeMap.java:2250) at java.util.TreeMap.fixAfterInsertion(TreeMap.java:2287) at java.util.TreeMap.put(TreeMap.java:582) at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:404) at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:276) at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:264) at java.util.concurrent.FutureTask.run(FutureTask.java:266) ... 3 more

Kyoshiro March 26, 2018 at 1:29 PM

In fact we weren't using that plugin nor clustering anymore, and it did not show up in the plugin list on the admin console.
It must have been an aborted attempt for clustering.

Anyways, the server wouldn't properly startup until hazelcast directory and jar file were actually removed from /var/lib/openfire/plugins directory.

After removing, clients were able to connect to the server.

Daryl Herzmann March 26, 2018 at 1:16 PM

@Kyoshiro, thanks for chiming in.  To clarify, if you update the plugin via the admin console, this issue goes away and clustering works fine?

Kyoshiro March 26, 2018 at 10:39 AM

I had a similar issue after updating from 4.1.6 to 4.2.3 today, using .deb Debian package.

The plugin directory contained an obsolete plugin called hazelcast and tried to load it in a loop before starting listeners on 5223 port.
Admin console was working properly though.

2018.03.26 09:44:20 ERROR [pool-4-thread-1]: org.jivesoftware.openfire.container.PluginMonitor - An unexpected exception occurred: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Plugin could not be located: hazelcast at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask.run(PluginMonitor.java:310) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException: Plugin could not be located: hazelcast at org.jivesoftware.util.LocaleUtils.getLocalizedString(LocaleUtils.java:484) at org.jivesoftware.util.LocaleUtils.getLocalizedString(LocaleUtils.java:440) at org.jivesoftware.util.LocaleUtils.getLocalizedString(LocaleUtils.java:424) at org.jivesoftware.admin.AdminConsole.getAdminText(AdminConsole.java:207) at org.jivesoftware.openfire.container.PluginMetadataHelper.getName(PluginMetadataHelper.java:149) at org.jivesoftware.openfire.container.PluginMetadata.getInstance(PluginMetadata.java:103) at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:403) at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:276) at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:264) at java.util.concurrent.FutureTask.run(FutureTask.java:266) ... 3 more

After removing / moving away /var/lib/openfire/plugins/{hazelcast,hazelcast.jar}, server started properly.

Kind regards.

Guus der Kinderen December 12, 2017 at 3:54 PM

I'm guessing that this problem is caused by a plugin directory (in which the plugin was previously expanded) that still exists, but has no, or partial, content. Perhaps a failed uninstallation, caused by objects still being referenced in memory, preventing from libraries being deleted, or file-permission problems.

Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

Created December 9, 2017 at 3:22 AM
Updated October 28, 2020 at 1:26 PM
Resolved November 26, 2018 at 3:48 PM