String uxId = input.read_string(); input.reset();
gnuAny exc = new gnuAny();
  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);    boolean moved_permanently = false;    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;            }          input.mark(2000);          String uxId = input.read_string();          input.reset();          UserException uex = ObjectCreator.readUserException(uxId, input);          if (uex == null)            m_environment.exception(new UserException(uxId));          else            m_environment.exception(uex);          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)            {              throw new MARSHAL(ex + " while reading the forwarding info");            }          setIor(forwarded);          // Repeat with the forwarded information.          p_invoke();          return;        default :          throw new MARSHAL("Unknow reply status: " + rh.reply_status);      }  }