[ 
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

Reply via email to