Name: dk106046 Date: 09/08/2003
Full JDK version:
After upgrading from 1.3.1_04 to 1.3.1_08, an application using struts
introspection fails with the following error:
Servlet Error: No getter method for property dn of bean calist:
javax.servlet.jsp.JspException: No getter method for property dn of bean calist
Many apps in the system use struts introspection, but it is only this app in
particular that fails under 1.3.1_08. One of its JSPs makes a struts call
to <bean:write name="calist" property="dn"/>. It is just this ONE dn property
that causes the problem, which manifests itself as the servlet error above.
Reverting back to 1.3.1_04 fixes the problem, but 1.3.1_08 is required for other
bug fixes and so downgrading is not an acceptable workaround for long.
JDK 1.3.1_08 introduced a fix for sunbug 4477877. The customer strongly suspects
that this fix is the cause of their new problem 1.3.1_08.
Struts clearly uses introspection to find the getter methods for the bean
properties, and with the _08 level, is apparently unable to find the getter method
for the dn property (i.e. getDn()). Note that we know about the lowercase vs.
uppercase issue that seems to catch a lot of struts users. This is NOT that
problem. We re using it properly, and it DID work before this JDK upgrade.
Our getDn() method DOES exist in a class file that is in the classpath.
The interesting/unique thing about getDn() is that it calls a superclass
Source code and flow analysis is available on request.