code: protected Object[] purge() {
          Object[] data = new Object[getCurrentNumElements()];
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "LocalPool is purging " + data.length + " items.  firstEntry: " + firstEntry + " lastEntry: " + lastEntry + " poolSize: " + poolSize);
          }
  
          if (0 < data.length) {
              int out = 0;
              if (lastEntry >= firstEntry) {
                  for (int i = firstEntry; i <= lastEntry; i++) {
                      data[out] = free[i];
                      free[i] = null;
                      out++;
                  }
              } else {
                  for (int i = firstEntry; i < poolSize; i++) {
                      data[out] = free[i];
                      free[i] = null;
                      out++;
                  }
                  for (int i = 0; i <= lastEntry; i++) {
                      data[out] = free[i];
                      free[i] = null;
                      out++;
                  }
              }
  
              lastEntry = -1;
              firstEntry = -1;
          }
  
          return data;
      }
docs: Purge the contents and hand them to the calling pool that
  owns this threadlocal version.
  
  @return Object[]