catch (ForwardRequest fex) {  if (s_intercept) { Forwarding: while (true) { s_info.m_reply_header.reply_status = ReplyHeader.LOCATION_FORWARD; s_info.m_forward_reference = fex.forward; try { s_interceptor.send_other(s_info); break Forwarding; } catch (ForwardRequest fex2) { s_info.m_forward_reference = fex2.forward; fex.forward = s_info.m_forward_reference; } } }  if (c_intercept) { this.m_rph.reply_status = ReplyHeader.LOCATION_FORWARD; this.m_forwarding_target = fex.forward; try { c_interceptor.receive_other(c_info); } catch (ForwardRequest fex2) { fex.forward = fex2.forward; } } throw new gnuForwardRequest(fex.forward); } catch (gnuForwardRequest fex) {   if (s_intercept) { Forwarding: while (true) { s_info.m_reply_header.reply_status = ReplyHeader.LOCATION_FORWARD; s_info.m_forward_reference = fex.forward_reference; try { s_interceptor.send_other(s_info); break Forwarding; } catch (ForwardRequest fex2) { s_info.m_forward_reference = fex2.forward; fex.forward_reference = (ObjectImpl) fex2.forward; } } }  if (c_intercept) { this.m_rph.reply_status = ReplyHeader.LOCATION_FORWARD; this.m_forwarding_target = fex.forward_reference; try { c_interceptor.receive_other(c_info); } catch (ForwardRequest fex2) { fex.forward_reference = (ObjectImpl) fex2.forward; } } throw fex; } }
  public org.omg.CORBA.portable.InputStream v_invoke(InvokeHandler handler)  {    if (handler == null)      handler = object.getHandler(operation(), cookie, false);    cdrBufOutput request_part = new cdrBufOutput();    request_part.setOrb(orb());    if (m_args != null && m_args.count() > 0)      {        write_parameters(header, request_part);        if (m_parameter_buffer != null)          throw new BAD_INV_ORDER("Please either add parameters or " +                                  "write them into stream, but not both " +                                  "at once."                                 );      }    if (m_parameter_buffer != null)      {        write_parameter_buffer(header, request_part);      }    Servant servant;    if (handler instanceof Servant)      servant = (Servant) handler;    else      throw new BAD_OPERATION("Unexpected handler type " + handler);    org.omg.CORBA.portable.InputStream input =      request_part.create_input_stream();    // Ensure the servant (handler) has a delegate set.    servantDelegate sd = null;    Delegate d = null;    try      {        d = servant._get_delegate();      }    catch (Exception ex)      {        // In some cases exception is thrown if the delegate is not set.      }    if (d instanceof servantDelegate)      {        // If the delegate is already set, try to reuse the existing        // instance.        sd = (servantDelegate) d;        if (sd.object != object)          sd = new servantDelegate(servant, poa, Id);      }    else      sd = new servantDelegate(servant, poa, Id);    servant._set_delegate(sd);    try      {        ORB o = orb();        if (o instanceof ORB_1_4)          {            ((ORB_1_4) o).currents.put(Thread.currentThread(), this);          }        handler._invoke(m_operation, input, this);      }    finally      {        ORB o = orb();        if (o instanceof ORB_1_4)          ((ORB_1_4) o).currents.remove(Thread.currentThread());      }    if (poa.servant_locator != null)      poa.servant_locator.postinvoke(object.Id, poa, operation(), cookie.value,                                     object.getServant()                                    );    return buffer.create_input_stream();  }