[ https://issues.apache.org/jira/browse/UIMA-5041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marshall Schor resolved UIMA-5041. ---------------------------------- Resolution: Fixed Fix Version/s: 2.9.0SDK > JsonCasSerializer creates duplicate shortname > --------------------------------------------- > > Key: UIMA-5041 > URL: https://issues.apache.org/jira/browse/UIMA-5041 > Project: UIMA > Issue Type: Bug > Components: Core Java Framework > Affects Versions: 2.8.1SDK > Reporter: Benjamin De Boe > Assignee: Marshall Schor > Priority: Minor > Fix For: 2.9.0SDK > > > Our type system includes a type named > "com.intersys.uima.annotation.iknow.TOP", which inherits directly from > "uima.cas.TOP" and then has a number of subtypes specific to our AE. When > serializing this through the JsonCasSerializer, it generates the shortname > TOP twice: > {"_context": > {"_types": [ > ... > "TOP": {"_id":"com.intersys.uima.annotation.iknow.TOP", > "_subtypes":["Entity","ProximityScore"]}, > "TOP": {"_id":"uima.cas.TOP", > "_subtypes":["TOP","AnnotationBase","ArrayBase","Sofa"]}, > ...] > } > } > While we can work around this by renaming our top type, the documentation > explicitly states this shouldn't pose a problem and shortnames would be > de-duplicated automatically: > https://uima.apache.org/d/uimaj-2.8.1/references.html#ugr.ref.json.overview > Section 9.2.2: > In the _types section, the key (e.g. "Sofa" or > "A_Typical_User_or_built_in_Type") is the "short" name for the type used in > the serialization. It is either just the last segment of the full type name > (e.g. for the type x.y.z.TypeName, it's TypeName), or, if name would collide > with another type name if just the last segment was used (example: > some.package.cname.Foo, and some.other.package.cname.Foo), then the key is > made up of the next-to-last segment, with an optional suffixed incrementing > integer in case of collisions on that name, a colon (:) and then the last > name. > I see there are unit test checking for this, but maybe it's because > uima.cas.TOP is sort of a special case? Or because neither uima.cas.TOP nor > our custom TOP is actually used directly (only subtypes are). > So before I go ahead and change our root type name, I'd like to make sure > this isn't something the framework should have taken care of itself. -- This message was sent by Atlassian JIRA (v6.3.4#6332)