[jira] [Commented] (BEANUTILS-421) NullPointerException in BeanUtilsBean.setProperty

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] [Commented] (BEANUTILS-421) NullPointerException in BeanUtilsBean.setProperty

ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/BEANUTILS-421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13667687#comment-13667687 ]

Jochen Flaig commented on BEANUTILS-421:

We also experienced a NullPointerException in BeanUtils.populate(). I not sure, whether our problem is related to this one, but I’d like to give you the information in case it might be useful. The problem occurred to us for the first time after upgrading our JRE from 1.7.0_09 to 1.7.0_11.

In our application, we have a bean class that derives another bean class, and the latter provides an indexed property. If the first access to that indexed property (after starting the JVM) is made via the derived class, everything is fine (see test case "DerivedFirstTest"). But if we access that indexed property for the first time via the base class, it’s impossible to set the property in the derived class (see "BaseFirstTest").

It seems that a call to PropertyUtilsBean.getPropertyDescriptors() on the base class “ruins” the property descriptors for the derived class (see "IntrospectionTest"). May be the work-around for bug 28358 modifies the descriptors received form java.beans.BeanInfo in a way, that is not compatible with the caching of the property descriptors inside the JRE classes. Wouldn’t it be safer to work on a copy of the property descriptor when modifying it?


> NullPointerException in BeanUtilsBean.setProperty
> -------------------------------------------------
>                 Key: BEANUTILS-421
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-421
>             Project: Commons BeanUtils
>          Issue Type: Bug
>          Components: Bean / Property Utils
>    Affects Versions: 1.8.3
>            Reporter: Maxim Kramarenko
>            Assignee: Benedikt Ritter
>            Priority: Blocker
>             Fix For: 1.8.4
>         Attachments: src.zip
> I got the following exception on some servers:
>    javax.servlet.ServletException: BeanUtils.populate
> at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:475)
> at org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
> at org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
> at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
> at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
> at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
> at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
> at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
> Caused by: java.lang.NullPointerException
> at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:982)
> at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:830)
> at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:433)
> at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:473)

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira