[ http://issues.apache.org/jira/browse/BEANUTILS-157?page=all ]
Henri Yandell updated BEANUTILS-157:
------------------------------------
Bugzilla Id: (was: 33461)
Fix Version/s: 1.8.0
> [beanutils] 1.6.1 cannot determine reader methods for anonymous class
> ---------------------------------------------------------------------
>
> Key: BEANUTILS-157
> URL: http://issues.apache.org/jira/browse/BEANUTILS-157
> Project: Commons BeanUtils
> Issue Type: Bug
> Components: Bean / Property Utils
> Environment: Operating System: Windows XP
> Platform: PC
> Reporter: Thorbjørn Ravn Andersen
> Fix For: 1.8.0
>
>
> I have the following snippet in a JSP-page which uses BeanUtils 1.6.1 and I
> get
> an exception.
> Code snippet (the anonymous class is to get a JavaBean defined in the
> JSP-page):
> ---
> List l = new ArrayList();
> for(int i = 1; i < 10; i++) {
> final int i2 = i;
> Object o = new Serializable() {
> String x = "" + i2;
> String y = "" + (100+i2) ;
> public String getX() {
> return x;
> }
> public String getY() {
> return y;
> }
> public String toString() {
> return getX() + " " + getY();
> }
> };
> l.add(o);
> Map map = BeanUtils.describe(o);
> ---
> which gives me the following exception:
> ---
> javax.servlet.ServletException: Property 'y' has no getter method
> at
> org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
> at
> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
> at org.apache.jsp.main_jsp._jspService(main_jsp.java:257)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
> at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
> at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
> at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
> at
> com.transaxiom.axsWHSweb.servlet.GetCurrentStock.doPost(GetCurrentStock.java:31)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:534)
> ---
> for what I can see it is the PropertyDescriptor.getReadMethod0 which does not
> treat WeakReferences correctly. The passed property descriptor looks like:
> ---
> this= PropertyDescriptor (id=2658)
> baseName= null
> bound= false
> classRef= WeakReference (id=2662)
> constrained= false
> displayName= null
> expert= false
> hidden= false
> name= "y"
> preferred= false
> propertyEditorClassRef= null
> propertyTypeRef= WeakReference (id=2664)
> readMethodName= "getY"
> readMethodRef= SoftReference (id=2666)
> shortDescription= null
> table= null
> writeMethodName= null
> writeMethodRef= null
> --
> but now it is more complex than I can understand. Any suggestions?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]