--- a/jdk/src/java.management/share/classes/sun/management/ThreadImpl.java Fri Apr 03 13:46:22 2015 -0700
+++ b/jdk/src/java.management/share/classes/sun/management/ThreadImpl.java Fri Apr 03 15:39:38 2015 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -165,6 +165,10 @@
"Invalid maxDepth parameter: " + maxDepth);
}
+ // ids has been verified to be non-null
+ // an empty array of ids should return an empty array of ThreadInfos
+ if (ids.length == 0) return new ThreadInfo[0];
+
Util.checkMonitorAccess();
ThreadInfo[] infos = new ThreadInfo[ids.length]; // nulls
@@ -436,6 +440,10 @@
boolean lockedMonitors,
boolean lockedSynchronizers) {
verifyThreadIds(ids);
+ // ids has been verified to be non-null
+ // an empty array of ids should return an empty array of ThreadInfos
+ if (ids.length == 0) return new ThreadInfo[0];
+
verifyDumpThreads(lockedMonitors, lockedSynchronizers);
return dumpThreads0(ids, lockedMonitors, lockedSynchronizers);
}