title: Jenkins SVN "SSL peer shut down incorrectly" during checkout
body: <p>I have an issue running maven release plugin through Jenkins using SVN as the SCM. </p>
  
  <p>When checking out large projects I get the following error, Ive searched high and low for a resolution but not come up with anything yet, it seems to be an issue with the Java SVN client that is using SVN Kit.</p>
  
  <pre><code>svn: E175002: SSL peer shut down incorrectly
  
  12:37:17    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
  
  12:37:17    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
  
  12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:777)
  
  12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382)
  
  12:37:17    ... 34 more
  
  12:37:17 Caused by: svn: E175002: REPORT request failed on '/svn/mx/!svn/vcc/default'
  
  12:37:17    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
  
  12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:775)
  
  12:37:17    ... 35 more
  
  12:37:17 Caused by: svn: E175002: SSL peer shut down incorrectly
  
  12:37:17    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:109)
  
  12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:526)
  
  12:37:17    ... 35 more
  
  12:37:17 Caused by: javax.net.ssl.SSLException: SSL peer shut down incorrectly
  
  12:37:17    at com.sun.net.ssl.internal.ssl.InputRecord.readV3Record(InputRecord.java:408)
  
  12:37:17    at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:360)
  
  12:37:17    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:830)
  
  12:37:17    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:787)
  
  12:37:17    at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
  
  12:37:17    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
  
  12:37:17    at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
  
  12:37:17    at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
  
  12:37:17    at org.tmatesoft.svn.core.internal.util.ChunkedInputStream.read(ChunkedInputStream.java:75)
  
  12:37:17    at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:221)
  
  12:37:17    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141)
  
  12:37:17    at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:90)
  
  12:37:17    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
  
  12:37:17    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
  
  12:37:17    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
  
  12:37:17    at java.io.InputStreamReader.read(InputStreamReader.java:167)
  
  12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.XMLReader.read(XMLReader.java:39)
  
  12:37:17    at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742)
  
  12:37:17    at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.peekChar(XMLEntityScanner.java:487)
  
  12:37:17    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2688)
  
  12:37:17    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
  
  12:37:17    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
  
  12:37:17    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
  
  12:37:17    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
  
  12:37:17    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
  
  12:37:17    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
  
  12:37:17    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
  
  12:37:17    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
  
  12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:911)
  
  12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:876)
  
  12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:220)
  
  12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:480)
  </code></pre>
  
  <p>Jenkins allows me to retry the checkout a number of times for standard jobs so its not a problem as I just set the number of retries to 5 and it gets there in the end.</p>
  
  <p>However, when using the Maven Release Plugin to perform a release, at the stage where the tag is checked out, the SVN checkout fails and the whole release fails. </p>
  
  <p>My Maven release plugin config looks like this:</p>
  
  <pre><code>&lt;plugin&gt;
      &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
      &lt;artifactId&gt;maven-release-plugin&lt;/artifactId&gt;
      &lt;version&gt;2.4.2&lt;/version&gt;
      &lt;configuration&gt;
          &lt;providerImplementations&gt;
              &lt;svn&gt;javasvn&lt;/svn&gt;
          &lt;/providerImplementations&gt;
      &lt;/configuration&gt;
      &lt;dependencies&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;com.google.code.maven-scm-provider-svnjava&lt;/groupId&gt;
          &lt;artifactId&gt;maven-scm-provider-svnjava&lt;/artifactId&gt;
          &lt;version&gt;2.0.6&lt;/version&gt;
          &lt;scope&gt;compile&lt;/scope&gt;
      &lt;/dependency&gt;
      &lt;/dependencies&gt;
  &lt;/plugin&gt;
  </code></pre>
  
  <p>That SVN version has been selected to match the version used by Jenkins. </p>
  
  <p>So my question is either:</p>
  
  <ul>
  <li>How to fix that error, can I set a request timeout anywhere as it seems that it is just a case of the request timing out too soon. I couldn't find anything in the docs for this.</li>
  <li>Can I tell Maven release plugin to retry the checkout a number of times when checking out the tag?</li>
  </ul>