[ 
https://issues.apache.org/struts/browse/STR-3000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_39915
 ] 

Chris Book commented on STR-3000:
---------------------------------

Yes, no doubt the problem is due to garbage that some user is sending.  But 
that garbage shouldn't blow up the application.

I do have exception handlers configured in my struts-config.xml file, but this 
exception doesn't make it there.  As you can see from the trace, the exception 
occurs while the form is being populated, before the action is actually run.  

The exception handler in struts-config only to catches Exceptions that are 
cause by my actions.  In this case the exception is not caught, and it goes to 
the tomcat log as opposed to my application log which catches other exceptions.

> IllegalArgumentException not handled while processing query string
> ------------------------------------------------------------------
>
>                 Key: STR-3000
>                 URL: https://issues.apache.org/struts/browse/STR-3000
>             Project: Struts 1
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.9, 1.3.5
>         Environment: Using jakarta-tomcat 5.0.28 and java1.4.2.
>            Reporter: Chris Book
>
> The following exception is routinely in my tomcat logs.  I'm not sure of the 
> exact query string that causes the property parsing to crash, but this 
> exception is unhandled.  Regardless, struts shouldn't allow this exception to 
> get down to the tomcat layer.
> I've set this as 'major' because it seems to cause tomcat to eventually stop 
> responding to requests. I upgraded from 1.2.9 to 1.3.5 hoping this would be 
> fixed but it crashes with both versions.
> 2007-01-28 12:10:04 StandardWrapperValve[action]: Servlet.service() for 
> servlet action threw exception
> java.lang.IllegalArgumentException: Invalid mapped property ' U  (feat'
>         at 
> org.apache.commons.beanutils.PropertyUtilsBean.getMappedProperty(PropertyUtilsBean.java:476)
>         at 
> org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:662)
>         at 
> org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
>         at 
> org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:884)
>         at 
> org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
>         at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
>         at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:451)
>         at 
> org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:794)
>         at 
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:191)
>         at 
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
>         at 
> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>         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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
>         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
>         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
>         at 
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
>         at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
>         at java.lang.Thread.run(Thread.java:534)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to