[
https://issues.apache.org/jira/browse/JXPATH-146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12850025#action_12850025
]
Ram commented on JXPATH-146:
----------------------------
The following change seems to work. The code tries to convert the first
character to lowercase (see last 4 lines of new code.).
{code:title=BeanPropertyPointer.java}
private PropertyDescriptor getPropertyDescriptor() {
if (propertyDescriptor == null) {
int inx = getPropertyIndex();
if (inx == UNSPECIFIED_PROPERTY) {
propertyDescriptor =
beanInfo.getPropertyDescriptor(propertyName);
char fc = propertyName.charAt(0);
if (propertyDescriptor == null && fc <= 'Z') {
String newPropName = new String(fc+"").toLowerCase() +
propertyName.substring(1);
propertyDescriptor =
beanInfo.getPropertyDescriptor(newPropName);
}
}
....
{code}
I only did a quick test for "getValue". Not sure if this impacts anything else.
> JavaBean XPath with uppercase initial characters
> ------------------------------------------------
>
> Key: JXPATH-146
> URL: https://issues.apache.org/jira/browse/JXPATH-146
> Project: Commons JXPath
> Issue Type: Improvement
> Affects Versions: 1.3
> Reporter: Ram
> Priority: Minor
>
> XPath expressions executed against a JavaBean only work when the initial
> character is lower case.
> context.getValue("firstName") //works
> context.getValue("FirstName") //doesn't work
> The code internally is looking at PropertyDescriptors and these start with
> lower case as per the JavaBean spec.
> I will be nice if both versions work ( just like 'firstName' and '@firstName'
> work even though JavaBeans don't differentiate attributes vs elements).
> The fix may be simple as converting the initial character to lower case
> before the PropertyDescriptor lookup. Haven't looked at the impacts in detail
> though.
> Thoughts ?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.