if (servant != null)
if (servant != null && !noRetain)
  public InvokeHandler getHandler(String operation, CookieHolder cookie,                                  boolean forwarding_allowed  ) throws gnuForwardRequest  {    if (servant != null)      {      return servantToHandler(servant);      }    else      {        // Use servant locator to locate the servant.        if (poa.servant_locator != null)          {            try              {                servant =                  poa.servant_locator.preinvoke(Id, poa, operation, cookie);                return servantToHandler(servant);              }            catch (org.omg.PortableServer.ForwardRequest forw_ex)              {                if (forwarding_allowed)                  {                  throw new gnuForwardRequest(forw_ex.forward_reference);                  }                else                  {                    servant =                      ForwardedServant.create(forw_ex.forward_reference);                    return servantToHandler(servant);                  }              }          }        else        // Use servant activator to locate the servant.        if (poa.applies(ImplicitActivationPolicyValue.IMPLICIT_ACTIVATION) &&            poa.applies(ServantRetentionPolicyValue.RETAIN)           )          {            try              {                poa.activate_object_with_id(Id, servant, forwarding_allowed);                servant = poa.id_to_servant(Id);                return servantToHandler(servant);              }            catch (gnuForwardRequest forwarded)              {                throw forwarded;              }            catch (Exception ex)              {                BAD_OPERATION bad =                  new BAD_OPERATION("Unable to activate", Minor.Activation,                                    CompletionStatus.COMPLETED_NO                                   );                bad.initCause(ex);                throw bad;              }          }        else if (poa.default_servant != null)          {            servant = poa.default_servant;            return servantToHandler(servant);          }        // No servant and no servant manager - throw exception.        else          {            throw new BAD_OPERATION("Unable to activate", Minor.Activation,                                  CompletionStatus.COMPLETED_NO                                 );      }  }  }