Fix (APAR): JR26303 Status: Fix Release: 6.0.2.1 Operating System: AIX,HP-UX,Linux,Solaris,Windows,z/OS Supersedes Fixes: CMVC Defect: JR26303 Byte size of APAR: 34930 Date: 2007-04-25 Abstract: Child BOs loses data in custom mapping Description/symptom of problem: JR26303 resolves the following problem: ERROR DESCRIPTION: After upgrading to WPS 6.0.2.1, data in child BOs of customer BO loses data. LOCAL FIX: none PROBLEM SUMMARY USERS AFFECTED: WebSphere Process Server 6.0.2.1 users PROBLEM DESCRIPTION: Child BOs loses data in custom mapping RECOMMENDATION: None Customer's scenario is as follows: in the custom map from a BO to a child BO list in another BO, a target BO is created and transformed by a sub map by invoking MapService.SimpleTransform(), and then add the output BO into the list. But at runtime, after custom mapping runs, the output BO doesn't contain the result list, which is unset. After investigation, I find in BaseMAP.storeResultList() method, we have the following codes: List outputList = dataObject.getList(attrName); if(outputList == value) { ... return; } outputList.clear(); //and then put value contents into outputList At runtime, 'outputList' instance is not equal to 'value', so it won't return immediately, but is going to replace contents in 'value' to 'outputList'. But 'value' and 'outputList' contains the same featureMap instance (they are both of class FeaturemapUtil$FeatureEList), so statement "outputList.clear()" will remove all items in both 'value' and 'outputList', so then no data will be set into outputList. That's why data is not stored into the list correctly. PROBLEM CONCLUSION: To fix the problem, changes in BaseMAP.storeResultList will be made to prevent the problem happens. It will check if the output data of custom mapping are equals to the data in container BO, if yes, don't need to clean data in BO and put output into the BO. Directions to apply fix: Before applying the iFix ensure that WebSphere Process Server 6.0.1 is installed on the system. Also download and follow Update Installer installation instructions. The Update Installer can be downloaded from the following link: http://www.ibm.com/support/docview.wss?rs=180&uid=swg21205991 1) Copy the pak file to the directory maintenance in the UpdateInstaller directory 2) Shutdown WebSphere Process Server. It is important that you perform a controlled and complete shutdown of the server to ensure that all transactions have completed, before installing the fix. 3) Run the UpdateInstaller and follow the prompts. 4) Restart WebSphere Directions to remove fix: NOTE: FIXES MUST BE REMOVED IN THE REVERSE ORDER IN WHICH THEY WERE APPLIED. DO NOT REMOVE A FIX UNLESS ALL FIXES APPLIED AFTER IT HAVE FIRST BEEN REMOVED. YOU MAY REAPPLY ANY REMOVED FIX. Example: If your system has fix1, fix2, and fix3 applied in that order and fix2 is to be removed, fix3 must be removed first, then fix2 may be removed 1) Shutdown WebSphere. It is important that you perform a controlled and complete shutdown of the server to ensure that all transactions have completed, before installing the fix. 2) Follow the Fix instructions that are packaged with the Fix Installer on how to uninstall and reinstall the Fix. 3) Restart WebSphere Directions to re-apply fix: 1) Shutdown WebSphere. It is important that you perform a controlled and complete shutdown of the server to ensure that all transactions have completed, before installing the fix. 2) Run the UpdateInstaller and follow the instructions. The Update Installer can be downloaded from the following link: http://www.ibm.com/support/docview.wss?rs=180&uid=swg21205991 3) Restart WebSphere Process Server Additional Information: