IntelliJ Idea无法与svn update一起正常工作

时间:2013-02-04 17:08:24

标签: svn intellij-idea

我在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
  • Windows 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 个答案:

答案 0 :(得分: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应该没问题)

此回复中的答案是从this generic stackoverflow post

中挑选出来的

答案 1 :(得分:4)

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

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

答案 2 :(得分:0)

关于这个的另一个注释,因为我刚刚遇到它。 Java 8 Update 60(8u60)的发行说明(此处:https://java.com/en/download/faq/release_changes.xml)中有关于禁用密码套件列表位置的说明,该文件位于$JAVA_HOME/jre/lib/security文件{{1}中}}

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

某人HTH。