Search in sources :

Example 6 with JCJavaClass

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);
    }
}
Also used : JCJavaObject(com.ibm.dtfj.java.javacore.JCJavaObject) ImagePointer(com.ibm.dtfj.image.ImagePointer) BuilderFailureException(com.ibm.dtfj.javacore.builder.BuilderFailureException) JCInvalidArgumentsException(com.ibm.dtfj.java.javacore.JCInvalidArgumentsException) JCJavaMonitor(com.ibm.dtfj.java.javacore.JCJavaMonitor) JCJavaClass(com.ibm.dtfj.java.javacore.JCJavaClass)

Aggregations

ImagePointer (com.ibm.dtfj.image.ImagePointer)6 JCInvalidArgumentsException (com.ibm.dtfj.java.javacore.JCInvalidArgumentsException)6 JCJavaClass (com.ibm.dtfj.java.javacore.JCJavaClass)6 BuilderFailureException (com.ibm.dtfj.javacore.builder.BuilderFailureException)5 JCJavaObject (com.ibm.dtfj.java.javacore.JCJavaObject)4 JCJavaClassLoader (com.ibm.dtfj.java.javacore.JCJavaClassLoader)2 JCJavaThread (com.ibm.dtfj.java.javacore.JCJavaThread)2 CorruptDataException (com.ibm.dtfj.image.CorruptDataException)1 JavaObject (com.ibm.dtfj.java.JavaObject)1 JCJavaLocation (com.ibm.dtfj.java.javacore.JCJavaLocation)1 JCJavaMethod (com.ibm.dtfj.java.javacore.JCJavaMethod)1 JCJavaMonitor (com.ibm.dtfj.java.javacore.JCJavaMonitor)1 JCJavaStackFrame (com.ibm.dtfj.java.javacore.JCJavaStackFrame)1