I had a custom snippet in my map between two string attributes and a list of business objects. The idea being that each string from the source should becomes an entry in the business object list with a wrapper.
No problem. I wrote up the snippet to create the destination business object (since it does not get initialized for you), added my wrapper data objects to my list. Everything looks good. I have “Print to Log” (aka system.out) to look at my resultant business object and it looks perfect.
Except when I run it, the List doesn’t get populated.
The key to my problem was how I was running it. You can’t test a business object map on its own, it’s always a part of some grander module ecosystem. In my case, it was a mediation flow component wedged between two XSLT transforms.
What I discovered was that it was a missing map in my XSLT that caused my list to remain null. The business object map was fine the entire time.
What’s the story? Remember that there are some components that you cannot test in complete isolation.