use of com.ibm.dtfj.java.javacore.JCJavaClass in project openj9 by eclipse.
the class JavaRuntimeBuilder method addJavaMonitor.
/**
* Required: monitor ID (throws exception if invalid)
* <br>
* Optional: object ID, class name, monitor name, owning thread
* @return successfully created JavaMonitor
* @throws BuilderFailureException if an invalid monitor ID is passed.
*/
public JavaMonitor addJavaMonitor(String monitorName, long monitorID, long objectID, String className, long owningThread) throws BuilderFailureException {
try {
JCJavaMonitor monitor = getJavaRuntime().findMonitor(monitorID);
if (monitor == null) {
ImagePointer pointerMonitorID = fAddressSpace.getPointer(monitorID);
monitor = new JCJavaMonitor(getJavaRuntime(), pointerMonitorID, monitorName);
}
monitor.setOwner(owningThread);
if (className != null) {
JCJavaClass jClass = generateJavaClass(getJavaRuntime(), className, IBuilderData.NOT_AVAILABLE);
/*
* Add the object only if the class is also present and object ID is valid.
*/
if (jClass != null && fAddressSpace.isValidAddressID(objectID)) {
ImagePointer pointerObjectID = fAddressSpace.getPointer(objectID);
JCJavaObject jobject = new JCJavaObject(pointerObjectID, jClass);
monitor.setObject(jobject);
}
}
return monitor;
} catch (JCInvalidArgumentsException e) {
throw new BuilderFailureException(e);
}
}
Aggregations