public void run() { try { lock.lock(); if (activated == false) { return; } try { if (mode == MSG_CMD_TYPE_GOTO) { gotoUpdate(); } else if (mode == MSG_CMD_TYPE_FOLLOW) { followUpdate(); } else if (mode == MSG_CMD_TYPE_STOP) { } else { Log.error("BaseBehavior.run: invalid mode"); } } catch (Exception e) { Log.exception("BaseBehavior.run caught exception raised during run for mode = " + mode, e); throw new RuntimeException(e); } } finally { lock.unlock(); } }