else
} else
  public void invoke()  {    InvokeHandler handler = object.getHandler(operation(), cookie, false);    if (handler instanceof dynImpHandler)      {        DynamicImplementation dyn = ((dynImpHandler) handler).servant;        if (serverRequest == null)          serverRequest = new LocalServerRequest(this);        try          {            poa.m_orb.currents.put(Thread.currentThread(), this);            dyn.invoke(serverRequest);          }        finally          {            poa.m_orb.currents.remove(Thread.currentThread());          }      }    else      {        org.omg.CORBA.portable.InputStream input = v_invoke(handler);        if (!exceptionReply)          {            NamedValue arg;            // Read return value, if set.            if (m_result != null)              {                m_result.value().read_value(input, m_result.value().type());              }            // Read returned parameters, if set.            if (m_args != null)              for (int i = 0; i < m_args.count(); i++)                {                  try                    {                      arg = m_args.item(i);                      // Both ARG_INOUT and ARG_OUT have this binary flag set.                      if ((arg.flags() & ARG_OUT.value) != 0)                        {                          arg.value().read_value(input, arg.value().type());                        }                    }                  catch (Bounds ex)                    {                      Unexpected.error(ex);                    }                }          }        else // User exception reply          {            // Prepare an Any that will hold the exception.            gnuAny exc = new gnuAny();            exc.insert_Streamable(new streamReadyHolder(input));            UnknownUserException unuex = new UnknownUserException(exc);            m_environment.exception(unuex);          }      }  }