From bdd19f7be653edb553afb86fc3015a8fb6ae8522 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Wed, 16 Dec 2020 08:16:22 +0100 Subject: [PATCH] OO-5152: reload thread before changeing the status --- .../modules/fo/ui/MessageListController.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/olat/modules/fo/ui/MessageListController.java b/src/main/java/org/olat/modules/fo/ui/MessageListController.java index a6b4e73bac5..a713e52162d 100644 --- a/src/main/java/org/olat/modules/fo/ui/MessageListController.java +++ b/src/main/java/org/olat/modules/fo/ui/MessageListController.java @@ -31,7 +31,7 @@ import javax.servlet.http.HttpServletRequest; import org.olat.basesecurity.BaseSecurityModule; import org.olat.core.commons.fullWebApp.popup.BaseFullWebappPopupLayoutFactory; -import org.olat.core.commons.persistence.DBFactory; +import org.olat.core.commons.persistence.DB; import org.olat.core.commons.services.mark.Mark; import org.olat.core.commons.services.mark.MarkResourceStat; import org.olat.core.commons.services.mark.MarkingService; @@ -168,6 +168,8 @@ public class MessageListController extends BasicController implements GenericEve private LoadMode loadMode; private List<MessageView> backupViews; + @Autowired + private DB dbInstance; @Autowired private UserManager userManager; @Autowired @@ -1143,11 +1145,13 @@ public class MessageListController extends BasicController implements GenericEve } private void doToogleSticky() { + thread = forumManager.getMessageById(thread.getKey()); + Status status = Status.getStatus(thread.getStatusCode()); status.setSticky(!status.isSticky()); thread.setStatusCode(Status.getStatusCode(status)); thread = forumManager.updateMessage(thread, false); - DBFactory.getInstance().commit(); + dbInstance.commit(); stickyButton.setVisible(!status.isSticky() && foCallback.mayEditMessageAsModerator()); removeStickyButton.setVisible(status.isSticky() && foCallback.mayEditMessageAsModerator()); @@ -1171,7 +1175,7 @@ public class MessageListController extends BasicController implements GenericEve status.setClosed(true); thread.setStatusCode(Status.getStatusCode(status)); thread = forumManager.updateMessage(thread, false); - DBFactory.getInstance().commit();// before sending async event + dbInstance.commit();// before sending async event closeThreadButton.setVisible(false); openThreadButton.setVisible(!guestOnly); @@ -1190,7 +1194,7 @@ public class MessageListController extends BasicController implements GenericEve status.setClosed(false); thread.setStatusCode(Status.getStatusCode(status)); thread = forumManager.updateMessage(thread, true); - DBFactory.getInstance().commit();// before sending async event + dbInstance.commit();// before sending async event closeThreadButton.setVisible(!guestOnly); openThreadButton.setVisible(false); @@ -1215,7 +1219,7 @@ public class MessageListController extends BasicController implements GenericEve status.setHidden(true); thread.setStatusCode(Status.getStatusCode(status)); thread = forumManager.updateMessage(thread, false); - DBFactory.getInstance().commit();// before sending async event + dbInstance.commit();// before sending async event hideThreadButton.setVisible(false); showThreadButton.setVisible(!guestOnly); @@ -1240,7 +1244,7 @@ public class MessageListController extends BasicController implements GenericEve status.setHidden(false); thread.setStatusCode(Status.getStatusCode(status)); thread = forumManager.updateMessage(thread, true); - DBFactory.getInstance().commit();// before sending async event + dbInstance.commit();// before sending async event hideThreadButton.setVisible(!guestOnly); showThreadButton.setVisible(false); @@ -1459,7 +1463,7 @@ public class MessageListController extends BasicController implements GenericEve Message parentMessage = forumManager.getMessageById(parentMessageKey); message = forumManager.moveMessage(message, parentMessage); markRead(message); - DBFactory.getInstance().commit();//commit before sending event + dbInstance.commit();//commit before sending event ThreadLocalUserActivityLogger.log(ForumLoggingAction.FORUM_MESSAGE_MOVE, getClass(), LoggingResourceable.wrap(message)); Long threadKey = parentMessage.getThreadtop() == null ? parentMessage.getKey() : parentMessage.getThreadtop().getKey(); -- GitLab