code: protected byte[] decompress(final byte[] in) {
          if (in == null) {
              return null;
          }
  
          ByteArrayOutputStream bos = new ByteArrayOutputStream();
          ByteArrayInputStream bis = new ByteArrayInputStream(in);
          GZIPInputStream gis = null;
  
          try {
              gis = new GZIPInputStream(bis);
  
              byte[] buf = new byte[8192];
              int r = -1;
              while ((r = gis.read(buf)) > 0) {
                  bos.write(buf, 0, r);
              }
  
              return bos.toByteArray();
          } catch (IOException e) {
              throw new RuntimeException("IO exception decompressing data", e);
          } finally {
              close(gis);
              close(bis);
              close(bos);
          }
      }
docs: Decompress the given array of bytes.
  
  @param in
  data to decompress
  @return null if the bytes cannot be decompressed