docs: @Override
      public void deleteTemporaryDestination(SIDestinationAddress destAddr)
                      throws SIConnectionUnavailableException, SIConnectionDroppedException,
                      SIErrorException,
                      SIDestinationLockedException, SITemporaryDestinationNotFoundException, SIResourceException, SIIncorrectCallException
      {
          if (TraceComponent.isAnyTracingEnabled() && CoreSPIConnection.tc.isEntryEnabled())
              SibTr.entry(CoreSPIConnection.tc, "deleteTemporaryDestination",
                          new Object[] { this, destAddr });
  
          // Synchronize on the close object, we don't want the connection closing
          // while we try to delete the destination.
          synchronized (this)
          {
              // See if this connection has been closed
              checkNotClosed();
  
              if (destAddr == null)
              {
                  SIIncorrectCallException e =
                                  new SIIncorrectCallException(
                                                  nls_cwsir.getFormattedMessage(
                                                                                "CREATE_PRODUCER_CWSIR0071",
                                                                                null,
                                                                                null));
                  if (TraceComponent.isAnyTracingEnabled() && CoreSPIConnection.tc.isEntryEnabled() && tc.isEntryEnabled())
                      SibTr.exit(tc, "deleteTemporaryDestination", e);
  
                  throw e;
              }
  
              // Synchronize on the temporaryDestinations list object so that we can't collide
              // on creations. This will also ensure list integrity.
              synchronized (_temporaryDestinations)
              {
                  //verify this temporary destination is in current list
                  int index = _temporaryDestinations.indexOf(destAddr.getDestinationName());
                  if (index == -1)
                  {
                      if (TraceComponent.isAnyTracingEnabled() && CoreSPIConnection.tc.isEntryEnabled())
                          SibTr.exit(tc, "deleteTemporaryDestination", "SITemporaryDestinationNotFoundException");
                      throw new SIMPTemporaryDestinationNotFoundException(
                                      nls.getFormattedMessage(
                                                              "TEMPORARY_DESTINATION_NAME_ERROR_CWSIP0097",
                                                              new Object[] { destAddr },
                                                              null));
                  }
  
                  //pass to the destination manager
                  _destinationManager.deleteTemporaryDestination((JsDestinationAddress) destAddr);
  
                  //remove entry from list
                  _temporaryDestinations.remove(index);
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && CoreSPIConnection.tc.isEntryEnabled())
              SibTr.exit(CoreSPIConnection.tc, "deleteTemporaryDestination");
      }