You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Tim Ellison (JIRA)" <ji...@apache.org> on 2009/10/07 20:57:31 UTC

[jira] Commented: (HARMONY-6346) [classlib] [archive] Several archive bugfixes and optimizations

    [ https://issues.apache.org/jira/browse/HARMONY-6346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12763190#action_12763190 ] 

Tim Ellison commented on HARMONY-6346:
--------------------------------------

Thanks Jesse,

Some interesting changes here.  I've applied a subset to start with:
 - Having so many whitespace changes in there made it harder to review.  While it is good to get formatting/tidy-up changes, best if they are in a separate patch for clarity sake.
 - I've not applied the changes to call the MsgHelp class (yet?).  I think this is part of a larger discussion that we should have about error messages, but again in any case it feels like a different type of enhancement I can go on to look at now the others are in place.

Please check that you are happy with the patch that was applied at repo revision r822846.

I won't close the JIRA just yet so we won't forget the other improvements.


> [classlib] [archive] Several archive bugfixes and optimizations
> ---------------------------------------------------------------
>
>                 Key: HARMONY-6346
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6346
>             Project: Harmony
>          Issue Type: Improvement
>          Components: Classlib
>         Environment: SVN Revision: 820775
>            Reporter: Jesse Wilson
>            Assignee: Tim Ellison
>         Attachments: archive_from_android.patch, archive_from_android_2.patch, EmptyEntries_signed.jar
>
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> The attached patch includes several miscellaneous bugfixes, optimizations and simplifications that we created for Android's copy of the archive module.  Here's an overview of what's changed:
> InflaterInputStream
>   Removes a bogus magic number check. Previously I submitted a patch to get this check to work; but the whole premise is flawed. To demonstrate, attempt to inflate data that was deflated using non-default settings.
> InflaterInputStream, ZipInputStream, GZIPInputStream
>   These now make sure that available() returns 0 when the end of the stream is reached. Previously available() could return 1 even if read() was guaranteed to return -1.
> GZIPOutputStream
>   Slight performance fix: cast from long to int only once
> JarFile
>   Verifies the entry when the last byte is returned. This is similar to the available() problem in ZipInputStream etc.
>   Move getMetaEntriesImpl() from native to Java.
> ZipFile
>   Limit the amount of memory used while reading files. Previously we would create arbitrarily large buffers.
>   Move several methods from native to Java.
> MsgHelp
>   Keep resource bundles in memory with soft references
>   Use the system classloader always.
> Tests
>   New tests to demonstrate problems above, recovery on broken manifests, verification of empty entries
> Note that there are some problems with the patch, so it should not be applied! I will to upload an improved patch early next week. I figured I'd let everyone preview the patch in its current state; the problems are minor and include removing dead code and fixing tests with invalid assumptions.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.