You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@continuum.apache.org by Vlado Peshov <vl...@gmail.com> on 2010/04/12 13:29:15 UTC

Possible solution for Exception while downloading pom from https url

Possible solution for exception while downloading pom from https webdav
based repository is to modify the following lines:

InetSocketAddress remoteAddress = new InetSocketAddress( host, port );
SSLSocket sslsock = (SSLSocket) ( ( sock != null ) ? sock : createSocket()
);

to:

InetSocketAddress remoteAddress = new InetSocketAddress( host, port );
SSLSocket sslsock = (SSLSocket) ( ( sock != null ) ? sock : createSocket()
);
sslsock.setEnabledProtocols(new String[] {"SSLv3"});

in the class:

EasySSLSocketFactory.java

The exception is because the http client cannot handle certificates for
SSLv3 protocol, so this support must be explicitly enabled. Here is the
exception:

Could not download the URL: https://xxxxxx:*****@
hostname.com/project/pom.xml
javax.net.ssl.SSLException: Connection has been shutdown:
javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
       at com.sun.net.ssl.internal.ssl.

 SSLSocketImpl.checkEOF(SSLSocketImpl.java:1267)
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1279)
        at
com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:43)
        at
org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer(AbstractSessionOutputBuffer.java:87)
        at
org.apache.http.impl.io.AbstractSessionOutputBuffer.flush(AbstractSessionOutputBuffer.java:94)
        at
org.apache.http.impl.AbstractHttpClientConnection.doFlush(AbstractHttpClientConnection.java:171)
        at
org.apache.http.impl.SocketHttpClientConnection.close(SocketHttpClientConnection.java:192)
        at
org.apache.http.impl.conn.DefaultClientConnection.close(DefaultClientConnection.java:161)
        at
org.apache.http.impl.conn.AbstractPooledConnAdapter.close(AbstractPooledConnAdapter.java:158)
        at
org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
        at
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
        at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
        at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
        at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
        at
org.apache.maven.continuum.project.builder.AbstractContinuumProjectBuilder.createMetadataFile(AbstractContinuumProjectBuilder.java:122)
        at
org.apache.maven.continuum.project.builder.AbstractContinuumProjectBuilder.createMetadataFile(AbstractContinuumProjectBuilder.java:244)
        at
org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilder.readModules(MavenTwoContinuumProjectBuilder.java:149)
        at
org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilder.buildProjectsFromMetadata(MavenTwoContinuumProjectBuilder.java:124)
        at
org.apache.maven.continuum.core.action.CreateProjectsFromMetadataAction.execute(CreateProjectsFromMetadataAction.java:152)
        at
org.apache.maven.continuum.DefaultContinuum.executeAction(DefaultContinuum.java:2759)
        at
org.apache.maven.continuum.DefaultContinuum.executeAddProjectsFromMetadataActivity(DefaultContinuum.java:1569)
        at
org.apache.maven.continuum.DefaultContinuum.executeAddProjectsFromMetadataActivity(DefaultContinuum.java:1815)
        at
org.apache.maven.continuum.DefaultContinuum.addMavenTwoProject(DefaultContinuum.java:1365)
        at
org.apache.maven.continuum.web.action.AddMavenTwoProjectAction.doExecute(AddMavenTwoProjectAction.java:109)
        at
org.apache.maven.continuum.web.action.AddMavenProjectAction.execute(AddMavenProjectAction.java:189)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
        at
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
        at
org.apache.struts2.interceptor.BackgroundProcess$1.run(BackgroundProcess.java:56)
        at java.lang.Thread.run(Thread.java:619)
 Caused by: javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
        at
com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
        at
com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1694)
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:939)
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1120)
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
        at
com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
        at
org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer(AbstractSessionOutputBuffer.java:87)
        at
org.apache.http.impl.io.AbstractSessionOutputBuffer.flush(AbstractSessionOutputBuffer.java:94)
        at
org.apache.http.impl.AbstractHttpClientConnection.doFlush(AbstractHttpClientConnection.java:171)
        at
org.apache.http.impl.AbstractHttpClientConnection.flush(AbstractHttpClientConnection.java:176)
        at
org.apache.http.impl.conn.AbstractClientConnAdapter.flush(AbstractClientConnAdapter.java:221)
        at
org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:240)
        at
org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:119)
        ... 23 more

Tested with Apache Continuum v1.2.3 and v1.3.6

Regards, Vlado

Re: Possible solution for Exception while downloading pom from https url

Posted by Vlado Peshov <vl...@gmail.com>.
On Tue, Apr 13, 2010 at 10:36 AM, Emmanuel Venisse <
emmanuel.venisse@gmail.com> wrote:

> Hi,
>
> Can you file an issue in jira and attach a patch?
> Thanks
>

http://jira.codehaus.org/browse/CONTINUUM-2501

Regards, Vlado

Re: Possible solution for Exception while downloading pom from https url

Posted by Emmanuel Venisse <em...@gmail.com>.
Hi,

Can you file an issue in jira and attach a patch?
Thanks

