Finally! I've found the root of this long standing problem. In my case
it happened when trying to store a null value (empty string) into a
numeric field. The populateBean method tries to call
getCanonicalName() on an empty string, and fails... I guess it casts
the empty string to a null and, obviously fails calling any method on
it.
Anyway, I solved it by adding the appropriate setters to the decorator
so when an empty string is passed, a null is persisted.
It didn't make a difference whether you had nullable set to true or
false in transfer.conf.
I had to modify the offending line in the beanFactory.cfc plugin. Line
364, from:
arguments.keyTypeAsString =
arguments.memento[key].getClass().getCanonicalName();
to:
arguments.keyTypeAsString = arguments.memento[key].getClass();
After this, I could see which field was causing the exception.
HTH,
Pedro.