private PropertyDescriptor getDescriptor(String propertyName) {
try {
PropertyDescriptor pd = PropertyUtils.getPropertyDescriptor(_bean, propertyName);
return pd != null && pd.getWriteMethod() != null && pd.getReadMethod() != null ? pd : null;
} catch (IllegalAccessException e) {
throw new NotifyRuntimeException("failed to get PropertyDescriptor for property " + propertyName
+ " from bean " + _bean, e);
} catch (InvocationTargetException e) {
throw new NotifyRuntimeException("failed to get PropertyDescriptor for property " + propertyName
+ " from bean " + _bean, e);
} catch (NoSuchMethodException e) {
// ignore
return null;
}