I had some issues with a setter and a getter having different types in an
action chain. This blew up hard in my face and BeanUtils didn't give me any
hint as to what was wrong. I have attached a diff with a suggested "fix" for
this. (The diff includes my last change too, sorry about that)

// Anders Hovmöller
Index: BeanUtil.java
===================================================================
RCS file: /cvsroot/opensymphony/webwork/src/main/webwork/util/BeanUtil.java,v
retrieving revision 1.29
diff -r1.29 BeanUtil.java
113c113,124
<                         pdTo.getWriteMethod().invoke(to, writeParameters);
---
>                                                                                {
>                                                                                      
>  try
>                                                                                      
>  {
>                          pdTo.getWriteMethod().invoke(to, writeParameters);
>                                                                                      
>  }
>                                                                                      
>  catch (IllegalArgumentException e)
>                                                                                      
>  {
>                                                                                      
>          System.err.println("IllegalArgumentException: 
>"+from.getClass().getName()+"."+readMethod.getName()+"("+writeParameters[0].getClass().getName()+")
> -> 
>"+to.getClass().getName()+"."+writeMethod.getName()+"("+writeMethod.getParameterTypes()[0].getName()+")");
> 
>                                                                                      
>          throw e;
>                                                                                      
>  }
>                                                                                }
121,122c132,134
<          log.warn("Bean copy failed:+e", e);
<          throw new IllegalArgumentException("Bean copy failed:" + e);
---
>          log.warn("Bean copy failed:"+e, e);
>                                e.printStackTrace();
>          throw new IllegalArgumentException("Bean copy failed (from type 
>'"+from.getClass().getName()+"' to type '"+from.getClass().getName()+"'):" + e);

Reply via email to