Changed Networking.java class to interact better with child implementations
Large overhaul of exception handling and handling/closing of threads to fix threads not closing correctly and other exceptions
More testing added and slight code cleanup
All basic unit testing is completed (everything except catch blocks of exceptions)
More updates to Networking.java and added Timing.java class for real time timing functions
More debugging/updates
More debugging/updates, removed irrelevant tests after cleanup from last commit
Last commit before changing SocketThread.run (boolean) to SocketThread.state (int)
Changed SocketThread.run (boolean) to SocketThread.run (int). To be used as a state variable with more than 2 states
Added MessageQueue + cleaned up disconnection process and thread termination
Fixed various threading issues by changing shared variables to volatile. Also fixed and completed Javadoc for all current classes bringing the Javadoc up to date.
Added some overloaded versions of Networking.java functions. Changed action parsing to use ASCII 31 instead of '\'. Changed Game.handleAction to be a public method.
Added tests for encoding, sending, parsing and actioning an action string. Further cleanup to code.
Added synchronized keyword to any functions that edited any variables shared across threads to help ensure that there are no errors between threads.
Added customNetwork1 abstract function. I plan to add a set of customNetwork# abstract functions that can be overridden by extensions of the networking base class to handle implementation specific network actions passed to the handleNetworkAction private method.
Resolved all current concurrency bugs. No more random null pointer/ concurrentModificationException failures in unit tests due to issues with threading and synchronization.
Added static finals for states of each class. Changed checks to use the static final instead of the actual constant barring messageQueue.run() - while loop which is having issues
Updated Javadoc
Updated Javadoc for tests and cleaned up some code
Massive Javadoc updates to tests and streamlining of tests to stop them waiting for a set period of time and instead waiting until the specific task they need is complete to shave as much time off testing as possible. Added a handful of extra tests to test specific functions.