Skip to content

Commit 03b25dd

Browse files
committed
Since libgraal MX Bean will be disabled by default, present the libgraal memory tab only if libgraal MX Bean is available
This reverts commit 20a085b.
1 parent e8d4fd5 commit 03b25dd

File tree

2 files changed

+22
-27
lines changed

2 files changed

+22
-27
lines changed

visualvm/graalvm/src/org/graalvm/visualvm/graalvm/libgraal/MemoryModel.java

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import java.io.File;
2828
import java.io.FileInputStream;
2929
import java.io.FileOutputStream;
30-
import java.io.IOException;
3130
import java.io.InputStream;
3231
import java.io.OutputStream;
3332
import java.lang.management.MemoryUsage;
@@ -95,7 +94,6 @@ final class MemoryModel {
9594
private Jvm jvm;
9695
private ObjectName libgraalName;
9796
private MBeanServerConnection connection;
98-
private boolean isAlreadyRegistered;
9997

10098
private int chartCache = -1;
10199

@@ -311,22 +309,13 @@ public void run() {
311309
}
312310
}
313311

314-
private boolean isLibgraalRegistered() throws IOException {
315-
if (!isAlreadyRegistered) {
316-
isAlreadyRegistered = connection.isRegistered(libgraalName);
317-
}
318-
return isAlreadyRegistered;
319-
}
320-
321312
private Object[] getAttributes(String... names) {
322313
try {
323-
Object[] values = new Object[names.length];
324-
if (isLibgraalRegistered()) {
325-
List<Attribute> attrs = connection.getAttributes(libgraalName, names).asList();
326-
327-
for (int i = 0; i < values.length; i++) {
328-
values[i] = attrs.get(i).getValue();
329-
}
314+
List<Attribute> attrs = connection.getAttributes(libgraalName, names).asList();
315+
Object[] values = new Object[attrs.size()];
316+
317+
for (int i = 0; i < values.length; i++) {
318+
values[i] = attrs.get(i).getValue();
330319
}
331320
return values;
332321
} catch (Exception ex) {
@@ -351,18 +340,13 @@ private void updateValues(final long time, Object[] values) {
351340
if (values != null) {
352341
CompositeData usageData = (CompositeData) values[0];
353342
CompositeData peakData = (CompositeData) values[1];
354-
355-
timestamp = time;
356343
if (usageData != null && peakData != null) {
357344
MemoryUsage mem = MemoryUsage.from(usageData);
358345
MemoryUsage peak = MemoryUsage.from(peakData);
359346
heapUsed = mem.getUsed();
360347
heapCapacity = peak.getUsed();
361348
maxHeap = mem.getMax();
362-
} else {
363-
heapUsed = 0;
364-
heapCapacity = 0;
365-
maxHeap = 0;
349+
timestamp = time;
366350
}
367351
}
368352
}

visualvm/graalvm/src/org/graalvm/visualvm/graalvm/libgraal/MemoryViewPluginProvider.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
*/
2525
package org.graalvm.visualvm.graalvm.libgraal;
2626

27+
import java.io.IOException;
2728
import java.lang.management.ManagementFactory;
29+
import javax.management.MBeanServerConnection;
2830
import javax.management.MalformedObjectNameException;
2931
import javax.management.ObjectName;
3032
import org.graalvm.visualvm.application.Application;
@@ -42,7 +44,6 @@
4244
*/
4345
public class MemoryViewPluginProvider extends DataSourceViewPluginProvider<Application> {
4446

45-
private static final String JVMCINativeLibraryFlag = "UseJVMCINativeLibrary"; // NOI18N
4647
static final String LIBGRAAL_HEAP = "Libgraal"; // NOI18N
4748

4849
private final ObjectName libgraalName;
@@ -89,11 +90,21 @@ private static ObjectName getLibgraalName() {
8990
}
9091
}
9192

92-
private boolean isSupported(Application app) {
93+
private static MBeanServerConnection getConnection(Application app) {
9394
JmxModel jmxModel = JmxModelFactory.getJmxModelFor(app);
94-
if (jmxModel != null) {
95-
String val = jmxModel.getFlagValue(JVMCINativeLibraryFlag);
96-
return Boolean.valueOf(val);
95+
if (jmxModel != null && jmxModel.getConnectionState() == JmxModel.ConnectionState.CONNECTED) {
96+
return jmxModel.getMBeanServerConnection();
97+
}
98+
return null;
99+
}
100+
101+
private boolean isSupported(Application app) {
102+
try {
103+
MBeanServerConnection conn = getConnection(app);
104+
if (conn != null) {
105+
return conn.isRegistered(libgraalName);
106+
}
107+
} catch (IOException ex) {
97108
}
98109
return false;
99110
}

0 commit comments

Comments
 (0)