-
Bug
-
Resolution: Fixed
-
P3
-
1.4.1
-
beta
-
sparc
-
solaris_1
-
Not verified
******************************************************************************
###@###.### 2002-04-16
- build j2sdk-1_4_1-beta-bin-b08-solaris-sparc-09_apr_2002
- Spec reference (formal/99-10-07) Section 11.3.5.2
- Problem description.
As per the spec Section 11.3.5.2 if etherealize operation returns a system exception, POA ignores the exception.
The current implementation does not handle this exception and just returns it to the thread invoking POA.destroy(true,true). The causes POA to be in an undefined state and any subsequent requests results in an infinite recursion and a StackOverflowError internally in POA. The client receives CORBA.UNKNOWN with a minor code 202.
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch entered
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: targetScid = 32
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: POADestroyed exception caught
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch entered
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: targetScid = 32
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: POADestroyed exception caught
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch entered
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: targetScid = 32
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: POADestroyed exception caught
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch enteredcom.sun.corba.se.internal.iiop.LocalServerRequestImpl(Thread[main,5,main]): Sending SystemException:
org.omg.CORBA.UNKNOWN: Unknown Application exception on server: java.lang.StackOverflowError vmcid: SUN minor code: 202 completed: Maybe
at com.sun.corba.se.internal.iiop.ORB.convertThrowableToSystemException(ORB.java:353)
at com.sun.corba.se.internal.iiop.ORB.handleThrowableDuringServerDispatch(ORB.java:393)
at com.sun.corba.se.internal.iiop.ORB.handleThrowableDuringServerDispatch(ORB.java:363)
at com.sun.corba.se.internal.iiop.ORB.process(ORB.java:254)
at com.sun.corba.se.internal.iiop.LocalClientRequestImpl.invoke(LocalClientRequestImpl.java:98)
at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:235)
at com.sun.corba.se.internal.POA.GenericPOAClientSC.invoke(GenericPOAClientSC.java:93)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
at test._HelloStub.hello(_HelloStub.java:19)
at test.Server.main(Server.java:49)
com.sun.corba.se.internal.POA.GenericPOAClientSC(Thread[main,5,main]): invoke: response returned
com.sun.corba.se.internal.POA.GenericPOAClientSC(Thread[main,5,main]): invoke: reponse is system exception
com.sun.corba.se.internal.POA.GenericPOAClientSC(Thread[main,5,main]): invoke: system exception org.omg.CORBA.UNKNOWN: vmcid: SUN minor code: 202 completed: Maybe
com.sun.corba.se.internal.POA.GenericPOAClientSC(Thread[main,5,main]): invoke: processing response service contexts
core.IOR.isTransactional returns false
Exception in thread "main" org.omg.CORBA.UNKNOWN: vmcid: SUN minor code: 202 completed: Maybe
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:296)
at java.lang.Class.newInstance(Class.java:249)
at com.sun.corba.se.internal.iiop.messages.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:90)
at com.sun.corba.se.internal.iiop.LocalClientResponseImpl.getSystemException(LocalClientResponseImpl.java:122)
at com.sun.corba.se.internal.POA.GenericPOAClientSC.invoke(GenericPOAClientSC.java:129)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
at test._HelloStub.hello(_HelloStub.java:19)
at test.Server.main(Server.java:49)
*** Error code 1
make: Fatal error: Command failed for target `runserver'
Run the attached test to reproduce the problem
******************************************************************************
###@###.### 2002-04-16
- build j2sdk-1_4_1-beta-bin-b08-solaris-sparc-09_apr_2002
- Spec reference (formal/99-10-07) Section 11.3.5.2
- Problem description.
As per the spec Section 11.3.5.2 if etherealize operation returns a system exception, POA ignores the exception.
The current implementation does not handle this exception and just returns it to the thread invoking POA.destroy(true,true). The causes POA to be in an undefined state and any subsequent requests results in an infinite recursion and a StackOverflowError internally in POA. The client receives CORBA.UNKNOWN with a minor code 202.
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch entered
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: targetScid = 32
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: POADestroyed exception caught
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch entered
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: targetScid = 32
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: POADestroyed exception caught
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch entered
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: targetScid = 32
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch: POADestroyed exception caught
com.sun.corba.se.internal.POA.GenericPOAServerSC(Thread[main,5,main]): internalDispatch enteredcom.sun.corba.se.internal.iiop.LocalServerRequestImpl(Thread[main,5,main]): Sending SystemException:
org.omg.CORBA.UNKNOWN: Unknown Application exception on server: java.lang.StackOverflowError vmcid: SUN minor code: 202 completed: Maybe
at com.sun.corba.se.internal.iiop.ORB.convertThrowableToSystemException(ORB.java:353)
at com.sun.corba.se.internal.iiop.ORB.handleThrowableDuringServerDispatch(ORB.java:393)
at com.sun.corba.se.internal.iiop.ORB.handleThrowableDuringServerDispatch(ORB.java:363)
at com.sun.corba.se.internal.iiop.ORB.process(ORB.java:254)
at com.sun.corba.se.internal.iiop.LocalClientRequestImpl.invoke(LocalClientRequestImpl.java:98)
at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:235)
at com.sun.corba.se.internal.POA.GenericPOAClientSC.invoke(GenericPOAClientSC.java:93)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
at test._HelloStub.hello(_HelloStub.java:19)
at test.Server.main(Server.java:49)
com.sun.corba.se.internal.POA.GenericPOAClientSC(Thread[main,5,main]): invoke: response returned
com.sun.corba.se.internal.POA.GenericPOAClientSC(Thread[main,5,main]): invoke: reponse is system exception
com.sun.corba.se.internal.POA.GenericPOAClientSC(Thread[main,5,main]): invoke: system exception org.omg.CORBA.UNKNOWN: vmcid: SUN minor code: 202 completed: Maybe
com.sun.corba.se.internal.POA.GenericPOAClientSC(Thread[main,5,main]): invoke: processing response service contexts
core.IOR.isTransactional returns false
Exception in thread "main" org.omg.CORBA.UNKNOWN: vmcid: SUN minor code: 202 completed: Maybe
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:296)
at java.lang.Class.newInstance(Class.java:249)
at com.sun.corba.se.internal.iiop.messages.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:90)
at com.sun.corba.se.internal.iiop.LocalClientResponseImpl.getSystemException(LocalClientResponseImpl.java:122)
at com.sun.corba.se.internal.POA.GenericPOAClientSC.invoke(GenericPOAClientSC.java:129)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
at test._HelloStub.hello(_HelloStub.java:19)
at test.Server.main(Server.java:49)
*** Error code 1
make: Fatal error: Command failed for target `runserver'
Run the attached test to reproduce the problem
******************************************************************************
- relates to
-
JDK-4669359 Order of POA destruction in poa.destroy(true, true) in not spec compliant
-
- Closed
-