protected void checkDuplicateResources(CDORevision revision) throws IllegalStateException {
    final long folderID = CDOIDUtil.getLong((CDOID) revision.data().getContainerID());
    final long revisionID = CDOIDUtil.getLong(revision.getID());
    final String name =
        (String) revision.data().get(EresourcePackage.eINSTANCE.getCDOResourceNode_Name(), 0);

    ObjectSet<DB4ORevision> resultSet =
        getObjectContainer()
            .query(
                new Predicate<DB4ORevision>() {
                  private static final long serialVersionUID = 1L;

                  @Override
                  public boolean match(DB4ORevision revision) {
                    if (revision.isResourceNode()
                        && ObjectUtil.equals(revision.getContainerID(), folderID)) {
                      String candidateName =
                          (String) revision.getValues().get(EresourcePackage.CDO_RESOURCE__NAME);
                      if (StringUtil.compare(name, candidateName) == 0) {
                        if (!ObjectUtil.equals(revision.getID(), revisionID)) {
                          return true;
                        }
                      }
                    }

                    return false;
                  }
                });

    if (!resultSet.isEmpty()) {
      throw new IllegalStateException(
          "Duplicate resource or folder: "
              + name
              + " in folder "
              + folderID); //$NON-NLS-1$ //$NON-NLS-2$
    }
  }