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);