Ramana Suvarapu created AVRO-1363:
-------------------------------------

             Summary: C# UnionSchema fails to parse the the unions with same 
type names with different namespaces
                 Key: AVRO-1363
                 URL: https://issues.apache.org/jira/browse/AVRO-1363
             Project: Avro
          Issue Type: Bug
          Components: csharp
    Affects Versions: 1.7.4
            Reporter: Ramana Suvarapu
         Attachments: reader.avpr

C# Union schema is unable to handle same type names with different namespaces. 
It's throwing "SchemaParseException("Duplicate type in union: "...) exception.

In the below code, key of uniqueSchemas should be FullName of the type which is 
similar to Java implementation. 

internal static UnionSchema NewInstance(JArray jarr, PropertyMap props, 
SchemaNames names, string encspace)
        {
            List<Schema> schemas = new List<Schema>();
            IDictionary<string, string> uniqueSchemas = new Dictionary<string, 
string>();

            foreach (JToken jvalue in jarr)
            {
                Schema unionType = Schema.ParseJson(jvalue, names, encspace);
                if (null == unionType)
                    throw new SchemaParseException("Invalid JSON in union" + 
jvalue.ToString());

                string name = unionType.Name;
                if (uniqueSchemas.ContainsKey(name))
                    throw new SchemaParseException("Duplicate type in union: " 
+ name);

                uniqueSchemas.Add(name, name);
                schemas.Add(unionType);
            }

            return new UnionSchema(schemas, props);
        }

See the attachement to recreate the issue

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to