code: public long[] snapshot() {
          this.increment(0);  //  refresh just in case it's been idle a long time
          final long[] range = new long[this.buckets.length];
          if (this.indexOfOldest != 0) {
              final int lengthOfFirstSection = this.buckets.length - this.indexOfOldest;
              System.arraycopy(this.buckets, this.indexOfOldest, range, 0, lengthOfFirstSection);
              System.arraycopy(this.buckets, 0, range, lengthOfFirstSection, this.buckets.length - lengthOfFirstSection); //  wrap around
          } else {
              System.arraycopy(this.buckets, this.indexOfOldest, range, 0, this.buckets.length);
          }
          Collections.reverse(Longs.asList(range));
          return range;
      }
docs: Create a snapshot of the data from newest (at position 0) to the oldest
  (at end) data stored in this recent events counter.
  
  @return An array of longs containing a copy of data in the window.