You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Nicolas Trésegnie (JIRA)" <ji...@apache.org> on 2013/02/05 23:57:13 UTC

[jira] [Comment Edited] (THRIFT-1603) Thrift IDL allows for multiple exceptions, args or struct member names to be the same

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

Nicolas Trésegnie edited comment on THRIFT-1603 at 2/5/13 10:55 PM:
--------------------------------------------------------------------

Sorry for the duplicate (THRIFT-1835)

[Actually, you implemented it the same way it was implemented at first.|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=commitdiff;h=6f9ac3ffeb408392d1c3bb3945fe5b261f9e7817]

[This commit broke it.|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=commitdiff;h=ff219acb6c6ec434d48ceb78ec4b7e03141e27b5]

[These 3 lines|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob;f=compiler/cpp/src/parse/t_struct.h;h=1d0354239b37d1cf8d081218a03d0cd448240cdc;hb=HEAD#l115] are another way to return false. They were introduced by by the second commit I referenced. If the two "return false;" don't have the same meaning, won't the first one produce an incomprehensible error message?

Where can I create a unit test to avoid future regressions on this? I only found tests for the clients/servers in the tree, not for the compiler (There are some .thrift file but my purpose here is to create a test that should fail, not pass).
                
      was (Author: nicolastr):
    [Actually, you implemented it the same way it was implemented at first.|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=commitdiff;h=6f9ac3ffeb408392d1c3bb3945fe5b261f9e7817]

[This commit broke it.|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=commitdiff;h=ff219acb6c6ec434d48ceb78ec4b7e03141e27b5]

[These 3 lines|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob;f=compiler/cpp/src/parse/t_struct.h;h=1d0354239b37d1cf8d081218a03d0cd448240cdc;hb=HEAD#l115] are another way to return false. They were introduced by by the second commit I referenced. If the two "return false;" don't have the same meaning, won't the first one produce an incomprehensible error message?

Where can I create a unit test to avoid future regressions on this? I only found tests for the clients/servers in the tree, not for the compiler (There are some .thrift file but my purpose here is to create a test that should fail, not pass).
                  
> Thrift IDL allows for multiple exceptions, args or struct member names to be the same
> -------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1603
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1603
>             Project: Thrift
>          Issue Type: Bug
>         Environment: RedHat 5.5, C++, thrift-0.8.0
>            Reporter: Michael Popovich
>            Assignee: Kamil Sałaś
>            Priority: Trivial
>             Fix For: 1.0
>
>         Attachments: 0001-Thrift-1603-Provide-unique-names-for-t_struct-elemen.patch
>
>
> I noticed that the Thrift IDL compiler allows for multiple exceptions instances to utilize the same name... This is a problem because when compiling to C++, the generated C++ code will not compile properly:
> service whatever
> {
> void insert(1: string s) throws (1: NS nst, WX wxx, NSTx nst),
> }

--
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