Minecraft PluginCatcher mod 2026 download
logo
minecraft mod PluginCatcher

PluginCatcher

Game Version: CB 1.7.9-R0.1
Total Downloads: 7,542
Updated: May 11, 2014
Created: Mar 16, 2013
Download PluginCatcherDownload Earlier Versions

Earlier Versions

Name Size Uploaded Game Version Downloads
v1.7.9 release 19.07 KB May 11, 2014 CB 1.7.9-R0.1 1,861 download PluginCatcher v1.7.9 releaseDownload
v1.7.5 release 19.07 KB Apr 6, 2014 CB 1.7.2-R0.3 396 download PluginCatcher v1.7.5 releaseDownload
v1.7.1 release 19.14 KB Jan 19, 2014 CB 1.7.2-R0.2 384 download PluginCatcher v1.7.1 releaseDownload
v1.7.0 release 20.17 KB Dec 21, 2013 CB 1.7.2-R0.2 334 download PluginCatcher v1.7.0 releaseDownload
v1.6.4 release 18.62 KB Sep 28, 2013 CB 1.6.4-R1.0 809 download PluginCatcher v1.6.4 releaseDownload
v1.6.2 release 18.62 KB Jul 9, 2013 1.6.2 825 download PluginCatcher v1.6.2 releaseDownload
v1.6.0 release 18.62 KB Jul 4, 2013 1.6.1 602 download PluginCatcher v1.6.0 releaseDownload
v1.5.2.1 release 18.64 KB Jun 7, 2013 CB 1.5.2-R1.0 818 download PluginCatcher v1.5.2.1 releaseDownload
v1.5.2 release 18.35 KB May 5, 2013 CB 1.5.2-R0.1 750 download PluginCatcher v1.5.2 releaseDownload
v1.5 release 18.35 KB Apr 20, 2013 CB 1.5.1-R0.2 310 download PluginCatcher v1.5 releaseDownload
v1.4.1 release 18.26 KB Apr 6, 2013 CB 1.5.1-R0.1 243 download PluginCatcher v1.4.1 releaseDownload
v1.4 release 18.26 KB Mar 18, 2013 1.5.0 210 download PluginCatcher v1.4 releaseDownload

Description

Share this:

Note: This plugin is not a magic solution to problems.

PluginCatcher

PluginCatcher is a development tool for detecting potential plugin-based causes of server crashes. It is a complex plugin which will cause a slight performance hit on your server while it is active, in order to detect risky behavior by plugins. Currently it primarily detects situations that can lead to ConcurrentModificationException. It is important to note that this plugin cannot detect all scenarios leading to such crashes, but can certainly catch a large number.

Server Owners

Unless you know exactly what this does and why you're here, turn around now. Or contact mbaxter with your crash reports and he'll tell you if this will work.

Developers

Hey, you! Want to detect potential causes of CMEs in your plugins? Awesome! Let's get to work

What can cause CMEs?

The Minecraft server handles nearly all functionality on one thread, what we'll call the main thread. As such, most of its methods (and through that, most Bukkit API) are not designed to handle calls from other threads. Asynchronous calls made while the server is iterating or otherwise interacting with internal Collections which are not thread-safe have the potential to cause a CME. A big place where this comes up is plugin developers calling Bukkit API methods from the AsyncPlayerChatEvent.

Commands

There aren't any! Hah!

Permissions

None! Gotcha!

Configuration

There is one important config value, called onlydangerous. By default true, this setting determines what types of issues are reported. The default setting will only report potential server-killing CME causers. If you set it to false, it will do that plus detect other potentially bad async calls that could cause other issues on your own async thread.

The other config value is meow. If true, cat!

Data Output Location

The plugin outputs all of this info to its plugin folder in a file named async.log. It will log one line to console when it detects issues and logs them. If it stays empty, there hasn't been a potential problem yet. Nice work!

What does it output?

PluginCatcher attempts to figure out what plugin made the risky call by checking the stacktrace lines against plugins' loaded classes. If it finds a match (or matches) it records that plugin and version to the log. Otherwise it reports it as unknown source. Plugin guessing is presented purely for convenience. Never assume a listed plugin is the definite source.

Next, it prints the stacktrace, so you can see what plugin made the call, where it was made, etc. This is where you fix your code to not make that call async.

Comments

Add a comment