public static byte[] decompressContents(byte[] fullMessage) throws DecompressionException {
  InflaterInputStream gzipReader=null;
  ByteArrayOutputStream uncompressed;
  try {
    gzipReader=new GZIPInputStream(new ByteArrayInputStream(fullMessage));
    uncompressed=new ByteArrayOutputStream(fullMessage.length);
    byte[] decompressBuffer=new byte[DECOMPRESS_BUFFER_SIZE];
    int bytesRead;
    while ((bytesRead=gzipReader.read(decompressBuffer)) > -1) {
      uncompressed.write(decompressBuffer,0,bytesRead);
    }
    fullMessage=uncompressed.toByteArray();
  }
 catch (  IOException e) {
    throw new DecompressionException("Unable to decompress response",e);
  }
 finally {
    try {
      if (gzipReader != null) {
        gzipReader.close();
      }
    }
 catch (    IOException e) {
      log.warn("Unable to close gzip stream",e);
    }
  }
  return fullMessage;
}

public static byte [ ] decompressContents ( byte [ ] fullMessage ) throws DecompressionException { InflaterInputStream gzipReader = null ; ByteArrayOutputStream uncompressed ; try { gzipReader = new GZIPInputStream ( new ByteArrayInputStream ( fullMessage ) ) ; uncompressed = new ByteArrayOutputStream ( fullMessage . length ) ; byte [ ] decompressBuffer = new byte [ DECOMPRESS_BUFFER_SIZE ] ; int bytesRead ; while ( ( bytesRead = gzipReader . read ( decompressBuffer ) ) > - 1 ) { uncompressed . write ( decompressBuffer , 0 , bytesRead ) ; } fullMessage = uncompressed . toByteArray ( ) ; } catch ( IOException e ) { throw new DecompressionException ( "Unable to decompress response" , e ) ; } finally { try { if ( gzipReader != null ) { gzipReader . close ( ) ; } } catch ( IOException e ) { log . warn ( "Unable to close gzip stream" , e ) ; } } return fullMessage ; }
decompresses the gzipped byte stream .
