Class ServerRequestDispatcherImpl

    • Constructor Detail

      • ServerRequestDispatcherImpl

        public ServerRequestDispatcherImpl​(ORB orb)
    • Method Detail

      • locate

        public IOR locate​(ObjectKey okey)
        Called from ORB.locate when a LocateRequest arrives. Result is not always absolutely correct: may indicate OBJECT_HERE for non-existent objects, which is resolved on invocation. This "bug" is unavoidable, since in general the object may be destroyed between a locate and a request. Note that this only checks that the appropriate ObjectAdapter is available, not that the servant actually exists. Need to signal one of OBJECT_HERE, OBJECT_FORWARD, OBJECT_NOT_EXIST.
        Specified by:
        locate in interface ServerRequestDispatcher
        Parameters:
        okey - key to object to locate
        Returns:
        Result is null if object is (possibly) implemented here, otherwise an IOR indicating objref to forward the request to.
        Throws:
        OBJECT_NOT_EXIST - is thrown if we know the object does not exist here, and we are not forwarding.
      • generalMessage

        @InfoMethod
        private void generalMessage​(java.lang.String msg)
      • exceptionMessage

        @InfoMethod
        private void exceptionMessage​(java.lang.String msg,
                                      java.lang.Throwable thr)
      • releaseServant

        private void releaseServant​(ObjectAdapter objectAdapter)
      • checkServerId

        protected void checkServerId​(ObjectKey okey)
      • handleNullServant

        protected void handleNullServant​(java.lang.String operation,
                                         NullServant nserv)
        Always throws OBJECT_NOT_EXIST if operation is not a special method. If operation is _non_existent or _not_existent, this will just return without performing any action, so that _non_existent can return false. Always throws OBJECT_NOT_EXIST for any other special method. Update for issue 4385.
        Parameters:
        operation - Name of method to get
        nserv - Servant throw associated Exception if not such method exists.
      • objectInfo

        @InfoMethod
        private void objectInfo​(java.lang.String msg,
                                java.lang.Object obj)
      • consumeServiceContexts

        protected void consumeServiceContexts​(MessageMediator request)
      • sendingReply

        protected MessageMediator sendingReply​(MessageMediator req,
                                               Any excany)
        Must always be called, just after the servant's method returns. Creates the ReplyMessage header and puts in the transaction context if necessary.
        Parameters:
        req - original request
        excany - Any that contains an exception
        Returns:
        Response that contains the exception
      • codeSetServiceContextInfo

        @InfoMethod
        private void codeSetServiceContextInfo​(CodeSetServiceContext csctx)
      • processCodeSetContext

        protected boolean processCodeSetContext​(MessageMediator request,
                                                ServiceContexts contexts)
        Handles setting the connection's code sets if required. Returns true if the CodeSetContext was in the request, false otherwise.
        Parameters:
        request - request to process
        contexts - context to check
        Returns:
        if the CodeSetContext was in the request
      • operationAndId

        @InfoMethod
        private void operationAndId​(java.lang.String operation,
                                    int rid)