From e8aaf581a4a867bb2dff38c662055b6ce1fe60f4 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 12 May 2015 16:18:43 +0200
Subject: [PATCH] no-jira: fix update of threads states in the thread infos
 list

---
 .../admin/sysinfo/manager/ThreadInfosManager.java  | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/olat/admin/sysinfo/manager/ThreadInfosManager.java b/src/main/java/org/olat/admin/sysinfo/manager/ThreadInfosManager.java
index 6a2073f20be..6915c5a8d60 100644
--- a/src/main/java/org/olat/admin/sysinfo/manager/ThreadInfosManager.java
+++ b/src/main/java/org/olat/admin/sysinfo/manager/ThreadInfosManager.java
@@ -73,24 +73,26 @@ public class ThreadInfosManager implements Sampler {
     	updateTimeSeries();
 	}
 
-
 	private void updateTimeSeries() {
 		ThreadMXBean threadProxy = ManagementFactory.getThreadMXBean();
 		RuntimeMXBean runtimeProxy  = ManagementFactory.getRuntimeMXBean();
 		ThreadInfo tis[] = threadProxy.dumpAllThreads(false, false);
 
 		List<String> currentThreadNames = new ArrayList<String>();
-		
 		Set<Long> currentThreadIds = new HashSet<Long>();
 		for (ThreadInfo ti : tis) {
-			if (!threadMap.containsKey(ti.getThreadId())) {
+			Long threadId = new Long(ti.getThreadId());
+			if (threadMap.containsKey(threadId)) {
+				ThreadView threadVO = threadMap.get(threadId);
+				threadVO.setState(ti.getThreadState());
+			} else {
 				ThreadView threadVO = new ThreadView();
-				threadVO.setId(ti.getThreadId());
+				threadVO.setId(threadId);
 				threadVO.setName(ti.getThreadName());
 				threadVO.setState(ti.getThreadState());
-				threadMap.put(ti.getThreadId(), threadVO);
+				threadMap.put(threadId, threadVO);
 			}
-			currentThreadIds.add(ti.getThreadId());
+			currentThreadIds.add(threadId);
 		}
 		WorkThreadInformations.currentThreadNames(currentThreadNames);
 		
-- 
GitLab