[ 
https://issues.apache.org/jira/browse/THRIFT-4510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16573435#comment-16573435
 ] 

Brian Forbis commented on THRIFT-4510:
--------------------------------------

Here's a sample IDL that will cause this issue:

 
{code:java}
namespace py thriftTest

struct NestedStruct {
1: map<string, string> nestedMap = {}
}

struct ParentStruct {
1: NestedStruct nestedStruct = {}
}
{code}
 

The problem is the _init_() for structs will reference the thrift_spec 
attributes, but the thrift spec attributes are not defined until the very 
bottom of the generated file. I'm not entirely sure why they aren't defined as 
attributes in the class definitions.

Can someone mark this bug as not resolved?

> Regression in 0.11: Arrays with default values in python
> --------------------------------------------------------
>
>                 Key: THRIFT-4510
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4510
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Compiler
>    Affects Versions: 0.11.0
>            Reporter: Jason Gauci
>            Priority: Critical
>
> We are getting reports from users that our project is broken on thrift 0.11.  
> Arrays with default values are newly broken in 0.11 because thrift_spec is 
> not defined soon enough.
>  
> To reproduce:
>  
> brew install thrift
> git clone [https://github.com/caffe2/BlueWhale.git]
> cd BlueWhale
> thrift --gen py --out . ml/rl/thrift/core.thrift
> cat ml/rl/thrift/core/ttypes.py
>  
> Notice that the TrainingParameters.__init__ tries to use thrift_spec to 
> handle the default array when thrift_spec doesn't exist yet.  This results in 
> this failure upon import:
>  
> AttributeError: 'TrainingParameters' object has no attribute 'thrift_spec'
>  
> The same thing works when using 0.10



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to