RpcOutputStream extends FileOutputStream { private void readTrailer(byte[] bytes) throws IOException { InputStream in = new ByteArrayInputStream(bytes); long intIn = readUInt(in); long len = readUInt(in); Checksum checksum = this.checkedOutStream.getChecksum(); if ((checksum != null) && (intIn != checksum.getValue())) { throw new IOException("Corrupt GZIP trailer (bad CRC value)"); } if (len != (inflater.getBytesWritten() & 0xffffffffL)) { throw new IOException("Corrupt GZIP trailer (bad bytes-written size)"); } } RpcOutputStream(RpcPerforceFile file);  RpcOutputStream(RpcPerforceFile file, RpcConnection rpcConnection, boolean useLocalDigester);  RpcOutputStream(RpcPerforceFile file, Charset charset, boolean isUnicodeServer,
	                       boolean useLocalDigester);  RpcOutputStream(RpcPerforceFile file, Charset charset, boolean isUnicodeServer,
	                       boolean useLocalDigester, int filesys_utf8bom); @Override void close(); long write(Map<String, Object> map); @Override void write(byte[] sourceBytes, int off, int len); @Override void write(byte[] b); long writeConverted(byte[] sourceBytes); @Override void write(int b); RpcPerforceFile getFile(); String getServerDigest(); void setServerDigest(String serverDigest); MD5Digester getLocalDigester(); void setLocalDigester(MD5Digester localDigester);  }
@Test public void testReadTrailer() throws Exception { }