Pit report:
Total - 29% line coverage & 22% mutation coverage (1236/4253 & 436/1982)
The new processing - 75% & 77%
One class to test before testing cache
After that tests on the server and merge.
Pit Report:
Total - Line coverage: 1157/4258 (27%) | Mutation: 399/1978 (20%)
New test areas:
- The new processing system: 55% and 51%
- Database: 53% and 45%
New processing system pools event information and processes it every 60
seconds.
Testing & Timings required
Fix#61#58#56#57#59
- Fixed GamemodeTimesHandler giving NPE if a gamemode is null.
- Fixed ArrayOutOfBounds if sessions is empty.
- Fixed randomly caused NPE when transforming sessions to length values
(also improved it)
Demographics tab not yet finished.
- Fixed new bugs found while creating tests with PlanDebug #47
- Moved manage things around to remove copy-paste code. New ManageUtils
class
- Made analyze more flexible, now allows analysis of any abstract
Database class' data.
- Moved RecentPlayerButtons creation to new class
UserData is now copied to avoid null pointer exception after some data
is removed from cache while analysis is running.
Additionally added access and stopAccessing to analysis in case the copy
constructor is somehow flawed, to prevent the data from getting cleared
while analysis is being run.
Also added clear prevention to inspect cache if the data is accessed.
- Changed "Plan has run into error..." to include error type
- More attempts to fix#26
- Null checks for uuid
- Now not saving userdata when uuid = null
- If uuid = null, data will not be fetched.
Removed Charts4j from the plugin, and moved to Chart.js javascript graph
rendering library - this almost halved the jar size, and analysis might
have gotten a tiny performance boost (Graph rendering delegated to
browsers).
- The new graphs are more accurate, and you can hover over the graphs to
view more in-depth detail about the data.
- This update allows possible multiple lines in one graph in future
updates.
Updated Phrase & Html to include every message that was not yet
available. Updated locale files will be uploaded to github As soon as
possible.
Before they are uploaded using the config locale setting will
malfunction.
"Factions land is reported incorrectly. One of my factions (for OPs) has
only one member in testing, so power 10, but 71 chunks (OPs can claim
more chunks than power allows). Plan reports land = 10. How does Plan
determine faction holdings?"
Yeah fixed that.
- Fix for #17:
Schema now updated properly
- Fix for #18
Hooks to other plugins no longer cause NPE if plugin is not found.
(Added another constructor that sets isEnabled to false)
- Fix for #19
Removed debug message and replaced with continue;
- Fix for #20
Made new player creation async
Made inspect & search commands async
- Better error handling & logging. Implemented for SQLDB.java - other
catch clauses yet to be changed.
This was done mainly to be able to run Debugger tests on it.
Bugfixes:
- DB Auto-Commit bug #12 fixed
- New DB creation was no-longer execption free after adding throws
clauses, fixed that.
Bugs:
- SQLException: The prepared statement has been finalized when closing
database on disable, cause yet unknown
- "___ added to cache" called 5-6 times when player joins
Untested:
- Events
- SessionData
- KillData
- Does DB save everything or just plan_users
UnImplemented:
- Location adding in baches
- Location data getting seperately for analysis, not saved to UserData
to speed up get.
- http://www.kryogenix.org/code/browser/sorttable/
- Player data table
- Player session length
- Player online activity graph, week
- PlanLite features
- Changed the way UserData is cached so that it is cached asyncronously.
#16
This was quite complex and I might have made mistakes so I will have to
test it properly.
- Location gathering temporarily disabled, will not be disabled in 2.6.0
when it is finished.
Bugs:
- NullPointerException when data is cleared from cache.
- Might be the reason that kick was not saved when player was kicked.
- DB in auto-commit mode for some reason. Too tired to figure.
Untested:
- All Events
- Manage commands (might get in a infinite loop)
- Error causing UserData when calling a DBCallableProcessor (will be
tested with Debugger)
- SessionData
- KillData
UnImplemented:
- Location adding in baches
- http://www.kryogenix.org/code/browser/sorttable/
- Player data table
- Player session length
- Player online activity graph, week
- PlanLite features