java.io.IOException: mark/reset not supported

JIRA | Gordon Mohr | 10 years ago
  1. 0

    BNF reports problems crawling http://presse.parti-socialiste.fr/ and related sites. Turns out http://presse.parti-socialiste.fr/ is returning 'Transfer-encoding: chunked' (an HTTP/1.1 feature) even though Heritrix's request is HTTP/1.0. This server behavior is counter to the HTTP/1.1 specification; see <http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6>, which says: "A server MUST NOT send transfer-codings to an HTTP/1.0 client.") When the HTTPClient library sees that encoding, it attempts to use mark/reset functionality on the connection's inputstream. That would be fine with the usual buffered inputstream, but our inserted recording functionality doesn't offer mark/reset -- and this is the first time that limitation has bit us. The exception stack is: 2007-03-23T01:30:50.048Z -2 1 http://presse.parti-socialiste.fr/ - - text/html #002 - - - le:IOException@HTTP java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:331) at org.apache.commons.httpclient.HttpConnection.isResponseAvailable(HttpConnection.java:933) at org.apache.commons.httpclient.HttpMethodBase.readResponseBody(HttpMethodBase.java:1719) at org.apache.commons.httpclient.HttpMethodBase.readResponseBody(HttpMethodBase.java:1662) at org.archive.httpclient.HttpRecorderGetMethod.readResponseBody(HttpRecorderGetMethod.java:98) at org.archive.crawler.fetcher.FetchHTTP$2.readResponseBody(FetchHTTP.java:472) at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1625) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1002) at org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397) at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346) at org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:489) at org.archive.crawler.framework.Processor.process(Processor.java:109) at org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302) at org.archive.crawler.framework.ToeThread.run(ToeThread.java:151) Even though this site violates HTTP/1.1, we want to be able to get it and others like it, and the HTTPClient library can handle chunked encoding if we help it with a suitable stream. It appears enough to rearrange the order of stream-wrapping in HttpConnection.open(), putting our recording-streams inside rather than outside the buffered streams. Then the expected mark/reset functionality is available, there is no IOException, and collection succeeds.

    JIRA | 10 years ago | Gordon Mohr
    java.io.IOException: mark/reset not supported
  2. 0

    BNF reports problems crawling http://presse.parti-socialiste.fr/ and related sites. Turns out http://presse.parti-socialiste.fr/ is returning 'Transfer-encoding: chunked' (an HTTP/1.1 feature) even though Heritrix's request is HTTP/1.0. This server behavior is counter to the HTTP/1.1 specification; see <http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6>, which says: "A server MUST NOT send transfer-codings to an HTTP/1.0 client.") When the HTTPClient library sees that encoding, it attempts to use mark/reset functionality on the connection's inputstream. That would be fine with the usual buffered inputstream, but our inserted recording functionality doesn't offer mark/reset -- and this is the first time that limitation has bit us. The exception stack is: 2007-03-23T01:30:50.048Z -2 1 http://presse.parti-socialiste.fr/ - - text/html #002 - - - le:IOException@HTTP java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:331) at org.apache.commons.httpclient.HttpConnection.isResponseAvailable(HttpConnection.java:933) at org.apache.commons.httpclient.HttpMethodBase.readResponseBody(HttpMethodBase.java:1719) at org.apache.commons.httpclient.HttpMethodBase.readResponseBody(HttpMethodBase.java:1662) at org.archive.httpclient.HttpRecorderGetMethod.readResponseBody(HttpRecorderGetMethod.java:98) at org.archive.crawler.fetcher.FetchHTTP$2.readResponseBody(FetchHTTP.java:472) at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1625) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1002) at org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397) at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346) at org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:489) at org.archive.crawler.framework.Processor.process(Processor.java:109) at org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302) at org.archive.crawler.framework.ToeThread.run(ToeThread.java:151) Even though this site violates HTTP/1.1, we want to be able to get it and others like it, and the HTTPClient library can handle chunked encoding if we help it with a suitable stream. It appears enough to rearrange the order of stream-wrapping in HttpConnection.open(), putting our recording-streams inside rather than outside the buffered streams. Then the expected mark/reset functionality is available, there is no IOException, and collection succeeds.

    JIRA | 10 years ago | Gordon Mohr
    java.io.IOException: mark/reset not supported
  3. 0

    [Mifos-developer] Error during creating borrower

    Google Groups | 4 years ago | Gela
    java.lang.RuntimeException: java.io.IOException: mark/reset not supported
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    After having recompiled CDF sources getting the latest from the repository I'm getting this kind of exception while updating repository cache 22:23:01,639 ERROR [CdfFileInfoGenerator] CdfFileInfoGenerator.ERROR_0001 - Error Parsing XCDF File java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:334) at org.pentaho.platform.repository.solution.SolutionRepositoryServiceImpl$PluginFileInputStream.reset(SolutionRepositoryServiceImpl.java:728) at org.pentaho.platform.util.xml.XmlHelper.readEncodingProcessingInstruction(XmlHelper.java:287) at org.pentaho.platform.util.xml.XmlHelper.getEncoding(XmlHelper.java:218) at org.pentaho.platform.util.xml.dom4j.XmlDom4JHelper.getDocFromStream(XmlDom4JHelper.java:234) at org.pentaho.platform.util.xml.dom4j.XmlDom4JHelper.getDocFromStream(XmlDom4JHelper.java:249) at org.pentaho.cdf.CdfFileInfoGenerator.getFileInfo(CdfFileInfoGenerator.java:32) at org.pentaho.platform.plugin.services.pluginmgr.DefaultPluginManager.getFileInfo(DefaultPluginManager.java:530) at org.pentaho.platform.repository.solution.SolutionRepositoryServiceImpl.processRepositoryFile(SolutionRepositoryServiceImpl.java:356) Looking at the stack trace I noticed that the class org.pentaho.cdf.CdfFileInfoGenerator. That class was lately modified no August 27th so as a try I reverted that class from the latest revision to the previous one (revision 604). After having recompiled everything the error disappeared. I think that something has to be further checked to know what going on there.

    Pentaho BI Platform Tracking | 6 years ago | Sergio Ramazzina
    java.io.IOException: mark/reset not supported
  6. 0

    mark/reset not supported

    Oracle Community | 1 decade ago | 843810
    java.io.IOException: mark/reset not supported

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.io.IOException

      mark/reset not supported

      at java.io.InputStream.reset()
    2. Java RT
      InputStream.reset
      1. java.io.InputStream.reset(InputStream.java:331)
      1 frame
    3. HttpClient
      HttpMethodBase.readResponseBody
      1. org.apache.commons.httpclient.HttpConnection.isResponseAvailable(HttpConnection.java:933)
      2. org.apache.commons.httpclient.HttpMethodBase.readResponseBody(HttpMethodBase.java:1719)
      3. org.apache.commons.httpclient.HttpMethodBase.readResponseBody(HttpMethodBase.java:1662)
      3 frames
    4. webarchive-commons
      HttpRecorderGetMethod.readResponseBody
      1. org.archive.httpclient.HttpRecorderGetMethod.readResponseBody(HttpRecorderGetMethod.java:98)
      1 frame
    5. org.archive.crawler
      FetchHTTP$2.readResponseBody
      1. org.archive.crawler.fetcher.FetchHTTP$2.readResponseBody(FetchHTTP.java:472)
      1 frame
    6. HttpClient
      HttpMethodBase.execute
      1. org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1625)
      2. org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1002)
      2 frames
    7. webarchive-commons
      HttpRecorderGetMethod.execute
      1. org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116)
      1 frame
    8. HttpClient
      HttpClient.executeMethod
      1. org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
      2. org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
      3. org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
      4. org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
      4 frames
    9. org.archive.crawler
      ToeThread.run
      1. org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:489)
      2. org.archive.crawler.framework.Processor.process(Processor.java:109)
      3. org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)
      4. org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)
      4 frames