MethodDescriptor[] mda = beanInfo.getMethodDescriptors();
for(int i = pda.length - 1; i >= 0; --i) {
PropertyDescriptor pd = pda[i];
if(pd instanceof IndexedPropertyDescriptor) {
IndexedPropertyDescriptor ipd =
(IndexedPropertyDescriptor)pd;
Method readMethod = ipd.getIndexedReadMethod();
Method publicReadMethod = getAccessibleMethod(readMethod,
accessibleMethods);
if(publicReadMethod != null && isSafeMethod(publicReadMethod)) {
try {
if(readMethod != publicReadMethod) {
ipd = new IndexedPropertyDescriptor(
ipd.getName(), ipd.getReadMethod(),
ipd.getWriteMethod(), publicReadMethod,
ipd.getIndexedWriteMethod());
}
classMap.put(ipd.getName(), ipd);
getArgTypes(classMap).put(publicReadMethod,
publicReadMethod.getParameterTypes());
}
catch(IntrospectionException e) {
logger.warn("Failed creating a publicly-accessible " +
"property descriptor for " + clazz.getName() +
" indexed property " + pd.getName() +
", read method " + publicReadMethod +
", write method " + ipd.getIndexedWriteMethod(),
e);
}
}
}
else {