Return-Path: X-Original-To: apmail-hc-dev-archive@www.apache.org Delivered-To: apmail-hc-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C78649167 for ; Tue, 7 Feb 2012 12:21:24 +0000 (UTC) Received: (qmail 14612 invoked by uid 500); 7 Feb 2012 12:21:24 -0000 Delivered-To: apmail-hc-dev-archive@hc.apache.org Received: (qmail 14582 invoked by uid 500); 7 Feb 2012 12:21:23 -0000 Mailing-List: contact dev-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list dev@hc.apache.org Received: (qmail 14574 invoked by uid 99); 7 Feb 2012 12:21:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Feb 2012 12:21:23 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Feb 2012 12:21:20 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 686C41A6C40 for ; Tue, 7 Feb 2012 12:20:59 +0000 (UTC) Date: Tue, 7 Feb 2012 12:20:59 +0000 (UTC) From: "Oleg Kalnichevski (Resolved) (JIRA)" To: dev@hc.apache.org Message-ID: <193559952.7848.1328617259429.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1669170714.12500.1328420573680.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Resolved] (HTTPASYNC-13) java.io.IOException: FileChannel.size() [13534] < position [130834]. Please grow the file before writing. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HTTPASYNC-13?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Oleg Kalnichevski resolved HTTPASYNC-13. ---------------------------------------- Resolution: Cannot Reproduce Yuri, I reviewed LengthDelimitedDecoder and ZeroCopyConsumer code and could not find any logical condition that might lead to an attempt to transfer data at a position past end of file. Please re-open this issue if you find a reliable way to reproduce the problem. Oleg > java.io.IOException: FileChannel.size() [13534] < position [130834]. Please grow the file before writing. > ---------------------------------------------------------------------------------------------------------- > > Key: HTTPASYNC-13 > URL: https://issues.apache.org/jira/browse/HTTPASYNC-13 > Project: HttpComponents HttpAsyncClient > Issue Type: Bug > Affects Versions: 4.0-alpha3 > Environment: OSX Leopard 64 bits, Java 1.6. > Reporter: Yuri > > I am using httpasyncclient to download many files assynchronously. Each download get's a unique temp file. For some of the download in the series this is what I see: > 00:36:00.343 |-ERROR [I/O dispatcher 3] [ c.b.q.h.HttpDownloader] - Could not download http://www.blah.com/files/file20110101.ex_ > java.io.IOException: FileChannel.size() [13534] < position [130834]. Please grow the file before writing. > at org.apache.http.impl.nio.codecs.LengthDelimitedDecoder.transfer(LengthDelimitedDecoder.java:145) ~[httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.nio.client.methods.ZeroCopyConsumer.onContentReceived(ZeroCopyConsumer.java:75) ~[httpasyncclient-4.0-alpha3.jar:4.0-alpha3] > at org.apache.http.nio.protocol.AbstractAsyncResponseConsumer.consumeContent(AbstractAsyncResponseConsumer.java:67) ~[httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.client.DefaultAsyncRequestDirector.consumeContent(DefaultAsyncRequestDirector.java:329) ~[httpasyncclient-4.0-alpha3.jar:4.0-alpha3] > at org.apache.http.nio.protocol.HttpAsyncClientProtocolHandler.inputReady(HttpAsyncClientProtocolHandler.java:226) ~[httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.client.LoggingClientProtocolHandler.inputReady(LoggingClientProtocolHandler.java:98) [httpasyncclient-4.0-alpha3.jar:4.0-alpha3] > at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:175) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.DefaultClientIODispatch.onInputReady(DefaultClientIODispatch.java:118) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.DefaultClientIODispatch.onInputReady(DefaultClientIODispatch.java:49) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.AbstractIODispatch.inputReady(AbstractIODispatch.java:113) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:160) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:342) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:320) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:280) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:599) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2] > at java.lang.Thread.run(Thread.java:680) [na:1.6.0_29] > This is what I am doing: > HttpAsyncRequestProducer download = HttpAsyncMethods.createGet(uri); > getHttpClient().execute(download, new ZeroCopyConsumer(file) { > // overridden failed() and process() > } > And the response is coming with an explicit Content-Length header, which seems to make the framework select the LengthDelimitedDecoder to decode the response. Now even if the server is reporting a wrong length in Content-Length, shouldnt the httpasyncclient simply produce a file of that size (even if not the complete file)? > Could this be caused by the server reporting the wrong length? In any case, it seems that the code should never throw an exception here. It should -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org For additional commands, e-mail: dev-help@hc.apache.org