DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10239>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10239

Strange Bug in PropertyUtils, getter not found but exist in form class

           Summary: Strange Bug in PropertyUtils, getter not found but exist
                    in form class
           Product: Struts
           Version: 1.0.2 Final
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Utilities
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Hello,


On Struts 1.0.2, JDK 1.3.1, Tomcat 3.2, WIN 2000


I've got a strange bug on the PropertyUtils class, for tracking it, I add some 
System.out in method public static Object getSimpleProperty(Object bean, String 
name) from PropertyUtils class.

When I cast the bean with my class, the getter is found.
When I remove this cast, the getter is not found !

The datVers property is a nested property composed by 4 strings ( day, month, 
year, date ), the toString method return nested property date

in my html tags I've got :  datVers.day, datVers.month, datVers.year, 
datVers.date


All the other form's property typed as DateField work fine. Only datVers crash.



-----------------------------
Code in PropertyUtils.class : WITH CAST IN FIRST System.out

public static Object getSimpleProperty(Object bean, String name) throws ... {
        
        (...)

        if ( name.equals("datVers") ) {
          System.out.println
("((com.meeschaert.assurance.controller.form.CreatRachatAgForm)bean).getDatVers
()="+((com.meeschaert.assurance.controller.form.CreatRachatAgForm)
bean).getDatVers());
          System.out.println("getSimpleProperty() bean=" + bean);
          System.out.println("getSimpleProperty() name=" + name);
          System.out.println("getSimpleProperty() descriptor=" + descriptor);
          System.out.println("getSimpleProperty() descriptor.getName=" + 
descriptor.getName());
          System.out.println("getSimpleProperty() descriptor.getDisplayName=" + 
descriptor.getDisplayName());
        }

        Method readMethod = getReadMethod(descriptor);
        if (readMethod == null)
            throw new NoSuchMethodException("Property '" + name +
                                            "' has no getter method");


------------
System.out :

((com.meeschaert.assurance.controller.form.CreatRachatAgForm)bean).getDatVers()
=26/11/1991
getSimpleProperty() 
bean=com.meeschaert.assurance.controller.form.CreatRachatAgForm@3411a
getSimpleProperty() name=datVers
getSimpleProperty() descriptor=java.beans.PropertyDescriptor@6df0f
getSimpleProperty() descriptor.getName=datVers
getSimpleProperty() descriptor.getDisplayName=datVers
getSimpleProperty() descriptor.getReadMethod=public 
com.meeschaertx.controller.form.DateField 
com.meeschaert.assurance.controller.form.CreatRachatAgForm.getDatVers()



-----------------------------
Code in PropertyUtils.class : WITHOUT CAST

public static Object getSimpleProperty(Object bean, String name) throws ... {
        
        (...)

        if ( name.equals("datVers") ) {
// COMMENT          System.out.println
("((com.meeschaert.assurance.controller.form.CreatRachatAgForm)bean).getDatVers
()="+((com.meeschaert.assurance.controller.form.CreatRachatAgForm)
bean).getDatVers());
          System.out.println("getSimpleProperty() bean=" + bean);
          System.out.println("getSimpleProperty() name=" + name);
          System.out.println("getSimpleProperty() descriptor=" + descriptor);
          System.out.println("getSimpleProperty() descriptor.getName=" + 
descriptor.getName());
          System.out.println("getSimpleProperty() descriptor.getDisplayName=" + 
descriptor.getDisplayName());
        }

        Method readMethod = getReadMethod(descriptor);
        if (readMethod == null)
            throw new NoSuchMethodException("Property '" + name +
                                            "' has no getter method");


------------
System.out :

getSimpleProperty() 
bean=com.meeschaert.assurance.controller.form.CreatRachatAgForm@52fc36
getSimpleProperty() name=datVers
getSimpleProperty() descriptor=java.beans.PropertyDescriptor@25fefa
getSimpleProperty() descriptor.getName=datVers
getSimpleProperty() descriptor.getDisplayName=datVers
getSimpleProperty() descriptor.getReadMethod=null
NoSuchMethodException=com.meeschaert.assurance.controller.form.CreatRachatAgForm
@52fc36#datVers.date=26/11/1991
javax.servlet.jsp.JspException: No getter method for property datVers.date of 
bean org.apache.struts.taglib.html.BEAN
        at org.apache.struts.util.RequestUtils.lookup(Unknown Source)


-Emmanuel

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to