I've started working on an AdvancedRobot, and I find that sometimes the call to execute() just doesn't return. I've got an out.println() right after that which never prints. So far I haven't found a way to trigger it to happen. Other robots in the battle continue executing. onSkippedTurn() isn't being called. What I've asked it to do on the turn when it hangs is sometimes as simple as just a setTurnGunRight(20). Sometimes, when the next round begins, I see this printed:
java.lang.ThreadDeath
at java.lang.Thread.stop(Thread.java:758)
at net.sf.robocode.host.security.RobotThreadManager.stop(RobotThreadManager.java:189)
at net.sf.robocode.host.security.RobotThreadManager.stopSteps(RobotThreadManager.java:171)
at net.sf.robocode.host.security.RobotThreadManager.forceStop(RobotThreadManager.java:142)
at net.sf.robocode.host.security.RobotThreadManager.waitForStop(RobotThreadManager.java:127)
at net.sf.robocode.host.proxies.HostingRobotProxy.waitForStopThread(HostingRobotProxy.java:151)
at net.sf.robocode.host.proxies.BasicRobotProxy.waitForStopThread(BasicRobotProxy.java:43)
at net.sf.robocode.battle.peer.RobotPeer.waitForStop(RobotPeer.java:1670)
at net.sf.robocode.battle.Battle.finalizeRound(Battle.java:386)
at net.sf.robocode.battle.BaseBattle.run(BaseBattle.java:206)
at java.lang.Thread.run(Thread.java:662)
SYSTEM: This robot has been stopped. No score will be generated.
I'm not starting any threads of my own, or doing any file/network I/O. Really it's nothing but some trig, not that complicated.