use of com.ibm.dtfj.java.javacore.JCInvalidArgumentsException in project openj9 by eclipse.
the class JavaRuntimeBuilder method addClass.
/**
* Note that even if a class was already registered with a class loader previously, it may contain incomplete data,
* so this case has to be considered.
*/
public JavaClass addClass(JavaClassLoader jClassLoader, String name, long classID, long superClassID, String fileName) throws BuilderFailureException {
try {
JCJavaClassLoader classLoader = (JCJavaClassLoader) jClassLoader;
JCJavaClass jClass = generateJavaClass(getJavaRuntime(), name, classID);
jClass.setJavaSuperClass(superClassID);
jClass.setClassLoader(classLoader);
ImagePointer ip = jClass.getID();
if (ip != null) {
classLoader.addClass(name, ip);
} else {
if (classLoader.internalGetClass(name) == null) {
classLoader.addClass(name);
}
}
return jClass;
} catch (JCInvalidArgumentsException e) {
throw new BuilderFailureException(e);
}
}
use of com.ibm.dtfj.java.javacore.JCInvalidArgumentsException in project openj9 by eclipse.
the class JavaRuntimeBuilder method addVMOption.
/**
* Adds an individual VM option to JavaVMInitArgs, with 'extra information' field
*/
public void addVMOption(String option, long extraInfo) throws BuilderFailureException {
if (fJavaVMInitArgs == null) {
throw new BuilderFailureException("JCJavaVMInitArgs must be created before options added");
}
try {
ImagePointer pointer = fAddressSpace.getPointer(extraInfo);
fJavaVMInitArgs.addOption(new JCJavaVMOption(option, pointer));
} catch (JCInvalidArgumentsException e) {
throw new BuilderFailureException(e);
}
}
use of com.ibm.dtfj.java.javacore.JCInvalidArgumentsException 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