I have fixed this and will be checking it in along with my other
JXPathHelper and XPathXMLFileModule changes. The real problem here is
that the Introspector uses an IndexedPropertyDescriptor whenever a
getter exists with an int parameter. It thinks the int is an index into
an array. So the scope on getAttributeNames was confusing the heck out
of it.
Ralph
Ralph Goers wrote:
I'm trying to test the change to JXPathHelper and have run into
problems on the RequestModule sample. It fails in JXPath trying to
process the attributeNames. The problem occurs because the
attributeNames member of ReqeustWrapper is represented by an
IndexedPropertyDescriptor instead of a PropertyDescriptor. When JXPath
calls ValueUtils.getValue() it fails because the getReadMethod call
returns null. This is because it is returned in getIndexedReadMethod
instead.
This does not happen in BRANCH_2_1_X where attributeNames is
represented by a PropertyDescriptor.
I believe this is happening because in trunk getAttributeNames is now
overloaded where it wasn't in 2.1.x. The only way I can think of to
fix this is to leave getAttributeNames() as is (returning the
attribute names that are of global scope) and replace
getAttributeNames(int scope) with getLocalAttributeNames() and have it
only return the local attribute names.
Any other ideas?
Ralph