code: @Override
      public final byte[] compress(byte[] payload) {
          Assert.notNull(payload, "payload cannot be null.");
  
          try {
              return doCompress(payload);
          } catch (IOException e) {
              throw new CompressionException("Unable to compress payload.", e);
          }
      }
docs: Asserts that payload is not null and calls {@link #doCompress(byte[]) doCompress}
  
  @param payload bytes to compress
  @return compressed bytes
  @throws CompressionException if {@link #doCompress(byte[]) doCompress} throws an IOException