--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java Tue May 21 00:52:04 2019 -0700
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java Tue May 21 10:34:57 2019 +0200
@@ -536,7 +536,8 @@
// Not an address
boolean all = name.equals("-a");
Threads threads = VM.getVM().getThreads();
- for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+ for (int i = 0; i < threads.getNumberOfThreads(); i++) {
+ JavaThread thread = threads.getJavaThreadAt(i);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
thread.printThreadIDOn(new PrintStream(bos));
if (all || bos.toString().equals(name)) {
@@ -898,7 +899,8 @@
String name = t.nextToken();
boolean all = name.equals("-a");
Threads threads = VM.getVM().getThreads();
- for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+ for (int i = 0; i < threads.getNumberOfThreads(); i++) {
+ JavaThread thread = threads.getJavaThreadAt(i);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
thread.printThreadIDOn(new PrintStream(bos));
if (all || bos.toString().equals(name)) {
@@ -927,7 +929,8 @@
String name = t.nextToken();
boolean all = name.equals("-a");
Threads threads = VM.getVM().getThreads();
- for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+ for (int i = 0; i < threads.getNumberOfThreads(); i++) {
+ JavaThread thread = threads.getJavaThreadAt(i);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
thread.printThreadIDOn(new PrintStream(bos));
if (all || bos.toString().equals(name)) {
@@ -954,7 +957,8 @@
String name = t.nextToken();
boolean all = name.equals("-a");
Threads threads = VM.getVM().getThreads();
- for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+ for (int i = 0; i < threads.getNumberOfThreads(); i++) {
+ JavaThread thread = threads.getJavaThreadAt(i);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
thread.printThreadIDOn(new PrintStream(bos));
if (all || bos.toString().equals(name)) {
@@ -1437,7 +1441,8 @@
final long stride = VM.getVM().getAddressSize();
if (type.equals("threads")) {
Threads threads = VM.getVM().getThreads();
- for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+ for (int i = 0; i < threads.getNumberOfThreads(); i++) {
+ JavaThread thread = threads.getJavaThreadAt(i);
Address base = thread.getStackBase();
Address end = thread.getLastJavaSP();
if (end == null) continue;
@@ -1561,7 +1566,8 @@
String name = t.nextToken();
Threads threads = VM.getVM().getThreads();
boolean all = name.equals("-a");
- for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+ for (int i = 0; i < threads.getNumberOfThreads(); i++) {
+ JavaThread thread = threads.getJavaThreadAt(i);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
thread.printThreadIDOn(new PrintStream(bos));
if (all || bos.toString().equals(name)) {
@@ -1590,7 +1596,8 @@
String name = t.nextToken();
Threads threads = VM.getVM().getThreads();
boolean all = name.equals("-a");
- for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+ for (int i = 0; i < threads.getNumberOfThreads(); i++) {
+ JavaThread thread = threads.getJavaThreadAt(i);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
thread.printThreadIDOn(new PrintStream(bos));
if (all || bos.toString().equals(name)) {
@@ -1613,7 +1620,8 @@
usage();
} else {
Threads threads = VM.getVM().getThreads();
- for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+ for (int i = 0; i < threads.getNumberOfThreads(); i++) {
+ JavaThread thread = threads.getJavaThreadAt(i);
thread.printThreadIDOn(out);
out.println(" " + thread.getThreadName());
thread.printInfoOn(out);
@@ -1631,7 +1639,8 @@
ArrayList nmethods = new ArrayList();
Threads threads = VM.getVM().getThreads();
HTMLGenerator gen = new HTMLGenerator(false);
- for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+ for (int i = 0; i < threads.getNumberOfThreads(); i++) {
+ JavaThread thread = threads.getJavaThreadAt(i);
try {
for (JavaVFrame vf = thread.getLastJavaVFrameDbg(); vf != null; vf = vf.javaSender()) {
if (vf instanceof CompiledVFrame) {