2011-11-11 4 views
1

가짜 청크 크기 오류가 발생하는 이유는 누구에게 말해 줄 수 있습니까? sun.net.www.http.ChunkedInputStream.processRaw에서 가짜 청크 크기 (알 수없는 출처 : - : 때 java.io.IOException :> 때 java.io.IOException 가짜 청크 크기 // swingToSvlt 방법에java.io.IOException : 가짜 청크 크기

예외) >> sun.net.www.http.ChunkedInputStream.readAheadBlocking (알 수없는 소스) >> at sun.net.www.http.ChunkedInputStream.readAhead (알 수없는 소스) >> at sun.net.www.http.ChunkedInputStream. read (Unknown Source) >> java.io.FilterInputStream.read (알 수없는 소스) >> at sun.net.www.protocol.http.HttpURLConnection $ HttpInputStream.read (알 수없는 소스) >> java.io.ObjectInputStream $ PeekInputStream.read (알 수없는 소스) >> java.io.ObjectInputStream에서 $ PeekInputStream.readFully (알 수없는 소스) >> java.io.ObjectInputStream에서 $ BlockDataInputStream.readUTFBody (알 수없는 소스) >> java.io.ObjectInputStream에서 $ BlockDataInputStream. 아르 자형 eudUTF (알 수없는 소스) >> java.io.ObjectInputStream.readString (알 수없는 소스) >> java.io.ObjectInputStream.readObject0 (알 수없는 소스) >> java.io.ObjectInputStream.defaultReadFields (알 수없는 소스) >> at java.io.ObjectInputStream.readSerialData (알 수없는 소스) >> java.io.ObjectInputStream.readOrdinaryObject (알 수없는 소스) >> java.io.ObjectInputStream.readObject0 (알 수없는 소스) >> java.io.ObjectInputStream.readObject (알 수없는 소스) >> java.util.ArrayList.readObject (알 수없는 소스) >> at sun.reflect.GeneratedMethodAccessor9.invoke (알 수없는 소스) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke (알 수없는 소스) >> at java. lang.reflect.Method.invoke (알 수없는 소스) >> java.io.ObjectStreamClass.invokeReadObject (알 수없는 소스) >> java.io.ObjectInputStream.readSerialData (알 수없는 소스) >> java.io.ObjectInputStream.readOrdinaryObject (알 수없는 소스) >> java.io.ObjectInputStream.readObject0 (알 수없는 소스) >> java.io.ObjectInputStream.readObject (알 수없는 소스) >> at java.util.Hash table.readObject (알 수없는 소스) >> sun.reflect.GeneratedMethodAccessor7.invoke (알 수없는 소스) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke (알 수없는 소스) >> at java.lang.reflect.Method.invoke (알 수없는 소스) >> java.io.ObjectStreamClass.invokeReadObject (알 수없는 소스) >> java.io.ObjectInputStream.readSerialData (알 수없는 소스) >> java.io.ObjectInputStream.readOrdinaryObject (알 수없는 소스) >> java.io. java.io.ObjectInputStream.readObject에서 ObjectInputStream.readObject0 (알 수없는 소스) >> (알 수없는 소스) 코드 ChunkedInputStream#processRaw에서

답변

2

, 라인 (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

맞아, 위의 루프를 추가했습니다. 따라서 청크에 접두사가 없거나 청크가 비어 있습니다. 나에게 서버/네트워크 문제처럼 들린다. –

1

이 문제와 관련된 버그가있는 것으로 보입니다. 이것은 아마도 Inputstream에서 사용하는 데이터 인코딩 및 인코딩의 불일치와 관련이 있습니다. 청크 크기를 포함하도록되어 라인이 유효하지 않은 진수로 첫 번째 문자 (루프를 볼 수있는 경우 내가 말할 수있는 건

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6502503

+0

그 버그는 6u12에서 수정되었습니다. 코드에서 Matthew Farwell이 버그 평가에서 언급 한 올바른 인코딩을 사용한다고 게시했습니다. – Bringer128