title: java.lang.IllegalArgumentException: argument type mismatch
body: <p>I want to populate a list of strings from a form.</p>
  
  <p>My form bean:</p>
  
  <pre><code>public class TaskForm extends ActionForm{
      List&lt;String&gt; task = new ArrayList&lt;String&gt;();
      public List&lt;String&gt; getTask() {
          return task;
      }
      public void setTask(List&lt;String&gt; task) {        
              this.task=task;         
  
      }
      }
  </code></pre>
  
  <p>My jsp:</p>
  
  <pre><code>while (it.hasNext()) {
  &lt;textarea class="SubTaskTextArea_Style" id="task" name="task"&gt;&lt;/textarea&gt;&lt;/td&gt;
  }
  </code></pre>
  
  <p>strutsconfig:</p>
  
  <pre><code>&lt;form-beans&gt;
      &lt;form-bean name="TaskForm" type="controller.form.TaskForm" /&gt;
  
  &lt;/form-beans&gt;
  &lt;action-mappings&gt;
      &lt;action path="/TaskAction" type="task.action.TaskAction" name="TaskForm"&gt;
  &lt;/action-mappings&gt;
  </code></pre>
  
  <p>The situation is the <code>textarea</code> can be in any number, I want to get the string in textarea to be populated to the <code>formbean</code>.</p>
  
  <p>But it gives the following error:</p>
  
  <pre><code>javax.servlet.ServletException: BeanUtils.populate
      org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1099)
      org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
      org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
      org.apache.struts.action.ActionServlet.process(ActionServlet.java:1422)
      org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:523)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
  
  
  root cause 
  
  java.lang.IllegalArgumentException: argument type mismatch
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789)
  at org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684)
  at org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713)
  at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:924)
  at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:729)
  at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1097)
  at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
  at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
  at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1422)
  at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:523)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
  at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
  at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
  at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)
  </code></pre>
  
  <p>Anybody have any idea? </p>