Skip to content

Commit eb223ab

Browse files
committed
do not invoke JMX code in AWT
1 parent d33e055 commit eb223ab

File tree

1 file changed

+24
-17
lines changed

1 file changed

+24
-17
lines changed

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

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ private void initialize(Application application) {
284284
if (jvm != null) {
285285
connection = getConnection(application);
286286
if (connection != null) {
287-
updateValues(System.currentTimeMillis());
287+
updateValues(System.currentTimeMillis(), getData());
288288

289289
if (live) {
290290
monitoredDataListener = new MonitoredDataListener() {
@@ -294,9 +294,11 @@ public void monitoredDataEvent(final MonitoredData data) {
294294
long timestamp = System.currentTimeMillis();
295295
final long timestampF = lastTimestamp < timestamp
296296
? lastTimestamp = timestamp : ++lastTimestamp;
297+
final Object[] values = getData();
298+
297299
SwingUtilities.invokeLater(new Runnable() {
298300
public void run() {
299-
updateValues(timestampF);
301+
updateValues(timestampF, values);
300302
fireChange();
301303
}
302304
});
@@ -323,25 +325,30 @@ private Object[] getAttributes(String... names) {
323325
return null;
324326
}
325327

326-
private void updateValues(final long time) {
328+
private Object[] getData() {
327329
if (connection != null) {
328330
Object[] values = getAttributes(USAGE_ATTRIBUTE, PEAK_USAGE_ATTRIBUTE);
329-
if (values != null) {
330-
CompositeData usageData = (CompositeData) values[0];
331-
CompositeData peakData = (CompositeData) values[1];
332-
if (usageData != null && peakData != null) {
333-
MemoryUsage mem = MemoryUsage.from(usageData);
334-
MemoryUsage peak = MemoryUsage.from(peakData);
335-
heapUsed = mem.getUsed();
336-
heapCapacity = peak.getUsed();
337-
maxHeap = mem.getMax();
338-
timestamp = time;
339-
} else {
340-
connection = null;
341-
}
342-
} else {
331+
332+
if (values == null) {
343333
connection = null;
344334
}
335+
return values;
336+
}
337+
return null;
338+
}
339+
340+
private void updateValues(final long time, Object[] values) {
341+
if (values != null) {
342+
CompositeData usageData = (CompositeData) values[0];
343+
CompositeData peakData = (CompositeData) values[1];
344+
if (usageData != null && peakData != null) {
345+
MemoryUsage mem = MemoryUsage.from(usageData);
346+
MemoryUsage peak = MemoryUsage.from(peakData);
347+
heapUsed = mem.getUsed();
348+
heapCapacity = peak.getUsed();
349+
maxHeap = mem.getMax();
350+
timestamp = time;
351+
}
345352
}
346353
}
347354

0 commit comments

Comments
 (0)