MySQL query for has column did not take database name into account.
This means that a database with multiple Plan databases would provide
wrong results for the Patch system, leading to patch failiure
Affected issues: Fixes#732
Changed the Lang that was being used to replace things on the html, now
some of the Lang is no longer used. (CmdHelpLang, CommandLang, etc)
GenericLang caused page breakage due to wrong replacements, so it is no
longer used for replacement
Affected issues: Fixes#706
WebServer ThreadPoolExecutor was never shutdown, as it was assumed
HTTPServer.shutdown() would perform that.
In extreme cases 250 reloads could lead to a OutOfMemoryException due to
Heap size allocation for threads not being possible.
Change: Shut down ThreadPoolExecutor manually.
Since PluginData objects are more persistent than AnalysisContainer,
objects related to the each analysis can not be freed until the next
analysis has been performed, because a reference was held in each
PluginData object.
Change: set the reference to point to null in a finally block after
getServerData call. AnalysisContainer can now be freed by GC at any time
Affected issues: #685
- static final class variable names in PingCountTimerBukkit
- plugin field hiding protected variable in SpongeTaskSystem
- InspectPageResponse not overriding equals method
Old way:
Pre-render & cache the html for a player page when the player joins,
leaves or switches server
New way:
Render & cache the html when requested. Remove the rendered html from
cache if the player joins, leaves or switches server
This should prevent server from crashing if a bunch of bots join
Impacts #685
Reduced use of CachingSupplier in every DataContainer to reduce the
amount of String variables ending up in heap for a longer period of
time.
Impacts #685