I often get a Premature EOF exception when reading a web page.
Below is an example of a stacktrace
java.io.IOException: Premature EOF at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:556) at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:600) at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:687) at java.io.FilterInputStream.read(FilterInputStream.java:133) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2968) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.readLine(BufferedReader.java:317) at java.io.BufferedReader.readLine(BufferedReader.java:382) at Utilities.getPage(Utilities.java:24) while ((line = rd.readLine()) != null) { at TalkPage.<init>(TalkPage.java:15) at Updater.run(Updater.java:65)
The following is the getPage () method
public static String getPage(String urlString) throws Exception { URL url = new URL(urlString); URLConnection conn = url.openConnection(); BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuffer sb = new StringBuffer(); String line; while ((line = rd.readLine()) != null) {
What is an EOFException override and why does this happen in this particular case and how can it be avoided?
Some other information: the page being viewed is about 20 KB, and I read a lot of such pages in my program (about 20,000).
source share