Branch for version 1.7.2.
Req [2342293] - Screenshot of battleview. Press Ctrl+T on Windows and Linux, and Command+T for Mac OS in order to take a screenshot of the battleview. The screenshot will be saved in the Robocode folder named "screenshots", and the filename will be a timestamp for when the screenshot was taken.
Merged recent changes from the trunk into the 1.7.2 branch
Changed the synchronization mechanism with the Battle and RobotPeer to use the new java.util.concurrency.locks package with the ReentrantLock and Condition. By using the new conditions, it is now easier to figure out what threads are signaling and waiting for.
Changed the AwtBattleAdaptor so that the outCache is now protected using a dedicated ReentrantLock instead of 'synchronized (snapshot)'. That is, the outCache is now protected independently of the snapshot object, which is more correct.
All Error classes in the robocode.exception package was renamed so their names ends with "Error" instead of "Exception". This way it is very clear that these classes are not Exceptions, but Errors which cannot be stopped by robots. This change was made to follow the Java naming conventions classes inherited from the Error class + warnings given by the FindBugs tool.
Fixed various issues detected with FindBugs in RoboRumble. Among the fixes is assignments to static variables, which is a potential problem when multiple threads are accessing the static variables.
Fixed various issues detected with FindBugs in the installer. These fixes were made to keep FindBugs happy so the warnings don't show up all the time.
Bugfix: RobocodeFileOutputStream.getName() always returned null instead of the filename
The RobotThreadManager was synchronizing on a Boolean, which only have two instances for TRUE and FALSE. Hence, it does not make sense to synchronize on these two individual objects. The Boolean has been replaced by a wrapper class 'Disposal', which uses an internal primitive boolean type.
Security: ClassLoaders must be granted security permissions. Hence, all class loaders are instantiated within a AccessController.doPrivileged() body.
Bugfix: TestFairPlay used an int to store the score.getTotalFirsts() instead of double
Fixed the RobocodeRunner sample application so it does not use the hard coded C:\Robocode path, but instead use the default working directory. This suits as a better example.
Fixed use of static variables in the RobocodeTestBed found by FindBugs.
Fixed the sample robot so it closes its file handles in a finally block. When the robot serves a an example, it better be correct.
Implemented/changed hashCode(), equals() so they are consistent to compareTo(). These 3 methods should all be available, if one of these methods exists on a class, and they should work on the same parameters. This fixes potential problems between Java 5.0 and Java 6 when using these classes in collections.
Fixed various serialization warnings found by FindBugs.
Removal of various/miscellaneous warnings found by FindBugs 
Req [2496661] - Lauch Robocode from .battle (battle specification) and .br (battle record) files.
Bugfix: Robots listed in e.g. the New Battle window was sorted like: 1.1.1, 1.1.10y, 1.1.2, 1.1.10. That is alpha-numerical, but where version numbers with an ending letter like e.g. "1.1.10y", where not placed in the correct order. This bug has been fixed so the robots in the example will be sorted like: 1.1.1, 1.1.2, 1.1.10, 1.1.10y.