public List getAllInconsistencies() throws Exception {
    List inconsistencies = new ArrayList();

    Database db = CastorDatabaseService.getDatabase();

    try {
      beginTransaction(db);

      List registryVOList = RegistryController.getController().getRegistryVOList(db);
      if (registryVOList != null && registryVOList.size() > 0) {
        Iterator registryVOListIterator = registryVOList.iterator();
        while (registryVOListIterator.hasNext()) {
          RegistryVO registryVO = (RegistryVO) registryVOListIterator.next();
          if (registryVO.getEntityName().equals(Content.class.getName())) {
            try {
              ContentVO contentVO =
                  ContentController.getContentController()
                      .getContentVOWithId(new Integer(registryVO.getEntityId()), db);
              if (contentVO == null) addContentInconsistency(inconsistencies, registryVO, db);
              // inconsistencies.add(registryVO);
            } catch (Exception e) {
              addContentInconsistency(inconsistencies, registryVO, db);
              // inconsistencies.add(registryVO);
            }
          } else if (registryVO.getEntityName().equals(SiteNode.class.getName())) {
            try {
              SiteNodeVO siteNodeVO =
                  SiteNodeController.getController()
                      .getSiteNodeVOWithId(new Integer(registryVO.getEntityId()), db);
              if (siteNodeVO == null) addSiteNodeInconsistency(inconsistencies, registryVO, db);
              // inconsistencies.add(registryVO);
            } catch (Exception e) {
              addSiteNodeInconsistency(inconsistencies, registryVO, db);
              // inconsistencies.add(registryVO);
            }
          } else {
            logger.error(
                "The registry contained not supported entities:" + registryVO.getEntityName());
          }
        }
      }

      commitTransaction(db);
    } catch (Exception e) {
      rollbackTransaction(db);
      throw new SystemException(
          "An error occurred when we tried to fetch which sitenode uses a metainfo. Reason:"
              + e.getMessage(),
          e);
    }

    return inconsistencies;
  }
  /**
   * @deprecated This method handles clean up of ContentVersions poorly. Please refer to {@link
   *     #removeContentReferences(Map, InfoGluePrincipal, Database)} and {@link
   *     #removeSiteNodeReferences(Map, InfoGluePrincipal, Database)} instead.
   */
  public void removeReferences(Integer registryId, InfoGluePrincipal infoGluePrincipal, Database db)
      throws SystemException, Exception {
    RegistryVO registryVO = RegistryController.getController().getRegistryVOWithId(registryId, db);
    String referencingEntityName = registryVO.getReferencingEntityName();
    String referencingEntityCompletingName = registryVO.getReferencingEntityCompletingName();
    Integer referencingEntityId = new Integer(registryVO.getReferencingEntityId());

    if (referencingEntityCompletingName.equals(SiteNode.class.getName())) {
      SiteNodeVO siteNodeVO =
          SiteNodeController.getController()
              .getSiteNodeVOWithId(new Integer(registryVO.getReferencingEntityCompletingId()), db);
      if (siteNodeVO != null) {
        Integer metaInfoContentId = siteNodeVO.getMetaInfoContentId();
        LanguageVO masterLanguageVO =
            LanguageController.getController().getMasterLanguage(siteNodeVO.getRepositoryId(), db);
        String pageStructure =
            ContentController.getContentController()
                .getContentAttribute(
                    db, metaInfoContentId, masterLanguageVO.getId(), "ComponentStructure");

        if (registryVO.getReferenceType().equals(RegistryVO.PAGE_COMPONENT))
          pageStructure =
              deleteComponentFromXML(pageStructure, new Integer(registryVO.getEntityId()));
        if (registryVO.getReferenceType().equals(RegistryVO.PAGE_COMPONENT_BINDING))
          pageStructure =
              deleteComponentBindingFromXML(
                  pageStructure, new Integer(registryVO.getEntityId()), registryVO.getEntityName());

        ContentVersionVO contentVersionVO =
            ContentVersionController.getContentVersionController()
                .getLatestActiveContentVersionVO(metaInfoContentId, masterLanguageVO.getId(), db);
        ContentVersionController.getContentVersionController()
            .updateAttributeValue(
                contentVersionVO.getContentVersionId(),
                "ComponentStructure",
                pageStructure,
                infoGluePrincipal,
                db);
      }
    } else if (referencingEntityCompletingName.equals(Content.class.getName())) {
      if (referencingEntityName.equals(ContentVersion.class.getName())) {
        ContentVersionVO contentVersionVO =
            ContentVersionController.getContentVersionController()
                .getContentVersionVOWithId(referencingEntityId, db);
        if (contentVersionVO != null) {
          String versionValue = contentVersionVO.getVersionValue();

          if (registryVO.getReferenceType().equals(RegistryVO.INLINE_LINK))
            versionValue =
                deleteInlineLinks(versionValue, new Integer(registryVO.getEntityId()), db);
          if (registryVO.getReferenceType().equals(RegistryVO.INLINE_ASSET))
            versionValue = deleteInlineAssets(versionValue, new Integer(registryVO.getEntityId()));
          if (registryVO.getReferenceType().equals(RegistryVO.INLINE_SITE_NODE_RELATION))
            versionValue =
                deleteInlineSiteNodeRelations(versionValue, new Integer(registryVO.getEntityId()));
          if (registryVO.getReferenceType().equals(RegistryVO.INLINE_CONTENT_RELATION))
            versionValue =
                deleteInlineContentRelations(versionValue, new Integer(registryVO.getEntityId()));

          contentVersionVO.setVersionModifier(infoGluePrincipal.getName());
          contentVersionVO.setModifiedDateTime(DateHelper.getSecondPreciseDate());
          contentVersionVO.setVersionValue(versionValue);

          ContentVersionController.getContentVersionController()
              .update(
                  contentVersionVO.getContentVersionId(), contentVersionVO, infoGluePrincipal, db);
        }
      }
    } else {
      logger.error(
          "The registry contained a not supported referencingEntityCompletingName:"
              + referencingEntityCompletingName);
    }
  }