Anton Batylin created THRIFT-4086:
-------------------------------------

             Summary: Java compiler generates different meta data depending on 
order of structures in file
                 Key: THRIFT-4086
                 URL: https://issues.apache.org/jira/browse/THRIFT-4086
             Project: Thrift
          Issue Type: Bug
          Components: Java - Compiler
    Affects Versions: 0.10.0, 0.9.3
            Reporter: Anton Batylin


When compiling th following thrift code:
{quote}
struct Customer {
  1:  required i32         customer_id,
  2:  required list<Order> orders
}

struct Order {
  1:  required i32         order_id,
}
{quote}
compiler generates meta data for {{orders}} field as {{FieldValueMetaData}}:
{quote}
tmpMap.put(_Fields.ORDERS, new 
org.apache.thrift.meta_data.FieldMetaData("orders", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new 
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT
            , "Order"))));
{quote}

If structs order is reversed:
{quote}
struct Order {
  1:  required i32         order_id,
}

struct Customer {
  1:  required i32         customer_id,
  2:  required list<Order> orders
}
{quote}
compiler generates meta data for {{orders}} field as {{StructMetaData}}:
{quote}
tmpMap.put(_Fields.ORDERS, new 
org.apache.thrift.meta_data.FieldMetaData("orders", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new 
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 Order.class))));
{quote}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to