docs: boolean cleanupLocalisations() throws SIResourceException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "cleanupLocalisations");
  
          // true if all localisations have been cleaned up successfully
          boolean allCleanedUp = true;
  
          // True if we determine calling reallocation is appropriate
          boolean reallocationCanBeCalled = false;
  
          //Check the destination has not already been deleted first
          if (!isDeleted())
          {
              synchronized (this) //Stop cleanup happening while the destination is being altered
              {
                  //synchronizes with updateLocalisationSet
                  //If the entire destination is to be deleted
                  //then all the localisations are to be deleted.
                  // 448943 Remove a check for !isReconciled - We dont need this
                  if (isToBeDeleted())
                  {
                      addAllLocalisationsForCleanUp();
                  }
  
                  allCleanedUp = _protoRealization.cleanupPremediatedItemStreams();
  
                  if (!isPubSub())
                  {
                      //If the entire destination is being deleted, clean up the remote get
                      //infrastructure
                      if (isToBeDeleted())
                      {
                          boolean remoteGetCleanup = _ptoPRealization.cleanupLocalisations();
                          if (allCleanedUp)
                              allCleanedUp = remoteGetCleanup;
                      }
                      else
                      {
                          // PK57432 We are not deleting the destination. Just perform
                          // any other localisation cleanup
                          reallocationCanBeCalled = true;
                      }
                  }
                  else
                  {
                      // For pub/sub, we'll want to remove any infrastructure associated with
                      // durable subscriptions since these are implemented as queue-like localizations.
                      if (isToBeDeleted())
                      {
                          boolean pubSubCleanedUp = _pubSubRealization.cleanupLocalisations();
                          if (allCleanedUp)
                              allCleanedUp = pubSubCleanedUp;
                      }
                      else
                      {
                          // We are not deleting the destination. Just perform
                          // any other localisation cleanup
                          reallocationCanBeCalled = true;
                      }
                  }
  
              }
          }
  
          // PK57432 We must not hold any locks when we reallocate.
          if (reallocationCanBeCalled)
          {
              boolean syncReallocRequiredCheck;
              synchronized (this) {
                  syncReallocRequiredCheck = _isToBeReallocated;
                  _isToBeReallocated = false;
              }
              if (syncReallocRequiredCheck)
                  reallocateTransmissionStreams(null);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "cleanupLocalisations", Boolean.valueOf(allCleanedUp));
  
          return allCleanedUp;
      }