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. */ /** Returns the forum with the given ID. */
Forum getForum(GroupId g) throws DbException; 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. */ /** Returns all forums to which the user subscribes. */
Collection<Forum> getForums() throws DbException; Collection<Forum> getForums() throws DbException;

View File

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