Skip to content

Commit 643c5f5

Browse files
committed
Sometimes thread info is null
1 parent 511e619 commit 643c5f5

File tree

1 file changed

+30
-34
lines changed

1 file changed

+30
-34
lines changed

js-multi-tool/src/main/java/io/nats/jsmulti/shared/ProfileStats.java

Lines changed: 30 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,48 +17,42 @@
1717
import io.nats.client.support.JsonValueUtils;
1818

1919
import java.io.PrintStream;
20-
import java.lang.management.ManagementFactory;
21-
import java.lang.management.MemoryMXBean;
22-
import java.lang.management.MemoryUsage;
23-
import java.lang.management.ThreadMXBean;
20+
import java.lang.management.*;
2421
import java.util.ArrayList;
2522
import java.util.List;
2623
import java.util.Map;
2724

2825
import static io.nats.jsmulti.shared.Utils.makeId;
2926

3027
public class ProfileStats {
31-
private static final int VERSION = 1;
28+
public static final int VERSION = 1;
3229

33-
private final int version;
34-
private final String id;
35-
private String action;
36-
private String contextId;
30+
public final int version;
31+
public final String id;
32+
public String action;
33+
public String contextId;
3734

38-
private long maxMemory;
39-
private long allocatedMemory;
40-
private long freeMemory;
41-
private long heapInit;
42-
private long heapUsed;
43-
private long heapCommitted;
44-
private long heapMax;
45-
private long nonHeapInit;
46-
private long nonHeapUsed;
47-
private long nonHeapCommitted;
48-
private long nonHeapMax;
49-
private int threadCount;
50-
private final List<String> deadThreads;
51-
private final List<String> liveThreads;
35+
public final long maxMemory;
36+
public final long allocatedMemory;
37+
public final long freeMemory;
38+
public final long heapInit;
39+
public final long heapUsed;
40+
public final long heapCommitted;
41+
public final long heapMax;
42+
public final long nonHeapInit;
43+
public final long nonHeapUsed;
44+
public final long nonHeapCommitted;
45+
public final long nonHeapMax;
46+
public int threadCount;
47+
public final List<String> deadThreads;
48+
public final List<String> liveThreads;
5249

53-
private ProfileStats() {
50+
public ProfileStats(String contextId, String action) {
5451
version = VERSION;
5552
id = makeId();
5653
deadThreads = new ArrayList<>();
5754
liveThreads = new ArrayList<>();
58-
}
5955

60-
public ProfileStats(String contextId, String action) {
61-
this();
6256
this.action = action;
6357
this.contextId = contextId;
6458

@@ -87,12 +81,15 @@ public ProfileStats(String contextId, String action) {
8781
deadThreadIds = new long[0];
8882
}
8983
for (long id : threadBean.getAllThreadIds()) {
90-
String text = "<" + id + "> " + threadBean.getThreadInfo(id).getThreadName();
91-
if (isAlive(id, deadThreadIds)) {
92-
liveThreads.add(text);
93-
}
94-
else {
95-
deadThreads.add(text);
84+
ThreadInfo ti = threadBean.getThreadInfo(id);
85+
if (ti != null) {
86+
String text = "<" + id + "> " + ti.getThreadName();
87+
if (isAlive(id, deadThreadIds)) {
88+
liveThreads.add(text);
89+
}
90+
else {
91+
deadThreads.add(text);
92+
}
9693
}
9794
}
9895
}
@@ -127,7 +124,6 @@ public Map<String, JsonValue> toJsonValueMap() {
127124
for (String s : liveThreads) {
128125
liveBuilder.add(s);
129126
}
130-
131127
return JsonValueUtils.mapBuilder()
132128
.put("version", version)
133129
.put("id", id)

0 commit comments

Comments
 (0)