try {
board = getBoardByName(name);
}
catch(NoSuchBoardException e) {
PersistentTaskManager tm = mFreetalk.getTaskManager();
synchronized(tm) {
synchronized(Persistent.transactionLock(db)) {
try {
board = new Board(name, description, false);
board.initializeTransient(mFreetalk);
board.storeWithoutCommit();
if(logDEBUG) Logger.debug(this, "Created board " + name);
board.checkedCommit(this);
tm.storeTaskWithoutCommit(new NewBoardTask(board));
}
catch(RuntimeException ex) {
Persistent.checkedRollbackAndThrow(db, this, ex);
throw ex; // Satisfy the compiler
}