throw exception;
throw m_sys_ex;
  private void p_invoke()                 throws SystemException  {    binaryReply response = submit();    ReplyHeader rh = response.header.create_reply_header();    cdrBufInput input = response.getStream();    input.setOrb(orb);    rh.read(input);    // The stream must be aligned sinve v1.2, but only once.    boolean align = response.header.version.since_inclusive(1, 2);    switch (rh.reply_status)      {        case ReplyHeader.NO_EXCEPTION :          NamedValue arg;          // Read return value, if set.          if (m_result != null)            {              if (align)                {                  input.align(8);                  align = false;                }              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)                      {                        if (align)                          {                            input.align(8);                            align = false;                          }                        arg.value().read_value(input, arg.value().type());                      }                  }                catch (Bounds ex)                  {                    Unexpected.error(ex);                  }              }          break;        case ReplyHeader.SYSTEM_EXCEPTION :          if (align)            {              input.align(8);              align = false;            }          SystemException exception = ObjectCreator.readSystemException(input);          m_environment.exception(exception);          throw exception;        case ReplyHeader.USER_EXCEPTION :          if (align)            {              input.align(8);              align = false;            }          // 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);          break;        case ReplyHeader.LOCATION_FORWARD_PERM :        case ReplyHeader.LOCATION_FORWARD :          if (response.header.version.since_inclusive(1, 2))            input.align(8);          IOR forwarded = new IOR();          try            {              forwarded._read_no_endian(input);            }          catch (IOException ex)            {              new MARSHAL("Cant read forwarding info", 5103,                          CompletionStatus.COMPLETED_NO                         );            }          setIor(forwarded);          // Repeat with the forwarded information.          p_invoke();          return;        default :          throw new MARSHAL("Unknow reply status", 8100 + rh.reply_status,                            CompletionStatus.COMPLETED_NO                           );      }  }