Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java,v diff -u -r1.132 -r1.133 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 2 Mar 2015 00:37:56 -0000 1.132 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 2 Mar 2015 10:50:31 -0000 1.133 @@ -394,7 +394,16 @@ @Override public List getTopicThread(Long rootTopicId) { - return getTopicThread(rootTopicId, null, null); + List unsortedThread = messageSeqDao.getCompleteTopic(rootTopicId); + Iterator iter = unsortedThread.iterator(); + MessageSeq msgSeq; + SortedMap map = new TreeMap(new TopicComparator()); + while (iter.hasNext()) { + msgSeq = (MessageSeq) iter.next(); + map.put(msgSeq, msgSeq.getMessage()); + } + return getSortedMessageDTO(map); + } @Override Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java,v diff -u -r1.87 -r1.88 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 2 Mar 2015 00:37:56 -0000 1.87 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 2 Mar 2015 10:51:10 -0000 1.88 @@ -495,17 +495,12 @@ Long pageSize = WebUtil.readLongParam(request, ForumConstants.PAGE_SIZE, true); // get root topic list - log.debug("viewTopic: Getting topic messages "+System.currentTimeMillis()); List msgDtoList = forumService.getTopicThread(rootTopicId, lastMsgSeqId, pageSize); - log.debug("viewTopic: updateMesssageFlag "+System.currentTimeMillis()); updateMesssageFlag(msgDtoList); - log.debug("viewTopic: doneMesssageFlag "+System.currentTimeMillis()); request.setAttribute(ForumConstants.AUTHORING_TOPIC_THREAD, msgDtoList); - // check if we can still make posts in this topic - TODO fix this code. It currently depends on the first message being the topic -// int numOfPosts = forumService.getNumOfPostsByTopic(forumUser.getUserId(), msgDtoList.get(0).getMessage() -// .getUid()); - int numOfPosts = 1; + // check if we can still make posts in this topic + int numOfPosts = forumService.getNumOfPostsByTopic(forumUser.getUserId(), rootTopicId); boolean noMorePosts = forum.getMaximumReply() != 0 && numOfPosts >= forum.getMaximumReply() && !forum.isAllowNewTopic() ? Boolean.TRUE : Boolean.FALSE; request.setAttribute(ForumConstants.ATTR_NO_MORE_POSTS, noMorePosts);