public Object execute(CommandSession session, List<Object> arguments) throws Exception {
Action action = createNewAction();
try {
if (getPreparator().prepare(action, session, arguments)) {
return action.execute(session);
} else {
return null;
}
} finally {
releaseAction(action);