Fix (APAR): JR26701 Status: Fix Release: 6.0.2.1 Operating System: AIX,HP-UX,Linux,Solaris,Windows,z/OS Supersedes Fixes: CMVC Defect: JR26701 Byte size of APAR: 39479 Date: 2007-06-17 Abstract: If use get(String Path) or isSet(String path) methods on DataObject and all the elements along the entire path do not exist, users will get NullPointerException unexpectedly. Description/symptom of problem: JR26701 resolves the following problem: ERROR DESCRIPTION: There are two problems: 1. If you use "getxxx(XPath)" methods and all the elements along the entire path do not exist, you get the null pointer exception. 2. The "isSet(XPath)" method throws a JXPath parse exception if all the elements along the entire path do not exist --- These exceptions are unexpected and good responses should be returned, such as "null" I don't know what can be done for the primitive types (e.g., "int", "float") but a NPE was unexpected. 2.1.0: "The isSet(path) method will never throw exceptions. In the case where the path does not exist, the function returns the value of false." LOCAL FIX: none. PROBLEM SUMMARY USERS AFFECTED: WebSphere Process Server 6.0.2.x users PROBLEM DESCRIPTION: If use get(String Path) or isSet(String path) methods on DataObject and all the elements along the entire path do not exist, users will get NullPointerException unexpectedly. RECOMMENDATION: None If use XPath to query or retrieve attribute under a child BO which is of null value, NullPointerException could be thrown to user. In some other cases, some runtime exception could also be raised. PROBLEM CONCLUSION: BO API isSet and get will catch those runtime exception and return values to user. For isSet, return false on any exception. For get, return default value on exceptions except ClassCastException which could be raised if return type is not compatible with the real value. If is an object, return null as default value; for primitive types such as int, boolean, return 0 for number and false for boolean. 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: