Junit Jython getting TypeError:共享修改属性的超类型有MRO冲突

Junit Jython getting TypeError:共享修改属性的超类型有MRO冲突,junit,filenet-p8,filenet,jython-2.7,filenet-content-engine,Junit,Filenet P8,Filenet,Jython 2.7,Filenet Content Engine,我正在Jython2.7中开发IBMFileNetP8平台5.2.1内容引擎单元测试应用程序 # Verify a directory def testDirectory(self): directoryConfigurationList = [] url = self.serverUrl + "?tenantId=" + self.tenantName connection = Factory.Connection.getConnection(url) d

我正在Jython2.7中开发IBMFileNetP8平台5.2.1内容引擎单元测试应用程序

# Verify a directory
def testDirectory(self):
    directoryConfigurationList = [] 
    url = self.serverUrl + "?tenantId=" + self.tenantName  
    connection = Factory.Connection.getConnection(url)
    domain = Factory.Domain.fetchInstance(connection, self.tenantName, None)
    if (domain is not None):
        dc_set = domain._DirectoryConfigurations.iterator()
        while dc_set.hasNext():
            dc = dc_set.next()
            print dc._DisplayName
我得到一个错误:

TypeError:共享修改属性的超类型具有MRO 冲突[attribute=remove,supertypes=[,'com.filenet.api.collection.DependentObjectList'>], 类型=CmIndexPartitionConstraintList]

在线dc\u set=domain.\u DirectoryConfigurations.iterator()我现在不知道为什么。在此方面的任何帮助都将不胜感激。以下指向IBM 5.2.1知识中心的链接可能会有所帮助:


问题不在您的fileNet代码中,Jython似乎不希望看到同样适用的映射。我认为它的逻辑是在每一台上安装iter,然后产生冲突。不幸的是,实现Map和Iterable的类型没有什么不正确之处。Jython应该遵从iter的Iterable,但它似乎需要改进和增强才能做到这一点

如果检查
DependentObjectList
接口规范,您将在超级类型接口中看到其超级类型接口是
java.util.Collection、EngineCollection、java.lang.Iterable、java.util.List、java.io.Serializable

我相信这是自Jython 2.7b1以来就可能修复的

更新:
我一直在挖掘我们以前在Java中开发的代码,我们使用以下逻辑将引擎集合转换为基于列表的集合

public static <T> List<T> convertToList(EngineCollection engineCollection) {
    Iterator<T> engineCollectionIterator = engineCollection.iterator();
    List<T> collection = new ArrayList<T>();
    CollectionUtils.addAll(collection , engineCollectionIterator);
    return collection ;
}
公共静态列表转换器列表(EngineCollection EngineCollection){
迭代器engineCollectionIterator=engineCollection.Iterator();
列表集合=新的ArrayList();
addAll(集合,engineCollectionIterator);
回收;
}

问题不在您的fileNet代码中,Jython似乎不希望看到同样适用的映射。我认为它的逻辑是在每一台上安装iter,然后产生冲突。不幸的是,实现Map和Iterable的类型没有什么不正确之处。Jython应该遵从iter的Iterable,但它似乎需要改进和增强才能做到这一点

如果检查
DependentObjectList
接口规范,您将在超级类型接口中看到其超级类型接口是
java.util.Collection、EngineCollection、java.lang.Iterable、java.util.List、java.io.Serializable

我相信这是自Jython 2.7b1以来就可能修复的

更新:
我一直在挖掘我们以前在Java中开发的代码,我们使用以下逻辑将引擎集合转换为基于列表的集合

public static <T> List<T> convertToList(EngineCollection engineCollection) {
    Iterator<T> engineCollectionIterator = engineCollection.iterator();
    List<T> collection = new ArrayList<T>();
    CollectionUtils.addAll(collection , engineCollectionIterator);
    return collection ;
}
公共静态列表转换器列表(EngineCollection EngineCollection){
迭代器engineCollectionIterator=engineCollection.Iterator();
列表集合=新的ArrayList();
addAll(集合,engineCollectionIterator);
回收;
}

据我所知,Jython似乎正在尝试实现其版本的列表,而这已经是从DirectoryConfiguration继承的DependentObjectList中定义的列表类型。我想…据我所知,Jython似乎正在尝试实现其列表版本,而这已经是在DependentObjectList中定义的列表类型,DirectoryConfiguration继承自该列表。我想…让我震惊的是,我也看到了这个列表/集合。“TypeError:共享修改属性的超类型有MRO冲突[attribute=\uuuu contains\uuuu,Supertypes=[,],type=…]”但我们使用的是2.7.2b2,所以我认为它没有被修复。让我吃惊的是,我也看到了列表/集合的这一点。“TypeError:共享修改属性的超类型有MRO冲突[attribute=\uuuu contains\uuuuu,Supertypes=[,],type=…]”但我们使用的是2.7.2b2,因此我认为它尚未修复。