* may be a missing / wrong class or manifest files.
*/
public String getDescription() throws ProgramInvocationException {
if (ProgramDescription.class.isAssignableFrom(this.mainClass)) {
ProgramDescription descr;
if (this.program != null) {
descr = (ProgramDescription) this.program;
} else {
try {
descr = InstantiationUtil.instantiate(
this.mainClass.asSubclass(ProgramDescription.class), ProgramDescription.class);
} catch (Throwable t) {
return null;
}
}
try {
return descr.getDescription();
}
catch (Throwable t) {
throw new ProgramInvocationException("Error while getting the program description" +
(t.getMessage() == null ? "." : ": " + t.getMessage()), t);
}