I recently upgraded from SonarQube 5.1.2 to SonarQube 5.6. Now I'm getting an IllegalStateException "Error when executing blame for file". This happens building with my ant scripts in both Eclipse and Jenkins. In Jenkins the error is more complete, indicating SVNAuthenticationException E170001: Negotiate authentication failed: 'No valid credentials provided'.
Valid credentials are present in SonarQube Administration -> General Settings -> SCM -> SVN. They are the same credentials I was using in 5.1.2 and the blame functionality worked without error and assigned issues to the various developers. Also my build scripts populate sonar.svn.username and sonar.svn.password.secured with the same credentials.
In 5.1.2 I was using the sonar-issue-assign-plugin. I see that's deprecated now and in fact SonarQube 5.6 won't launch successfully if that plugin is present. Unfortunately whatever has taken its place isn't working for me.
I've looked at answers to questions with the same error here and here.
Edit: I'm still stuck on this one. I re-entered the credentials in SonarQube Administration > Generate Settings > SCM > SVN and restarted the server. Same result. Here is the last part of the exception stack trace:
Caused by: org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001: Negotiate authentication failed: 'No valid credentials provided' at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:62) at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51) at org.tmatesoft.svn.core.internal.io.dav.http.DefaultHTTPNegotiateAuthentication$1.run(DefaultHTTPNegotiateAuthentication.java:175) at org.tmatesoft.svn.core.internal.io.dav.http.DefaultHTTPNegotiateAuthentication$1.run(DefaultHTTPNegotiateAuthentication.java:166) at org.tmatesoft.svn.core.internal.io.dav.http.DefaultHTTPNegotiateAuthentication.authenticate(DefaultHTTPNegotiateAuthentication.java:221) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:477) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:398) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:386) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:863) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:699) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:118) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1049) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.hasCapability(DAVRepository.java:877) at org.tmatesoft.svn.core.io.SVNRepository.assertServerIsMergeInfoCapable(SVNRepository.java:787) at org.tmatesoft.svn.core.io.SVNRepository.getFileRevisions(SVNRepository.java:756) at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteAnnotate.run(SvnRemoteAnnotate.java:111) at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteAnnotate.run(SvnRemoteAnnotate.java:35) at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21) at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235) at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294) at org.tmatesoft.svn.core.wc.SVNLogClient.doAnnotate(SVNLogClient.java:295) at org.sonar.plugins.scm.svn.SvnBlameCommand.blame(SvnBlameCommand.java:100) ... 64 more
Edit 2: I've run this as an Ant Task using the sonarqube-ant-task-2.5.jar and I've run it as a separate build step in Jenkins using the SonarQube plugin (version 2.4.4) with the same result. I'm still at a loss as to why it's not finding my SVN credentials when trying to assign blame.