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.