Java,EMF+;OCL诊断员can';不能处理重复的id

Java,EMF+;OCL诊断员can';不能处理重复的id,java,validation,emf,ocl,Java,Validation,Emf,Ocl,我有一个EMF模型,其中一些对象包含ID,而其他对象不包含ID。id属性的配置如下所示: 我使用java Diagnostician检查是否违反了任何OCL约束: protected Diagnostic validateModel(EObject modelRoot) { return Diagnostician.INSTANCE.validate(modelRoot); } 这在大多数情况下都很有效。但是一旦存在重复的ID,验证程序就会抛出一个ClassCastException

我有一个EMF模型,其中一些对象包含ID,而其他对象不包含ID。id属性的配置如下所示:

我使用java Diagnostician检查是否违反了任何OCL约束:

protected Diagnostic validateModel(EObject modelRoot) {
    return Diagnostician.INSTANCE.validate(modelRoot);
}

这在大多数情况下都很有效。但是一旦存在重复的ID,验证程序就会抛出一个ClassCastException,尝试将两个对象中的一个转换为另一个对象的类型。我能做些什么来避免这个?检查重复ID的OCL约束会有帮助吗?

好的,我设法找到了问题的确切原因。如果有一个指向重复id的代理,诊断者就会感到困惑。我一有空就会上传MWE