Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4918902

REGRESSION 1.4: PropertyDescriptors do not find the most specific methods

    XMLWordPrintable

Details

    • 11
    • x86
    • solaris_7
    • Verified

    Backports

      Description



        Name: dk106046 Date: 09/08/2003

        Operating System:
        Solaris 2.8
                                                          
        Full JDK version:
        1.3.1_08
                                     
        Problem details:
        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
          at org.apache.struts.util.RequestUtils.lookup(RequestUtils.java:742)

        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
        getDn().

        Source code and flow analysis is available on request.

        ======================================================================

        Attachments

          Issue Links

            Activity

              People

                mdavidsosunw Mark Davidson (Inactive)
                dkorbel David Korbel (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: