5

在 IntelliJ Idea 社区版中的 svn 更新或比较操作期间,我经常遇到相同的错误:

svn: E175002: Received fatal alert: unexpected_message
svn: E175002: OPTIONS request failed on '/projects/repo/home/.'

环境:

  • IntelliJ Idea 社区版 12.0.3
  • SVN 1.7.7
  • 视窗 7 x64

但它从命令行非常好用:

D:\projects\repo\home>svn update
Updating '.':
At revision 382293.

有想法日志:

2013-02-05 00:43:53,684 [  17976]   INFO -  org.jetbrains.idea.svn.SvnVcs - SENT
OPTIONS /projects/repo/home HTTP/1.1
Host: subversion.repo.home.com
User-Agent: SVN/1.7.7 SVNKit/1.7.7-SNAPSHOT (http://svnkit.com/) r9513_v20121218_1752
Keep-Alive:
Connection: TE, Keep-Alive
TE: trailers
Content-Length: 0
Accept-Encoding: gzip
Content-Type: text/xml; charset="utf-8"
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
DAV: http://subversion.tigris.org/xmlns/dav/svn/mergeinfo
DAV: http://subversion.tigris.org/xmlns/dav/svn/log-revprops


2013-02-05 00:43:53,957 [  18249]   INFO -  org.jetbrains.idea.svn.SvnVcs - socket output stream requested... 
2013-02-05 00:43:53,957 [  18249]   INFO -  org.jetbrains.idea.svn.SvnVcs - Received fatal alert: unexpected_message 
javax.net.ssl.SSLException: Received fatal alert: unexpected_message
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1977)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1093)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)
    at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at org.tmatesoft.svn.core.internal.util.SVNLogOutputStream.flush(SVNLogOutputStream.java:48)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.sendData(HTTPConnection.java:316)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:168)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:449)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:367)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:355)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:708)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:628)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1016)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)
    at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:46)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:31)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
    at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2461)
    at org.jetbrains.idea.svn.SvnAuthenticationNotifier.validationImpl(SvnAuthenticationNotifier.java:319)
    at org.jetbrains.idea.svn.SvnAuthenticationNotifier.passiveValidation(SvnAuthenticationNotifier.java:303)
    at org.jetbrains.idea.svn.SvnAuthenticationNotifier.isAuthenticatedFor(SvnAuthenticationNotifier.java:227)
    at org.jetbrains.idea.svn.SvnVcs.isVcsBackgroundOperationsAllowed(SvnVcs.java:1177)
    at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache.loadIncomingChanges(CommittedChangesCache.java:589)
    at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache$8.run(CommittedChangesCache.java:693)
    at com.intellij.openapi.progress.ProgressManagerQueue.runStuff(ProgressManagerQueue.java:62)
    at com.intellij.openapi.progress.ProgressManagerQueue.runStuff(ProgressManagerQueue.java:23)
    at com.intellij.openapi.progress.AbstractTaskQueue$MyWorker.run(AbstractTaskQueue.java:78)
    at com.intellij.openapi.progress.ProgressManagerQueue$1.run(ProgressManagerQueue.java:33)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:501)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:191)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:232)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:181)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:406)
    at com.intellij.openapi.application.impl.ApplicationImpl$6.run(ApplicationImpl.java:465)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
    at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:153)
2013-02-05 00:43:53,959 [  18251]   INFO -  org.jetbrains.idea.svn.SvnVcs - svn: E175002: Received fatal alert: unexpected_message 
java.lang.Exception: svn: E175002: Received fatal alert: unexpected_message
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:739)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:367)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:355)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:708)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:628)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1016)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)
    at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:46)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:31)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
    at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2461)
    at org.jetbrains.idea.svn.SvnAuthenticationNotifier.validationImpl(SvnAuthenticationNotifier.java:319)
    at org.jetbrains.idea.svn.SvnAuthenticationNotifier.passiveValidation(SvnAuthenticationNotifier.java:303)
    at org.jetbrains.idea.svn.SvnAuthenticationNotifier.isAuthenticatedFor(SvnAuthenticationNotifier.java:227)
    at org.jetbrains.idea.svn.SvnVcs.isVcsBackgroundOperationsAllowed(SvnVcs.java:1177)
    at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache.loadIncomingChanges(CommittedChangesCache.java:589)
    at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache$8.run(CommittedChangesCache.java:693)
    at com.intellij.openapi.progress.ProgressManagerQueue.runStuff(ProgressManagerQueue.java:62)
    at com.intellij.openapi.progress.ProgressManagerQueue.runStuff(ProgressManagerQueue.java:23)
    at com.intellij.openapi.progress.AbstractTaskQueue$MyWorker.run(AbstractTaskQueue.java:78)
    at com.intellij.openapi.progress.ProgressManagerQueue$1.run(ProgressManagerQueue.java:33)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:501)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:191)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:232)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:181)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:406)
    at com.intellij.openapi.application.impl.ApplicationImpl$6.run(ApplicationImpl.java:465)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
    at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:153)
2013-02-05 00:43:53,960 [  18252]   INFO -  org.jetbrains.idea.svn.SvnVcs - svn: E175002: Received fatal alert: unexpected_message 
2013-02-05 00:43:53,960 [  18252]   INFO - .svn.SvnAuthenticationNotifier - some other exc 
org.tmatesoft.svn.core.SVNException: svn: E175002: Received fatal alert: unexpected_message
svn: E175002: OPTIONS request failed on '/projects/repo/home'
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:106)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:90)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:741)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:367)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:355)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:708)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:628)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1016)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)
    at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:46)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:31)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
    at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2461)
    at org.jetbrains.idea.svn.SvnAuthenticationNotifier.validationImpl(SvnAuthenticationNotifier.java:319)
    at org.jetbrains.idea.svn.SvnAuthenticationNotifier.passiveValidation(SvnAuthenticationNotifier.java:303)
    at org.jetbrains.idea.svn.SvnAuthenticationNotifier.isAuthenticatedFor(SvnAuthenticationNotifier.java:227)
    at org.jetbrains.idea.svn.SvnVcs.isVcsBackgroundOperationsAllowed(SvnVcs.java:1177)
    at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache.loadIncomingChanges(CommittedChangesCache.java:589)
    at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache$8.run(CommittedChangesCache.java:693)
    at com.intellij.openapi.progress.ProgressManagerQueue.runStuff(ProgressManagerQueue.java:62)
    at com.intellij.openapi.progress.ProgressManagerQueue.runStuff(ProgressManagerQueue.java:23)
    at com.intellij.openapi.progress.AbstractTaskQueue$MyWorker.run(AbstractTaskQueue.java:78)
    at com.intellij.openapi.progress.ProgressManagerQueue$1.run(ProgressManagerQueue.java:33)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:501)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:191)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:232)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:181)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:406)
    at com.intellij.openapi.application.impl.ApplicationImpl$6.run(ApplicationImpl.java:465)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
    at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:153)
Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1977)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1093)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)
    at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at org.tmatesoft.svn.core.internal.util.SVNLogOutputStream.flush(SVNLogOutputStream.java:48)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.sendData(HTTPConnection.java:316)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:168)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:449)
    ... 39 more

我已经尝试了以下步骤:

  1. 重启创意;
  2. 重新结帐项目;
  3. 重新安装svn客户端;

有人有其他建议吗?

4

3 回答 3

20

我遇到了与原始海报非常相似的问题。上面拉曼的建议对我不起作用。我的问题很可能是由于在 Java 7 中运行 IntelliJ 以及为 SVN 服务的配置错误的 Apache 服务器引起的。Java 7 实现了 SNI,这可能导致与错误配置的 HTTPS 服务器的连接失败(以前使用 Java 6,它们可以正常工作)。

我用来解决这个问题的解决方案是在 $IDEA_HOME/bin/idea64.vmoptions 或 $IDEA_HOME/bin/idea64.vmoptions 中酌情添加以下行:

-Djsse.enableSNIExtension=false

这将为运行 IntelliJ 的 JVM 禁用 SNI 扩展(不要在运行应用程序的生产服务器上使用此设置 - 对于运行 dev IntelliJ 的 VM 应该没问题)

这个回复中的答案是从这个通用的stackoverflow帖子中挑选出来的

于 2013-06-24T13:02:18.363 回答
4

在文件中添加-Dsvnkit.http.sslProtocols=SSLv3选项IDEA_HOME\bin\idea.exe.vmoptions为我解决了问题。

请参阅http://youtrack.jetbrains.com/issue/IDEA-90335

于 2013-02-05T06:47:29.247 回答
0

只是我刚刚遇到它时对此的另一个说明。Java 8 Update 60 (8u60) 的发行说明(此处为:https ://java.com/en/download/faq/release_changes.xml)中有关于禁用密码套件的列出位置的说明,即在$JAVA_HOME/jre/lib/security文件中java.security

您可以通过从禁用列表中删除各种禁用的密码来重新启用它们。

某人。

于 2016-03-12T22:18:16.460 回答