[ 
https://issues.apache.org/jira/browse/THRIFT-1019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bryan Duxbury updated THRIFT-1019:
----------------------------------

    Fix Version/s:     (was: 0.7)

> java backend should use fully qualified names for domain types
> --------------------------------------------------------------
>
>                 Key: THRIFT-1019
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1019
>             Project: Thrift
>          Issue Type: Bug
>          Components: Java - Compiler
>            Reporter: Peter Schuller
>            Priority: Minor
>
> This is a follow-up to THRIFT-1013. The left-overs from that is to also do 
> fully qualified names for the domain classes (for example even with the 
> changes in THRIFT-1013, our 'State' still conflicted because an inner class 
> used for asynch method calls extended the TAsynchMethodCall, bringing State 
> into scope).
> Simply changing type_name() to always generate fully qualified names (not 
> just when program differs) was very simple, but unfortunately was not enough. 
> This exposes the issues that inner classes are not accessible by 
> "package.classname" but rather as "package.outerclass.classname".
> I found no trivial way to fix this because it requires maintaining some new 
> state that is specific to the Java backend, and it affects code (particularly 
> the client bit) that I'm not in a good position to test (currently using it 
> only for server-side). I'm having to drop this for time reasons and instead 
> rename the structure in our thrift spec for now, but I wanted to file the 
> issue anyway even though i don't expect to submit a patch.
> Briefly, what I would have started doing (though I'm not comfortable saying 
> it's the cleanest way to do it), was to add a map member to the generator 
> where one would put the information that maps a t_struct to its enclosing 
> t_struct. This could be filled in while looping in 
> generate_service_helpers(), and looked at in whenever type_name() is used to 
> refer to a type. I'm not sure whether this is enough or not since I haven't 
> tried it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to