[ https://issues.apache.org/jira/browse/UIMA-6393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Richard Eckart de Castilho updated UIMA-6393: --------------------------------------------- Fix Version/s: 3.3.0SDK > Circular imports break resource manager cache > --------------------------------------------- > > Key: UIMA-6393 > URL: https://issues.apache.org/jira/browse/UIMA-6393 > Project: UIMA > Issue Type: Bug > Components: UIMA > Reporter: Richard Eckart de Castilho > Assignee: Richard Eckart de Castilho > Priority: Major > Fix For: 3.3.0SDK, 3.2.1SDK > > > When a set of descriptors (e.g. {{TypeSystemDescription}}s) import each > other, this can break the import cache in the {{ResourceManager}}. > Consider the case of two type systems, each defining exactly one type: > * {{Circular1.xml}} imports {{Circular2.xml}} > * {{Circular2.xml}} imports {{Circular1.xml}} > Then run the following code: > {code} > @Test > public void thatCircularImportsDoNotConfuseResourceManagerCache() throws > Exception { > ResourceManager resMgr = newDefaultResourceManager(); > File descriptor = getFile("TypeSystemDescriptionImplTest/Circular1.xml"); > TypeSystemDescription ts = xmlParser.parseTypeSystemDescription(new > XMLInputSource(descriptor)); > ts.resolveImports(resMgr); > TypeSystemDescription tsd = (TypeSystemDescription) > resMgr.getImportCache().values().iterator() > .next(); > assertThat(ts.getTypes()).hasSize(2); > > TypeSystemDescription cachedTsd = (TypeSystemDescription) > resMgr.getImportCache().values().iterator() > .next(); > assertThat(cachedTsd.getTypes()).hasSize(2); > } > {code} > This code loads the first type system and resolves its imports. The resolved > type system {{Circular1}} contains two types at the end - fine. > However, {{Circular2}} is cached in the resource manager - and if we fetch it > from there, then we get it back without any imports and only containing a > single type. The type it should have imported from {{Circular1}} is not there. -- This message was sent by Atlassian Jira (v8.20.1#820001)