New Reviews Fail to be Created with 'Can't associate project' Exception
Symptoms
Clicking on the "Create Review" link fails exception:
An error has occurred
Error
Internal Server Error
Error 2
A java.lang.IllegalArgumentException was encountered
Can't associate project com.cenqua.crucible.model.Project@4 with entityId <Crucible Project>
The fisheye-debug-<date>.log reports:
2012-08-27 16:53:16,002 ERROR [btpool0-17 ] fisheye.app TotalityFilter-logExceptionDetails - Exception "java.lang.IllegalArgumentException: Can't associate project com.cenqua.crucible.model.Project@4 with entityId <Crucible Project>" (javax.servlet.ServletException) while processing "/json/cru/createReviewDialog" (Referer:"<Fisheye URL>")
javax.servlet.ServletException: java.lang.IllegalArgumentException: Can't associate project com.cenqua.crucible.model.Project@4 with entityId <Crucible Project>
.
.
Caused by: java.lang.IllegalArgumentException: Can't associate project com.cenqua.crucible.model.Project@4 with entityId <Crucible Project>
Cause
There are orphaned records in Fisheye/Crucible database, referencing non-existant Crucible project. This is can happen when a Crucible project has been renamed and leaving stale records in the database with references to old project name.
Resolution
Ensure a complete backup of Fisheye/Crucible database has been taken before proceeding. This will help revert the changes if the following steps fail.
Shut down Fisheye and run the following queries on Fisheye/Crucible database:
select * from cru_recently_visited where cru_entity_id = '<Crucible Project>'; /* Substitute Crucible project from the exception above */
delete from cru_recently_visited where cru_entity_id = '<Crucible Project>'; /* Substitute Crucible project from the exception above */