2016-06-09 13 views
1

나는 IBM FileNet P8 Platform 5.2.1 Content Engine 유닛 테스트 애플리케이션 인 jython 2.7에서 작업 중이다.자이 썬이 TypeError를 받고있다 : 수정 된 속성을 공유하는 수퍼 유형에 MRO 충돌이있다.

# 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: Supertypes that share a modified attribute have an MRO conflict[attribute=remove, supertypes=[, 'com.filenet.api.collection.DependentObjectList'>], type=CmIndexPartitionConstraintList]

dc_set = domain._DirectoryConfigurations.iterator()을 나는 아주 지금은 왜하지 않습니다. 이것에 대한 도움을 주시면 감사하겠습니다. 어쩌면 도움이 IBM 5.2.1 지식 센터에 다음 링크 : 자이 썬은 기대하지 않는 것처럼

+0

에 엔진 모음을 변환하려면 다음 논리를 사용하는 것 자이 썬이 목록의 버전을 구현하려고 시도하는 것처럼 보입니다.이 목록은 이미 DirectoryConfigurations가 상속 된 DependentObjectList에 정의 된 목록 유형입니다. 내 생각 엔 .. – Neo84

답변

0

문제는 당신의 파일 네트 코드에없는, 그것은 지금에 보인다 반복 가능한 Map도 참조하십시오. 나는 각각에 iter을 설치하고 충돌을 일으키는 논리가 있다고 가정합니다. 불행히도 Map과 Iterable을 모두 구현하는 타입에 대해서는 잘못된 것이 없습니다. 자이 썬은 iter에 대해 Iterable을 연기해야하지만 이렇게하려면 필요하고 개선 된 것처럼 보입니다.

DependentObjectList 인터페이스 사양을 확인하면 수퍼 유형 인터페이스에서 수퍼 유형 인터페이스가 java.util.Collection, EngineCollection, java.lang.Iterable, java.util.List, java.io.Serializable임을 알 수 있습니다.

나는 이것이 자이 썬 2.7b1 이후 잠재적으로 수정되었다고 생각한다.

는 업데이트 :
좀 우리가 자바로 이전에 개발 된 코드에 파고을하고있다, 우리는에서 목록 기반 컬렉션을

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 ; 
}