--- old/src/java.corba/share/classes/com/sun/corba/se/spi/oa/ObjectAdapter.java 2015-05-05 20:15:04.739833424 +0400 +++ new/src/java.corba/share/classes/com/sun/corba/se/spi/oa/ObjectAdapter.java 2015-05-05 20:15:04.655833424 +0400 @@ -89,7 +89,7 @@ *
  • A local invocation, where the dispatch is handled in the client subcontract.
  • *
  • A cached local invocation, where the servant is cached when the IOR is established * for the client subcontract, and the dispatch is handled in the client subcontract -* to the cached subcontract.
  • +* to the cached subcontract.
  • * *

    * Each of these 3 cases is handled a bit differently. On each request, assume as known @@ -113,9 +113,9 @@ *

  • pop info
  • * * -* REVISIT: Is this the required order for exit/pop? Cna they be nested instead? +* *
  • The local pattern: *
      *
    1. oa = oaf.find( oaid )
    2. @@ -128,10 +128,10 @@ *
    3. oa.returnServant()
    4. *
    5. oa.exit()
    6. *
    7. pop info
    8. -*
        +*
      * -* This is the same as the remote case, except that setExecuteReturnServantInResponseConstructor -* is not needed (or possible, since there is no server request). +* *
    9. The fast local pattern: When delegate is constructed, * first extract ObjectKey from IOR in delegate, * then get ObjectId, ObjectAdapterId, and ObjectAdapterFactory (oaf). Then: @@ -143,14 +143,14 @@ *
    10. pop info *
    * The info instance (which includes the Servant) is cached in the client subcontract. -*

    Then, on each invocation:

    +*

    Then, on each invocation: *

      *
    1. newinfo = copy of info (clone)
    2. *
    3. info.setOperation( operation )
    4. *
    5. push newinfo
    6. *
    7. oa.enter()
    8. *
    9. dispatch to servant
    10. -*
    11. oa.returnServant()
    12. // XXX This is probably wrong: remove it. +*
    13. oa.returnServant()
    14. *
    15. oa.exit()
    16. *
    17. pop info
    18. *