2011-11-11 46 views
1

任何人都可以告訴我爲什麼發生虛假塊大小錯誤。java.io.IOException:虛假塊大小

異常在swingToSvlt方法:產生java.io.IOException:虛假塊大小// - >產生java.io.IOException:虛假塊大小 在sun.net.www.http.ChunkedInputStream.processRaw(未知源)>> at sun.net.www.http.ChunkedInputStream.readAheadBlocking(Unknown Source)>> at sun.net.www.http.ChunkedInputStream.readAhead(Unknown Source)>> at sun.net.www.http.ChunkedInputStream。閱讀(未知源)>>在java.io.FilterInputStream.read(未知源)>>在sun.net.www.protocol.http.HttpURLConnection $ HttpInputStream.read(未知源)>>在java.io.ObjectInputStream $在java.io.ObjectInputStream $ PeekInputStream.readFully(Unknown Source)>>上的java.io.ObjectInputStream $ BlockDataInputStream.readUTFBody(Unknown Source)>>位於java.io.ObjectInputStream $ BlockDataInputStream。 [R在java.io.ObjectInputStream.readString(未知源)上的eadUTF(未知源)>>在java.io.ObjectInputStream.readObject0(未知源)>>在java.io.ObjectInputStream.defaultReadFields(未知源)>> at java.io.ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io.ObjectInputStream.readObject0(Unknown Source)>> at java.io.ObjectInputStream.readObject(未知來源)>>在sun.reflect.GeneratedMethodAccessor9.invoke(未知源)>>在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)>>在java中的java.util.ArrayList.readObject(未知源)>>。在java.io.ObjectInputStream.readSerialData(Unknown Source)上的java.io.ObjectStreamClass.invokeReadObject(Unknown Source)>>在java.io.ObjectInputStream.readOrdinaryObject(java.io.ObjectInputStream.readSerialData(Unknown Source))上的lang.reflect.Method.invoke(Unknown Source)未知源)>>在java.io.ObjectInputStream.readObject0(未知源)>>在java.io.ObjectInputStream.readObject(未知源)>>在java.util.Hash table.readObject(Unknown Source)>> at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)>> at java.lang.reflect.Method.invoke(Unknown Source )>> at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)>> at java.io.ObjectInputStream.readSerialData(Unknown Source)>> at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)>> at java.io. ObjectInputStream.readObject0(來源不明)>>在java.io.ObjectInputStream.readObject(來源不明)

回答

2

從代碼ChunkedInputStream#processRaw,線路306,我們有:

/* 
* Extract the chunk size from the header (ignoring extensions). 
*/ 
String header = new String(rawData, rawPos, pos-rawPos+1, "US-ASCII"); 
for (i=0; i < header.length(); i++) { 
    if (Character.digit(header.charAt(i), 16) == -1) 
     break; 
} 
try { 
    chunkSize = Integer.parseInt(header.substring(0, i), 16); 
} catch (NumberFormatException e) { 
    error = true; 
    throw new IOException("Bogus chunk size"); 
} 

它看起來像服務器發送不正確的標題,我確切地看到正在發送的內容,並開始在那裏找到問題。

+0

錯誤鏈接從我可以告訴,這是唯一可行的辦法是,如果是應該包含塊大小的線路有它的第一個字符作爲非有效的十六進制(見圈就在你發佈的內容之上)。 – Bringer128

+0

你說得對,我已經添加了上面的循環。所以塊沒有以塊大小爲前綴或者塊是空的。聽起來像一個服務器/網絡問題給我。 –