harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Soldatov" <sergey.solda...@gmail.com>
Subject Re: [jira] Commented: (HARMONY-81) java.util.zip.Inflater.infalate() throws DataFormatException instead of actual number of uncompressed bytes
Date Wed, 26 Jul 2006 07:46:46 GMT
Mikhail,
Any comments so far ? :)


On 7/21/06, Sergey Soldatov <sergey.soldatov@gmail.com> wrote:
>
>  Well, good question :) As I already mentioned in comments for this issue,
> inflate(...) should return 0 if needsInput() or or needsDictionary()  is
> required. And the only exception which can be thrown is DataFormatException.
> So, any internal error in zlib which is not related to data format should be
> handled and inflate() should return zero in this case. Now let's get back to
> zlib. According to the zlib documentation inflate returns Z_STREAM_ERROR if
>  "the stream structure was inconsistent (for example if next_in or next_out
> was NULL)". And from my point of view it looks pretty similar to situation
> when needsInput() is required.
>
> For this particular case check for zero length can help, but IMHO we need
> to handle all Z_STREAM_ERROR errors.
>
>
> On 7/13/06, Mikhail Loenko <mloenko@gmail.com> wrote:
> >
> > Sergey
> >
> > why you think we should return 0 in case of Z_STREAM_ERROR?
> >
> > Don't we need just check for 0 the 'len' parameter?
> >
> > Thanks,
> > Mikhail
> >
> > 2006/7/12, Sergey Soldatov (JIRA) <jira@apache.org>:
> > >    [
> > http://issues.apache.org/jira/browse/HARMONY-81?page=comments#action_12420584]
> > >
> > > Sergey Soldatov commented on HARMONY-81:
> > > ----------------------------------------
> > >
> > > Could someone check the attached diff ?
> > >
> > > > java.util.zip.Inflater.infalate() throws DataFormatException instead
> > of actual number of uncompressed bytes
> > > >
> > -----------------------------------------------------------------------------------------------------------
> >
> > > >
> > > >          Key: HARMONY-81
> > > >          URL: http://issues.apache.org/jira/browse/HARMONY-81
> > > >      Project: Harmony
> > > >         Type: Bug
> > >
> > > >   Components: Classlib
> > > >     Reporter: Svetlana Samoilenko
> > > >  Attachments: harmony-81.diff
> > > >
> > > > Description:
> > > > According to the j2se 1.4 and 1.5 specification method
> > java.util.zip.Inflater.infalate(byte [] b, int off, int length ) returns
> > actual number of bytes uncompressed and throws DataFormatException if the
> > compressed data format is invalid.
> > > > The test listed below shows that Harmony throws DataFormatException
> > instead of return 0 (actual number of  uncompressed bytes).
> > > > Code to reproduce:
> > > > import java.util.zip.*;
> > > > public class test2 {
> > > >     public static void main(String[] args){
> > > >        Inflater inf = new Inflater();
> > > >        try {
> > > >           System.out.println("Inflater.inflate() = "+inf.inflate(new
> > byte[0], 0, 0));
> > > >        } catch(DataFormatException e) {
> > > >           e.printStackTrace();
> > > >        }
> > > > }
> > > > } Steps to Reproduce:
> > > > 1. Build Harmony (check-out on 2006-01-30) j2se subset as described
> > in README.txt.
> > > > 2. Compile test2.java using BEA 1.4 javac
> > > > > javac -d . test2.java
> > > > 3. Run java using compatible VM (J9)
> > > > > java -showversion test2
> > > > Output:
> > > > C:\tmp>C:\jrockit-j2sdk1.4.2_04\bin\java.exe -showversion test2
> > > > java version " 1.4.2_04"
> > > > Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05
> > )
> > > > BEA WebLogic JRockit(TM) 1.4.2_04 JVM (build
> > ari-31788-20040616-1132-win-ia32, Native Threads, GC strategy: parallel)
> > > > Inflater.inflate() = 0
> > > > C:\tmp>C:\harmony\trunk\deploy\jre\bin\java -showversion test2
> > > > (c) Copyright 1991, 2005 The Apache Software Foundation or its
> > licensors, as applicable.
> > > > java.util.zip.DataFormatException:
> > > >         at java.util.zip.Inflater.inflateImpl(Native Method)
> > > >         at java.util.zip.Inflater.inflate(Inflater.java:169)
> > > >         at test2.main (test2.java:7)
> > > >
> > > > Suggested junit test case:
> > > > ------------------------ InflaterTest.java-------------------------------------------------
> > > > import java.util.zip.*;
> > > > import junit.framework.*;
> > > > public class InflaterTest extends TestCase {
> > > >      public static void main(String[] args) {
> > > >         junit.textui.TestRunner.run(InflaterTest.class);
> > > >      }
> > > >      public void test_inflate () {
> > > >        Inflater inf = new Inflater();
> > > >        try {
> > > >            int n=inf.inflate(new byte[0], 0, 0);
> > > >            assertEquals(0, n);
> > > >        } catch(DataFormatException e) {
> > > >            fail("unexpected  DataFormatException");
> > > >        }
> > > >     }
> > > > }
> > >
> > > --
> > > This message is automatically generated by JIRA.
> > > -
> > > If you think it was sent incorrectly contact one of the
> > administrators:
> > >   http://issues.apache.org/jira/secure/Administrators.jspa
> > > -
> > > For more information on JIRA, see:
> > >   http://www.atlassian.com/software/jira
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> >
> >
>
>
> --
> Sergey Soldatov
> Intel Middleware Products Division
>



-- 
Sergey Soldatov
Intel Middleware Products Division

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message