Allow to get a forum from the ForumManager within a transaction

This commit is contained in:
Torsten Grote
2016-04-27 20:18:56 -03:00
parent 5a84e0fe5c
commit d42b49afc2
2 changed files with 17 additions and 8 deletions

View File

@@ -31,6 +31,9 @@ public interface ForumManager {
/** Returns the forum with the given ID. */
Forum getForum(GroupId g) throws DbException;
/** Returns the forum with the given ID. */
Forum getForum(Transaction txn, GroupId g) throws DbException;
/** Returns all forums to which the user subscribes. */
Collection<Forum> getForums() throws DbException;

View File

@@ -141,15 +141,21 @@ class ForumManagerImpl implements ForumManager {
@Override
public Forum getForum(GroupId g) throws DbException {
Forum forum;
Transaction txn = db.startTransaction(true);
try {
Group group;
Transaction txn = db.startTransaction(true);
try {
group = db.getGroup(txn, g);
txn.setComplete();
} finally {
db.endTransaction(txn);
}
forum = getForum(txn, g);
txn.setComplete();
} finally {
db.endTransaction(txn);
}
return forum;
}
@Override
public Forum getForum(Transaction txn, GroupId g) throws DbException {
try {
Group group = db.getGroup(txn, g);
return parseForum(group);
} catch (FormatException e) {
throw new DbException(e);