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