Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4669071

System Exception in ServantActivator.etherealize() causes StackOverflowError

    XMLWordPrintable

Details

    • beta
    • sparc
    • solaris_1
    • Not verified

    Description

      ******************************************************************************

      ###@###.### 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

      ******************************************************************************

      Attachments

        Issue Links

          Activity

            People

              hputtaswsunw Hemanth Puttaswamy (Inactive)
              smanuel Sony Manuel (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: