PQ50136: WHEN JAVAX.EJB.EJBEXCEPTION WAS NEWED AND THROWN FROM AN EJB, CORBA UNKNOWN WITH UNCHECKEDEXCEPTION WAS RETURNED TO CLIENT | |||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description When javax.ejb.EJBException was newed and thrown in an EJB, CORBA UNKNOWN GIOP REPLY with RMI:com.ibm.ejs.container.UncheckedException was sent back to the client. The client should never see an UncheckedException from the server.Local fix Problem summary **************************************************************** * USERS AFFECTED: All users of WebSphere Application Server * * V4.0 for z/OS and OS/390. * **************************************************************** * PROBLEM DESCRIPTION: J2EE Clients recieving * * com.ibm.ejs.container.Unchecked * * Exception back from method * * invocations when expecting documented * * exceptions. UncheckedExceptions are * * internal to the container and should * * not be surfaced back to the client. * * * * ClassCastException can be received when * * marshalling a remote reference within * * the same server from ejb container to * * servlet running in the IRT. This shell * * java client version of this works fine. * **************************************************************** * RECOMMENDATION: * **************************************************************** In order to return the correct exception back to the calling client process, the container must ensure that the correct exceptions are being raised and that those exceptions are mapped correctly to conform to the rmi-iiop exception rules specified in the rmi-iiop specification. The container was raising EJSException's as opposed to RemoteException's throughout its runtime code base. The container utilizes an exception, UncheckedException, to track internal container runtime errors. These exceptions should not surface on the client side, but were doing so. There are a handful of exceptions as defined by the rmi-iiop 2.1 specification which must be intercepted and translated into a format compatable for transfer back to the client. These exceptions were not being intercepted correctly, and therefore were not being translated for return to the client. All other exceptions raised during the course of a method invocation should arrive back at the client as a RemoteException. This was not happening due to a lack of an exception mapping facility. The check in com/ibm/ws390/rmi/corba/Util.java, in the copyObject method, needs to be rearranged so that CORBA Objects are not routed to the JDK ORBs implementation of copyObject. The problem is that the instance of Remote check is True for Stubs, which causes us to assume that the passed object is a wrapper. When we cast to the wrapper, we get a classcast exception because the object is really a stub not a wrapper.Problem conclusion The container was changed to throw RemoteExceptions and to map all exceptions raised during the bean lifecyle into a form transmissible across the rmi-iiop boundry. In copyObject and copyObjects(Util.java) there is now check for an EJSWrapper instead of a remote object and return a Stub. APAR PQ50136 is associated with SERVICE LEVEL W400025 of WebSphere Application Server V4.0 for z/OS and OS/390.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: UQ56395 Modules/Macros
|
Document Information |
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server for z/OS
Operating system(s):
Software version: 400
Software edition:
Reference #: PQ50136
IBM Group: Software Group
Modified date: Sep 5, 2001
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.