eFix (APAR): PQ68860 For Release: WebSphere 4.0.1 For Edition: WebSphere Enterprise Edition Client For AffectedComponents: ActiveX to EJB Bridge Feature For Operating System: Windows Supersedes eFixes: none CMVC defect: PQ68860 Byte size of APAR: 1,081,346 Date: 12/9/2002 Abstract: ActiveX bridge throws java.lang.ArrayOutOfBoundsException using 0 length arrays Description/symptom of problem: This APAR addressed the following problems: 1.When running an ActiveX application that uses a zero length java array you may receive the following error: java.lang.ArrayIndexOutOfBoundsException at java.lang.reflect.Array.get(Native Method) at com.ibm.ws.client.xjb.XJBByteWriter.getArrayDims(XJBByteWriter.java:153) at com.ibm.ws.client.xjb.XJBByteWriter.putArray(XJBByteWriter.java:274) at com.ibm.ws.client.xjb.XJBByteWriter.putJVariant(XJBByteWriter.java:343) at com.ibm.ws.client.xjb.JDispatch.dispInvoke(JDispatch.java:777) 2. The ActiveX bridge does not correctly handle java arrays which contain different instance types inherited from a common base type. Your Activex application may receive the following error: java.lang.IllegalArgumentException: array element type mismatch at java.lang.reflect.Array.set(Native Method) at com.ibm.ws.client.xjb.JDispatch.getParamsFromJVariantArray(JDispatch.java:1159) at com.ibm.ws.client.xjb.JDispatch.getParamsFromJDispParams(JDispatch.java:1060) at com.ibm.ws.client.xjb.JDispatch.dispInvoke(JDispatch.java:362) Directions to apply efix: 1) Create temporary "efix" directory to store the zip/tar file: Windows: c:\temp\WebSphere\efix 2) Copy zip file to the directory 3) Unzip the file 4) Close any applications using WebSphere 5) Remove any development patches that may be in /classes directory 6) Run the jar file with the following command answering questions/prompts as they appear: java -jar -TargetDir 7) Restart your applications which use WebSphere 8) The temp directory may be removed but the zip/tar file should be saved. Do not remove any files created and stored in the /efix/ directories. These files are required if an efix is to be removed. Directions to remove an efix: NOTE: EFIXES MUST BE REMOVED IN THE ORDER THEY WERE APPLIED. DO NOT REMOVE AN EFIX UNLESS ALL EFIXES APPLIED AFTER IT HAVE FIRST BEEN REMOVED. YOU MAY REAPPLY ANY REMOVED EFIX. Example: If your system has efix1, efix2, and efix3 applied in that order and efix2 is to be removed, efix3 must be removed first, efix2 removed, and efix3 re-applied. 1) Change directory to the efix location (/WebSphere/AppServer/efix/). 2) Shutdown WebSphere 3) Run the backup jar file with the following command: java -jar -TargetDir 4) Restart WebSphere Directions to re-apply an efix: Follow the instructions for applying an efix. If the backup files still exist (from the previous efix application), you will be prompted to overwrite. Answer "yes" at the overwrite prompts.