You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mikhail Markov (JIRA)" <ji...@apache.org> on 2007/04/23 14:06:21 UTC
[jira] Commented: (HARMONY-3703) [classlib][archive][netbeans]
GZIPInputStream throws IOException when feeding from the network
[ https://issues.apache.org/jira/browse/HARMONY-3703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12490915 ]
Mikhail Markov commented on HARMONY-3703:
-----------------------------------------
Vasily, I could not reproduce the described problem on my WinXP.
On RI, J9 & DRLVM i get the same following output with your test (with the specified http address):
0
777
...
386865
Did you tried on Windows or on Linux?
> [classlib][archive][netbeans] GZIPInputStream throws IOException when feeding from the network
> ----------------------------------------------------------------------------------------------
>
> Key: HARMONY-3703
> URL: https://issues.apache.org/jira/browse/HARMONY-3703
> Project: Harmony
> Issue Type: Bug
> Components: App-Oriented Bug Reports, Classlib
> Reporter: Vasily Zakharov
>
> When java.util.zip.GZIPInputStream is passed a stream constructed from a network URL, it throws IOException (Crc mismatch) at end-of-stream. If the same content is fed through local file URL, the problem doesn't occur. It looks like some end-of-stream detection problem is in place, or a race condition.
> public class Test {
> public static void main(String args[]) throws Exception {
> byte[] buffer = new byte[0x100000];
> String url =
> "http://www.netbeans.org/updates/55_1.20_.xml.gz";
> //"file:55_1.20_.xml.gz";
> java.io.InputStream stream = new java.util.zip.GZIPInputStream(new java.net.URL(url).openStream());
> int length = 0, num = 0;
> while (num >= 0) {
> length += num;
> System.out.println(length);
> num = stream.read(buffer, length, (buffer.length - length));
> }
> }
> }
> $ Ri/bin/java -Dhttp.proxyHost=$PROXY_HOST -Dhttp.proxyPort=$PROXY_PORT Test
> 0
> 777
> 3392
> ...
> 386431
> SUCCESS
> $ HY/bin/java -Dhttp.proxyHost=$PROXY_HOST -Dhttp.proxyPort=$PROXY_PORT Test
> 0
> 777
> 3392
> ...
> 386431
> Exception in thread "main" java.io.IOException: Crc mismatch
> at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:166)
> at Test.main(Test.java:13)
> On IBM VM, this result is stable. On DRLVM, the test sometimes (rarely) passes, and sometimes (also rarely) another exception occurs instead of IOException:
> Uncaught exception in main:
> java.lang.ArrayIndexOutOfBoundsException: bad arrayCopy
> at java.lang.VMMemoryManager.arrayCopy(VMMemoryManager.java)
> at java.lang.System.arraycopy(System.java:86)
> at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:161)
> at Test.main(Test.java:13)
> If content is previously downloaded (wget http://www.netbeans.org/updates/55_1.20_.xml.gz) and local file URL is used instead of network URL (comment line 5, uncomment line 6), output on Harmony becomes identical to output on RI.
> This problem was discovered while trying to run NetBeans on Harmony.
> Issue HARMONY-3702 was also filed while investigating this one.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.