[ https://issues.apache.org/jira/browse/THRIFT-663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12792877#action_12792877 ]
Dave Engberg commented on THRIFT-663: ------------------------------------- Yes, sounds good. > JavaBean code generator produces incorrect setter methods > --------------------------------------------------------- > > Key: THRIFT-663 > URL: https://issues.apache.org/jira/browse/THRIFT-663 > Project: Thrift > Issue Type: Bug > Components: Compiler (Java) > Affects Versions: 0.2 > Reporter: Dave Engberg > Priority: Minor > Attachments: java-setter.diff > > > The original Thrift JavaBean generator produced set* methods for a property > 'foo' that looked like: > public void setFoo(int foo) { > this.foo = foo; > } > The more recent code in the 0.2.0 release now returns a value: > public MyStruct setFoo(int foo) { > this.foo = foo; > return this; > } > I can imagine this was possibly desired by someone to implement a "chaining" > style of coding, but this is no longer a correct JavaBean. The JavaBean spec > requires that the return type of set* functions be 'void', and various tools > and frameworks enforce this requirement. For example, the Stripes web UI > toolkit thinks that a field is read-only if the set* function doesn't return > 'void'. > I'll attach a trivial patch to restore this to the previous behavior. If a > chaining-style setter is desired by others, I'd recommend making this a > separate method on the bean rather than replacing the standard setter. E.g.: > public MyStruct setChainFoo(int foo) { ... > Or something like that. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.