Unable to access a Crucible review with no row with the given identifier exists errors

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

Problem

Unable to access a Crucible review with the following errors appearing inside the atlassian-fisheye-<date>.log file:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 2014-03-07 16:29:54,393 WARN [qtp151680292-241952 ] org.eclipse.jetty.servlet.ServletHandler ServletHandler-doHandle - javax.servlet.ServletException: javax.servlet.ServletException: javax.el.ELException: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.cenqua.crucible.model.FileRevisionExtraInfo#3041180] ... Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.cenqua.crucible.model.FileRevisionExtraInfo#3041180] at org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:449) at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:189) at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:178) at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:191) at com.cenqua.crucible.model.FileRevisionExtraInfo_$$_javassist_43.hashCode(FileRevisionExtraInfo_$$_javassist_43.java) at java.util.HashMap.hash(HashMap.java:366) at java.util.HashMap.put(HashMap.java:496) at java.util.HashSet.add(HashSet.java:217) at com.cenqua.crucible.model.ReviewParticipant.getCompletedFrxs(ReviewParticipant.java:223)

Diagnosis

Run the following SQL query to check if there is database integrity issue:

1 select * from cru_file_read_status where cru_frx not in (select cru_frx_id from cru_frx); 

Cause

Cause 1

There is database integrity issue. The table cru_file_read_status has content in the column cru_frx that does not exist in the table cru_frx.

Cause 2

The database integrity issue can also be caused by having more than one Fisheye/Crucible instance connected to the same database. This might be the case if you get no results after running the SQL query above.

Solution

Resolution

Resolution 1 - Fix integrity issue in cru_file_read_status

  1. Stop your Fisheye/Crucible server.

  2. Backup your database for rollback purposes.

  3. Run the following SQL query to delete the problematic data:

    1 delete from cru_file_read_status where cru_frx not in (select cru_frx_id from cru_frx);
  4. Restart your Fisheye/Crucible server.

Resolution 2 - Connecting only one Fisheye/Crucible instance to the database

  1. Stop all of your Fisheye/Crucible instances that are connected to the same database.

  2. Modify config.xml to ensure that only one instance is pointing to a single database at all times.

  3. Start your Fisheye/Crucible server.

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.