Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
JDK 17 jdk.management.jmod - Management Module
JDK 17 jdk.management.jmod is the JMOD file for JDK 17 Management module.
JDK 17 Management module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\jdk.management.jmod.
JDK 17 Management module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Management module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\jdk.management.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ com/sun/management/internal/GcInfoCompositeData.java
/*
* Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package com.sun.management.internal;
import java.lang.management.MemoryUsage;
import java.lang.reflect.Method;
import java.lang.reflect.Field;
import java.util.Map;
import java.io.InvalidObjectException;
import javax.management.openmbean.CompositeType;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.CompositeDataSupport;
import javax.management.openmbean.TabularData;
import javax.management.openmbean.SimpleType;
import javax.management.openmbean.OpenType;
import javax.management.openmbean.OpenDataException;
import com.sun.management.GcInfo;
import java.security.AccessController;
import java.security.PrivilegedAction;
import sun.management.LazyCompositeData;
import static sun.management.LazyCompositeData.getLong;
import sun.management.MappedMXBeanType;
import sun.management.Util;
/**
* A CompositeData for GcInfo for the local management support.
* This class avoids the performance penalty paid to the
* construction of a CompositeData use in the local case.
*/
public class GcInfoCompositeData extends LazyCompositeData {
private final GcInfo info;
private final GcInfoBuilder builder;
private final Object[] gcExtItemValues;
public GcInfoCompositeData(GcInfo info,
GcInfoBuilder builder,
Object[] gcExtItemValues) {
this.info = info;
this.builder = builder;
this.gcExtItemValues = gcExtItemValues;
}
public GcInfo getGcInfo() {
return info;
}
public static CompositeData toCompositeData(final GcInfo info) {
@SuppressWarnings("removal")
final GcInfoBuilder builder = AccessController.doPrivileged (new PrivilegedAction<GcInfoBuilder>() {
public GcInfoBuilder run() {
try {
Class<?> cl = Class.forName("com.sun.management.GcInfo");
Field f = cl.getDeclaredField("builder");
f.setAccessible(true);
return (GcInfoBuilder)f.get(info);
} catch(ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) {
return null;
}
}
});
@SuppressWarnings("removal")
final Object[] extAttr = AccessController.doPrivileged (new PrivilegedAction<Object[]>() {
public Object[] run() {
try {
Class<?> cl = Class.forName("com.sun.management.GcInfo");
Field f = cl.getDeclaredField("extAttributes");
f.setAccessible(true);
return (Object[])f.get(info);
} catch(ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) {
return null;
}
}
});
GcInfoCompositeData gcicd =
new GcInfoCompositeData(info,builder,extAttr);
return gcicd.getCompositeData();
}
protected CompositeData getCompositeData() {
// CONTENTS OF THIS ARRAY MUST BE SYNCHRONIZED WITH
// baseGcInfoItemNames!
final Object[] baseGcInfoItemValues;
try {
baseGcInfoItemValues = new Object[] {
info.getId(),
info.getStartTime(),
info.getEndTime(),
info.getDuration(),
memoryUsageMapType.toOpenTypeData(info.getMemoryUsageBeforeGc()),
memoryUsageMapType.toOpenTypeData(info.getMemoryUsageAfterGc()),
};
} catch (OpenDataException e) {
// Should never reach here
throw new AssertionError(e);
}
// Get the item values for the extension attributes
final int gcExtItemCount = builder.getGcExtItemCount();
if (gcExtItemCount == 0 &&
gcExtItemValues != null && gcExtItemValues.length != 0) {
throw new AssertionError("Unexpected Gc Extension Item Values");
}
if (gcExtItemCount > 0 && (gcExtItemValues == null ||
gcExtItemCount != gcExtItemValues.length)) {
throw new AssertionError("Unmatched Gc Extension Item Values");
}
Object[] values = new Object[baseGcInfoItemValues.length +
gcExtItemCount];
System.arraycopy(baseGcInfoItemValues, 0, values, 0,
baseGcInfoItemValues.length);
if (gcExtItemCount > 0) {
System.arraycopy(gcExtItemValues, 0, values,
baseGcInfoItemValues.length, gcExtItemCount);
}
try {
return new CompositeDataSupport(builder.getGcInfoCompositeType(),
builder.getItemNames(),
values);
} catch (OpenDataException e) {
// Should never reach here
throw new AssertionError(e);
}
}
private static final String ID = "id";
private static final String START_TIME = "startTime";
private static final String END_TIME = "endTime";
private static final String DURATION = "duration";
private static final String MEMORY_USAGE_BEFORE_GC = "memoryUsageBeforeGc";
private static final String MEMORY_USAGE_AFTER_GC = "memoryUsageAfterGc";
private static final String[] baseGcInfoItemNames = {
ID,
START_TIME,
END_TIME,
DURATION,
MEMORY_USAGE_BEFORE_GC,
MEMORY_USAGE_AFTER_GC,
};
private static MappedMXBeanType memoryUsageMapType;
static {
try {
Method m = GcInfo.class.getMethod("getMemoryUsageBeforeGc");
memoryUsageMapType =
MappedMXBeanType.getMappedType(m.getGenericReturnType());
} catch (NoSuchMethodException | OpenDataException e) {
// Should never reach here
throw new AssertionError(e);
}
}
static String[] getBaseGcInfoItemNames() {
return baseGcInfoItemNames;
}
private static OpenType<?>[] baseGcInfoItemTypes = null;
static synchronized OpenType<?>[] getBaseGcInfoItemTypes() {
if (baseGcInfoItemTypes == null) {
OpenType<?> memoryUsageOpenType = memoryUsageMapType.getOpenType();
baseGcInfoItemTypes = new OpenType<?>[] {
SimpleType.LONG,
SimpleType.LONG,
SimpleType.LONG,
SimpleType.LONG,
memoryUsageOpenType,
memoryUsageOpenType,
};
}
return baseGcInfoItemTypes;
}
public static long getId(CompositeData cd) {
return getLong(cd, ID);
}
public static long getStartTime(CompositeData cd) {
return getLong(cd, START_TIME);
}
public static long getEndTime(CompositeData cd) {
return getLong(cd, END_TIME);
}
public static Map<String, MemoryUsage>
getMemoryUsageBeforeGc(CompositeData cd) {
try {
TabularData td = (TabularData) cd.get(MEMORY_USAGE_BEFORE_GC);
return cast(memoryUsageMapType.toJavaTypeData(td));
} catch (InvalidObjectException | OpenDataException e) {
// Should never reach here
throw new AssertionError(e);
}
}
@SuppressWarnings("unchecked")
public static Map<String, MemoryUsage> cast(Object x) {
return (Map<String, MemoryUsage>) x;
}
public static Map<String, MemoryUsage>
getMemoryUsageAfterGc(CompositeData cd) {
try {
TabularData td = (TabularData) cd.get(MEMORY_USAGE_AFTER_GC);
//return (Map<String,MemoryUsage>)
return cast(memoryUsageMapType.toJavaTypeData(td));
} catch (InvalidObjectException | OpenDataException e) {
// Should never reach here
throw new AssertionError(e);
}
}
/**
* Returns true if the input CompositeData has the expected
* CompositeType (i.e. contain all attributes with expected
* names and types). Otherwise, return false.
*/
public static void validateCompositeData(CompositeData cd) {
if (cd == null) {
throw new NullPointerException("Null CompositeData");
}
if (!isTypeMatched(getBaseGcInfoCompositeType(),
cd.getCompositeType())) {
throw new IllegalArgumentException(
"Unexpected composite type for GcInfo");
}
}
// This is only used for validation.
private static CompositeType baseGcInfoCompositeType = null;
static synchronized CompositeType getBaseGcInfoCompositeType() {
if (baseGcInfoCompositeType == null) {
try {
baseGcInfoCompositeType =
new CompositeType("sun.management.BaseGcInfoCompositeType",
"CompositeType for Base GcInfo",
getBaseGcInfoItemNames(),
getBaseGcInfoItemNames(),
getBaseGcInfoItemTypes());
} catch (OpenDataException e) {
// shouldn't reach here
throw new RuntimeException(e);
}
}
return baseGcInfoCompositeType;
}
private static final long serialVersionUID = -5716428894085882742L;
}
⏎ com/sun/management/internal/GcInfoCompositeData.java
Or download all of them as a single archive file:
File name: jdk.management-17.0.5-src.zip File size: 42254 bytes Release date: 2022-09-13 Download
⇒ JDK 17 jdk.management.agent.jmod - Management Agent Module
2023-07-29, ∼6720🔥, 0💬
Popular Posts:
What Is commons-logging-1.2.jar? commons-logging-1.2.jar is the JAR file for Apache Commons Logging ...
JDK 11 java.naming.jmod is the JMOD file for JDK 11 Naming module. JDK 11 Naming module compiled cla...
JDK 17 jdk.jshell.jmod is the JMOD file for JDK 17 JShell tool, which can be invoked by the "jshell"...
ANTLR is a powerful parser generator for multiple programming languages including Java. ANTLR contai...
commons-lang-1.0.1.jar is the JAR file for Apache Commons Lang 1.0.1, which provides a host of helpe...