code: public static InputStream getGZIPDecompressStream(byte[] buffer) throws IOException {
          ByteArrayInputStream bytesIn = new ByteArrayInputStream(buffer);
          GZIPInputStream gzipIn = new GZIPInputStream(bytesIn);
          return gzipIn;
      }
docs: Create and return an InputStream that will read the given byte[] and decompress it
  as bytes are read from the stream. Reading the byte[] as a decompression stream
  saves memory when the array is large.
  
  @param buffer        A byte[] containing a GZIP-compressed value.
  @return              An InputStream that will stream the decompressed value as
  bytes as read.
  @throws IOException  If an error occurs creating the GZIPInputStream (e.g., the
  byte[] value is not a valid GZIP-compressed message).