code: public void reattachConsumer(SIBUuid8 uuid, ConsumableKey ck)
    throws SINotPossibleInCurrentConfigurationException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(this, tc, "reattachConsumer", new Object[] {uuid, ck});
  
      long timeout = LocalConsumerPoint.NO_WAIT;
      
      synchronized(this)
      {
        if (!closed)
        {
          // Set the new consumer key to be the same ready state as the rest 
          // of the gathering consumer        
          if (isKeyReady())
          {
            //get the readyConsumer list lock
            synchronized (dispatcher.getDestination().getReadyConsumerPointLock())
            {
              ck.ready(unrecoverable);
            }
          }
          
          consumerKeys.put(uuid, ck);
    
          // Work out the expiry time if any of the outstanding requests
          if (outstandingRequestExpiryTime != LocalConsumerPoint.NO_WAIT)
          {
            timeout = outstandingRequestExpiryTime;
            
            if (timeout != LocalConsumerPoint.INFINITE_WAIT)
              timeout = outstandingRequestExpiryTime - System.currentTimeMillis(); 
          }
        }
      }
        
      // outside of the lock - reissue the request
      if (timeout == LocalConsumerPoint.INFINITE_WAIT || timeout > 0)
      {
        ((LocalQPConsumerKey)ck).initiateRefill();
        ck.waiting(timeout, true);
      }
      
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(this, tc, "reattachConsumer");
    }
docs: Also add the consumer key back into the list.