Sonar's "result returns more than one elements"

We have been hitting the dreaded Sonar error lately, resulting in constantly broken Hudson builds:

Caused by: javax.persistence.NonUniqueResultException: result returns more than one elements

The only workaround I could find was Pti’s database clean up. Doing this manually was a pain, especially after coming back from holidays, when a couple of weeks of records had been created.

So I have come up with a quick JRuby script to semi-automate this. And here is how to use it:

  • Save this script in clean_sonar.rb,
  • Update the Sonar database details with the correct values,
  • Download mysql connector jar, and save it in the same folder as your ruby script,
  • Backup your database,
  • Make sure your database backup is ok,
  • Check again (I guess you’re now warned),
  • Run the script as follows:
$ jruby clean_sonar.rb

And here is the (quick’n‘dirty) script.