Skip to content

Commit a5bc3ad

Browse files
committed
Merge branch 'master' into graal
2 parents 5a6d7da + 418be4e commit a5bc3ad

File tree

4 files changed

+27
-6
lines changed

4 files changed

+27
-6
lines changed

plugins/jsyntaxpane-lib/external/jsyntaxpane/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<pluginRepository>
2626
<id>jflex</id>
2727
<name>JFlex repository</name>
28-
<url>http://jflex.sourceforge.net/repo/</url>
28+
<url>https://jflex.sourceforge.net/repo/</url>
2929
</pluginRepository>
3030
</pluginRepositories>
3131

visualvm/build-nb-ml.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ if [ -e l10n ]; then
2222
cd l10n
2323
hg pull
2424
else
25-
hg clone http://hg.netbeans.org/releases/l10n/
25+
hg clone https://hg.netbeans.org/releases/l10n/
2626
cd l10n
2727
fi
2828

visualvm/maven-repo.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export MAVEN_CENTRAL_REPO_URL=http://repo1.maven.org/maven2/
1+
export MAVEN_CENTRAL_REPO_URL=https://repo1.maven.org/maven2/
22
export MAVEN_NEXUS_LOCAL_DIR=/tmp/visualvm-nexus
33
export MAVEN_REPO=/tmp/maven-visualvm
44
export MAVEN_REPO_URL=file://$MAVEN_REPO

visualvm/sampler/src/org/graalvm/visualvm/sampler/cpu/ThreadsCPU.java

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import java.lang.management.ManagementFactory;
3030
import java.lang.management.ThreadInfo;
3131
import java.lang.management.ThreadMXBean;
32+
import java.util.logging.Level;
33+
import java.util.logging.Logger;
3234
import javax.management.InstanceNotFoundException;
3335
import javax.management.MBeanException;
3436
import javax.management.MBeanServerConnection;
@@ -42,9 +44,11 @@
4244
*/
4345
public class ThreadsCPU {
4446
private static final ObjectName THREAD_NAME = getThreadName();
47+
private static final Logger LOGGER = Logger.getLogger(ThreadsCPU.class.getName());
4548

4649
private final ThreadMXBean threadBean;
4750
private final MBeanServerConnection connection;
51+
private boolean useBulkOperation = true;
4852

4953
public ThreadsCPU(ThreadMXBean bean, MBeanServerConnection conn) {
5054
threadBean = bean;
@@ -54,9 +58,26 @@ public ThreadsCPU(ThreadMXBean bean, MBeanServerConnection conn) {
5458
public ThreadsCPUInfo getThreadsCPUInfo() throws MBeanException, ReflectionException, IOException, InstanceNotFoundException {
5559
long[] ids = threadBean.getAllThreadIds();
5660
ThreadInfo[] tids = threadBean.getThreadInfo(ids);
57-
Object[] args = new Object[] {ids};
58-
String[] sigs = new String[] {"[J"}; // NOI18N
59-
long[] tinfo = (long[])connection.invoke(THREAD_NAME, "getThreadCpuTime", args, sigs); // NOI18N
61+
long[] tinfo;
62+
63+
if (useBulkOperation) {
64+
Object[] args = new Object[] {ids};
65+
String[] sigs = new String[] {"[J"}; // NOI18N
66+
67+
try {
68+
tinfo = (long[])connection.invoke(THREAD_NAME, "getThreadCpuTime", args, sigs); // NOI18N
69+
} catch (javax.management.ReflectionException ex) {
70+
LOGGER.log(Level.INFO, "getThreadCpuTime failed", ex);
71+
useBulkOperation = false;
72+
return getThreadsCPUInfo();
73+
}
74+
} else {
75+
tinfo = new long[ids.length];
76+
77+
for (int i = 0; i < ids.length; i++) {
78+
tinfo[i] = threadBean.getThreadCpuTime(ids[i]);
79+
}
80+
}
6081
long time = System.currentTimeMillis();
6182

6283
return new ThreadsCPUInfo(time,tids,tinfo);

0 commit comments

Comments
 (0)