try {
Class<?> resolutionClass = Class.forName(className);
if (IMarkerResolution.class.isAssignableFrom(resolutionClass)) {
return TigerSubstitutes.asSubclass(resolutionClass, IMarkerResolution.class);
}
<BUG>FindbugsPlugin.getDefault().logError("Fixer '" + className + "' not a IMarkerResolution");
</BUG>
} catch (ClassNotFoundException e) {
<BUG>FindbugsPlugin.getDefault().logException(e, "Fixer '" + className + "' not found.");
</BUG>
}

try {
IMarkerResolution resolution = resolutionClass.newInstance();
loadAttributes(resolution, attributes);
return resolution;
} catch (InstantiationException e) {
FindbugsPlugin.getDefault().logException(e, "Failed to instaniate BugResolution '" +
TigerSubstitutes.getSimpleName(resolutionClass)+ "'.");
return null;
} catch (IllegalAccessException e) {
throw new IllegalStateException(e);
