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