The reason DFC can throw LinkageError is because of its BOF activities. The dynamic classloading related to BOF can throw these errors when there are configuration problems with a particular BOF module.
To protect against occurances you need to add a "catch" clause for Throwable like this:
try
{
IDfFolder object = (IDfFolder) session.newObject(XdsxFolderType.TYPE_NAME);
object.setObjectName(folder.getEntryUuid());
object.save();
}
catch (DfException e)
{
// Do something with this exception
}
catch (Throwable e) // Because DFC can generate a couple nasty "Error" throwables
{
throw new RuntimeException(e);
}
Although it is not a good idea or practice to catch errors, frameworks like DFC should not be throwing LinkageError. It may be useful to catch this error and do some cleanup before throwing a meaningful exception. What do you think ?
ReplyDeleteYep. You are absolutely right. This would be a good fix for the DFC folks to implement.
ReplyDelete