[infinispan-dev] Getting rid of GZipInputStream

galder at jboss.org galder at jboss.org
Mon Apr 19 06:36:32 EDT 2010


Hi Philippe,

So, to sum up, trying to fix https://jira.jboss.org/jira/browse/ISPN-133 won't solve your problem, correct? Did you test this out by any chance?

Did you test Bzip2Compressor streams to see if that worked?

Cheers,

----- "philippe van dyck" <pvdyck at gmail.com> wrote:

> Hi all,
> 
> the problem is in the JDK and linked to a 10 years old -never fixed-
> bug in GZipInputStream...
> I propose to get rid of GZipInputStream and use Apache Commons
> Bzip2Compressor streams in the CloudCacheStore.
> 
> (And BTW, using len=inputStream.available() is a very bad idea with
> GZipInputStream...)
> 
> WDYT ?
> 
> phil
> 
> Début du message réexpédié :
> 
> > De : Philippe Van Dyck <pvdyck at gmail.com>
> > Date : 16 avril 2010 10:45:19 HAEC
> > À : infinispan -Dev List <infinispan-dev at lists.jboss.org>
> > Objet : Bug : read after end of stream @ AbstractMarshaller
> > 
> > Hi all,
> > 
> > since I use an InflaterInputStream to send objects to S3 using
> JClouds Blobstore, I need a very strict management of streams.
> > In AbstractMarshaller,  while ((bytesRead = inputStream.read(buf, 0,
> buf.length)) != -1) bytes.write(buf, 0, bytesRead) will read after the
> stream's end, waiting for '-1' to happen.
> > You cannot do that with a GZIPInputStream because you will get a
> "java.io.EOFException: Unexpected end of ZLIB input stream".
> > Should I file a bug or correct the code ?
> > 
> > phil
> Début du message réexpédié :
> 
> > De : Philippe Van Dyck <pvdyck at gmail.com>
> > Date : 16 avril 2010 10:52:22 HAEC
> > À : infinispan -Dev List <infinispan-dev at lists.jboss.org>
> > Objet : Réexp : Bug : read after end of stream @ AbstractMarshaller
> > 
> > Ok, I took a closer look.
> > Actually, it is related to HTTPCORE-199, and this bug is fixed.
> > What about using int len = inputStream.available(); in
> AbstractMarshaller again ?
> > 
> > phil
> > 
> > ---------- Forwarded message ----------
> > From: Philippe Van Dyck <pvdyck at gmail.com>
> > Date: Fri, Apr 16, 2010 at 10:45 AM
> > Subject: Bug : read after end of stream @ AbstractMarshaller
> > To: infinispan -Dev List <infinispan-dev at lists.jboss.org>
> > 
> > 
> > Hi all,
> > 
> > since I use an InflaterInputStream to send objects to S3 using
> JClouds Blobstore, I need a very strict management of streams.
> > In AbstractMarshaller,  while ((bytesRead = inputStream.read(buf, 0,
> buf.length)) != -1) bytes.write(buf, 0, bytesRead) will read after the
> stream's end, waiting for '-1' to happen.
> > You cannot do that with a GZIPInputStream because you will get a
> "java.io.EOFException: Unexpected end of ZLIB input stream".
> > Should I file a bug or correct the code ?
> > 
> > phil
> > 
> Début du message réexpédié :
> 
> > De : Philippe Van Dyck <pvdyck at gmail.com>
> > Date : 16 avril 2010 11:50:54 HAEC
> > À : infinispan -Dev List <infinispan-dev at lists.jboss.org>
> > Objet : Réexp : Bug : read after end of stream @ AbstractMarshaller
> > 
> > Ok, JDK Bug 
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6519463
> > 
> > The workaround is to simply ignore (!) the EOFException...
> > 
> > WDYT ?
> > 
> > phil
> > 
> > ---------- Forwarded message ----------
> > From: Philippe Van Dyck <pvdyck at gmail.com>
> > Date: Fri, Apr 16, 2010 at 10:52 AM
> > Subject: Fwd: Bug : read after end of stream @ AbstractMarshaller
> > To: infinispan -Dev List <infinispan-dev at lists.jboss.org>
> > 
> > 
> > Ok, I took a closer look.
> > Actually, it is related to HTTPCORE-199, and this bug is fixed.
> > What about using int len = inputStream.available(); in
> AbstractMarshaller again ?
> > 
> > phil
> > 
> > 
> > ---------- Forwarded message ----------
> > From: Philippe Van Dyck <pvdyck at gmail.com>
> > Date: Fri, Apr 16, 2010 at 10:45 AM
> > Subject: Bug : read after end of stream @ AbstractMarshaller
> > To: infinispan -Dev List <infinispan-dev at lists.jboss.org>
> > 
> > 
> > Hi all,
> > 
> > since I use an InflaterInputStream to send objects to S3 using
> JClouds Blobstore, I need a very strict management of streams.
> > In AbstractMarshaller,  while ((bytesRead = inputStream.read(buf, 0,
> buf.length)) != -1) bytes.write(buf, 0, bytesRead) will read after the
> stream's end, waiting for '-1' to happen.
> > You cannot do that with a GZIPInputStream because you will get a
> "java.io.EOFException: Unexpected end of ZLIB input stream".
> > Should I file a bug or correct the code ?
> > 
> > phil
> > 
> > 
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev



More information about the infinispan-dev mailing list