가짜 청크 크기 오류가 발생하는 이유는 누구에게 말해 줄 수 있습니까? 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에서
1
A
답변
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");
}
서버가 잘못된 헤더를 보내는 것처럼 보입니다. 정확히 어떤 메시지가 전송되는지보고 문제를 찾기 시작합니다.
1
이 문제와 관련된 버그가있는 것으로 보입니다. 이것은 아마도 Inputstream에서 사용하는 데이터 인코딩 및 인코딩의 불일치와 관련이 있습니다. 청크 크기를 포함하도록되어 라인이 유효하지 않은 진수로 첫 번째 문자 (루프를 볼 수있는 경우 내가 말할 수있는 건
+0
그 버그는 6u12에서 수정되었습니다. 코드에서 Matthew Farwell이 버그 평가에서 언급 한 올바른 인코딩을 사용한다고 게시했습니다. – Bringer128
아래의 버그 링크를 참조하십시오, 그것은 수있는 유일한 방법입니다 당신이 게시 한 것의 바로 위에). – Bringer128
맞아, 위의 루프를 추가했습니다. 따라서 청크에 접두사가 없거나 청크가 비어 있습니다. 나에게 서버/네트워크 문제처럼 들린다. –