Bukkit/CraftBukkit — pull request #1346 by forairan (2014-02-23 03:26:07+00:00)
Title: [C] Fix BUKKIT-5436 - catch exception in ConversationTracker

**The Issue:**
When ConversationAbandonedListener.conversationAbandoned() is called due to a player disconnecting and an exception is thrown in this method, the server will crash.

**Justification for this PR:**
Exceptions thrown in a ConversationAbandonedListener should **not** crash the server.

**PR Breakdown:**
This PR catches any exceptions in ConversationTracker.abandonAllConversations(), preventing the exception from moving further up the stack into CraftPlayer.disconnect() and above, which would cause a server crash.

**Testing Results and Materials:**
CraftBukkit - https://dl.dropboxusercontent.com/u/20614340/bukkit/conversationcrash/craftbukkit-1.7.2-R0.4-SNAPSHOT.jar
Test plugin - https://dl.dropboxusercontent.com/u/20614340/bukkit/conversationcrash/Test-ConversationCrash.jar (source: https://gist.github.com/forairan/9166315)

Once the plugin is installed, try connecting to the server when running the current release version of CraftBukkit, then disconnecting - the server will crash and become unconnectable. When you connect to the server while running the patched CraftBukkit version, it will still log an exception in the console, but will not crash.

**JIRA Ticket:**
BUKKIT-5436 - https://bukkit.atlassian.net/browse/BUKKIT-5436