You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Nathan Marz (JIRA)" <ji...@apache.org> on 2010/04/21 12:10:50 UTC

[jira] Created: (THRIFT-763) Variable capture bug in generated struct compareTo

Variable capture bug in generated struct compareTo
--------------------------------------------------

                 Key: THRIFT-763
                 URL: https://issues.apache.org/jira/browse/THRIFT-763
             Project: Thrift
          Issue Type: Bug
            Reporter: Nathan Marz
            Priority: Minor
         Attachments: struct_compare.patch

In the generated compareTo for structs, any field named "other" gets shadowed by the local variable other. I've attached a patch to refer to the local field explicitly using "this.".

FYI, this is the second time I've run into a variable capture bug. We need to be more careful w.r.t. generating local variables.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (THRIFT-763) Variable capture bug in generated struct compareTo

Posted by "Nathan Marz (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nathan Marz updated THRIFT-763:
-------------------------------

    Attachment: struct_compare.patch

> Variable capture bug in generated struct compareTo
> --------------------------------------------------
>
>                 Key: THRIFT-763
>                 URL: https://issues.apache.org/jira/browse/THRIFT-763
>             Project: Thrift
>          Issue Type: Bug
>            Reporter: Nathan Marz
>            Priority: Minor
>         Attachments: struct_compare.patch
>
>
> In the generated compareTo for structs, any field named "other" gets shadowed by the local variable other. I've attached a patch to refer to the local field explicitly using "this.".
> FYI, this is the second time I've run into a variable capture bug. We need to be more careful w.r.t. generating local variables.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (THRIFT-763) Variable capture bug in generated struct compareTo

Posted by "Nathan Marz (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nathan Marz updated THRIFT-763:
-------------------------------

    Component/s: Compiler (Java)

> Variable capture bug in generated struct compareTo
> --------------------------------------------------
>
>                 Key: THRIFT-763
>                 URL: https://issues.apache.org/jira/browse/THRIFT-763
>             Project: Thrift
>          Issue Type: Bug
>          Components: Compiler (Java)
>            Reporter: Nathan Marz
>            Priority: Minor
>         Attachments: struct_compare.patch
>
>
> In the generated compareTo for structs, any field named "other" gets shadowed by the local variable other. I've attached a patch to refer to the local field explicitly using "this.".
> FYI, this is the second time I've run into a variable capture bug. We need to be more careful w.r.t. generating local variables.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (THRIFT-763) Variable capture bug in generated struct compareTo

Posted by "Bryan Duxbury (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bryan Duxbury resolved THRIFT-763.
----------------------------------

         Assignee: Nathan Marz
    Fix Version/s: 0.3
       Resolution: Fixed

I just committed this patch. Good catch.

More generally, I think the problem is that we don't take more care to be sure that the field value instance variables are named in a unique and reliable way. Ideally, we could prefix all the vars with something like "__field_value_", but since we allow people to generate Java classes that don't have accessor methods, this would introduce some additional compiler work.

I think it's about that time when I recommend (again) that we stop offering a generator that doesn't hide the variables behind accessors in Java.

> Variable capture bug in generated struct compareTo
> --------------------------------------------------
>
>                 Key: THRIFT-763
>                 URL: https://issues.apache.org/jira/browse/THRIFT-763
>             Project: Thrift
>          Issue Type: Bug
>          Components: Compiler (Java)
>            Reporter: Nathan Marz
>            Assignee: Nathan Marz
>            Priority: Minor
>             Fix For: 0.3
>
>         Attachments: struct_compare.patch
>
>
> In the generated compareTo for structs, any field named "other" gets shadowed by the local variable other. I've attached a patch to refer to the local field explicitly using "this.".
> FYI, this is the second time I've run into a variable capture bug. We need to be more careful w.r.t. generating local variables.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.