Emmanuel

On Mon, Apr 12, 2010 at 1:29 PM, Vlado Peshov <vl...@gmail.com> wrote:

> Possible solution for exception while downloading pom from https webdav
> based repository is to modify the following lines:
>
> InetSocketAddress remoteAddress = new InetSocketAddress( host, port );
> SSLSocket sslsock = (SSLSocket) ( ( sock != null ) ? sock : createSocket()
> );
>
> to:
>
> InetSocketAddress remoteAddress = new InetSocketAddress( host, port );
> SSLSocket sslsock = (SSLSocket) ( ( sock != null ) ? sock : createSocket()
> );
> sslsock.setEnabledProtocols(new String[] {"SSLv3"});
>
> in the class:
>
> EasySSLSocketFactory.java
>
> The exception is because the http client cannot handle certificates for
> SSLv3 protocol, so this support must be explicitly enabled. Here is the
> exception:
>
> Could not download the URL: https://xxxxxx:*****@
> hostname.com/project/pom.xml
> javax.net.ssl.SSLException: Connection has been shutdown:
> javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
>       at com.sun.net.ssl.internal.ssl.
>
>  SSLSocketImpl.checkEOF(SSLSocketImpl.java:1267)
>        at
>
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1279)
>        at
> com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:43)
>        at
>
> org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer(AbstractSessionOutputBuffer.java:87)
>        at
>
> org.apache.http.impl.io.AbstractSessionOutputBuffer.flush(AbstractSessionOutputBuffer.java:94)
>        at
>
> org.apache.http.impl.AbstractHttpClientConnection.doFlush(AbstractHttpClientConnection.java:171)
>        at
>
> org.apache.http.impl.SocketHttpClientConnection.close(SocketHttpClientConnection.java:192)
>        at
>
> org.apache.http.impl.conn.DefaultClientConnection.close(DefaultClientConnection.java:161)
>        at
>
> org.apache.http.impl.conn.AbstractPooledConnAdapter.close(AbstractPooledConnAdapter.java:158)
>        at
>
> org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
>        at
>
> org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
>        at
>
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
>        at
>
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
>        at
>
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
>        at
>
> org.apache.maven.continuum.project.builder.AbstractContinuumProjectBuilder.createMetadataFile(AbstractContinuumProjectBuilder.java:122)
>        at
>
> org.apache.maven.continuum.project.builder.AbstractContinuumProjectBuilder.createMetadataFile(AbstractContinuumProjectBuilder.java:244)
>        at
>
> org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilder.readModules(MavenTwoContinuumProjectBuilder.java:149)
>        at
>
> org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilder.buildProjectsFromMetadata(MavenTwoContinuumProjectBuilder.java:124)
>        at
>
> org.apache.maven.continuum.core.action.CreateProjectsFromMetadataAction.execute(CreateProjectsFromMetadataAction.java:152)
>        at
>
> org.apache.maven.continuum.DefaultContinuum.executeAction(DefaultContinuum.java:2759)
>        at
>
> org.apache.maven.continuum.DefaultContinuum.executeAddProjectsFromMetadataActivity(DefaultContinuum.java:1569)
>        at
>
> org.apache.maven.continuum.DefaultContinuum.executeAddProjectsFromMetadataActivity(DefaultContinuum.java:1815)
>        at
>
> org.apache.maven.continuum.DefaultContinuum.addMavenTwoProject(DefaultContinuum.java:1365)
>        at
>
> org.apache.maven.continuum.web.action.AddMavenTwoProjectAction.doExecute(AddMavenTwoProjectAction.java:109)
>        at
>
> org.apache.maven.continuum.web.action.AddMavenProjectAction.execute(AddMavenProjectAction.java:189)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
>
> com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
>        at
>
> com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
>        at
>
> org.apache.struts2.interceptor.BackgroundProcess$1.run(BackgroundProcess.java:56)
>        at java.lang.Thread.run(Thread.java:619)
>  Caused by: javax.net.ssl.SSLException: Received fatal alert:
> bad_record_mac
>        at
> com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
>        at
> com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
>        at
>
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1694)
>        at
>
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:939)
>        at
>
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1120)
>        at
>
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
>        at
> com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
>        at
>
> org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer(AbstractSessionOutputBuffer.java:87)
>        at
>
> org.apache.http.impl.io.AbstractSessionOutputBuffer.flush(AbstractSessionOutputBuffer.java:94)
>        at
>
> org.apache.http.impl.AbstractHttpClientConnection.doFlush(AbstractHttpClientConnection.java:171)
>        at
>
> org.apache.http.impl.AbstractHttpClientConnection.flush(AbstractHttpClientConnection.java:176)
>        at
>
> org.apache.http.impl.conn.AbstractClientConnAdapter.flush(AbstractClientConnAdapter.java:221)
>        at
>
> org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:240)
>        at
>
> org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:119)
>        ... 23 more
>
> Tested with Apache Continuum v1.2.3 and v1.3.6
>
> Regards, Vlado
>