Is this Java or C++?
> > ReverseRequest reverseRequest;
> > reverseRequest.text = "test";
> > reverseRequest.int_value = 50;
Try adding (C++):
reverseRequest.__isset.text = true;
reverseRequest.__isset.int_value = true;
Or (Java):
reverseRequest.setText("test");
reverseRequest.setIntValue(50);
If fields are explicitly marked optional, you need to flag the isset bits to
indicate that they are considered present.
Cheers,
mcslee
-----Original Message-----
From: Noam Wolf [mailto:[email protected]]
Sent: Monday, May 10, 2010 7:28 AM
To: [email protected]
Subject: Re: about optinal field
Can you provide more code of how you're actually passing the response back
to the client?
On Mon, May 10, 2010 at 10:24 AM, Bryan Duxbury <[email protected]> wrote:
> What language are your clients and servers?
>
> On Mon, May 10, 2010 at 6:41 AM, thrift thrift <[email protected]>
> wrote:
>
> > Hi,
> > I met a weard problem like below.
> >
> > I have two struct
> >
> > struct ReverseRequest {
> > 1: string text,
> > 2: optional i32 int_value,
> > }
> > struct ReverseResponse {
> > 1: string reversed_text,
> > 2: optional i32 reversed_int_value,
> > }
> >
> > In client side, it set like
> >
> > ReverseRequest reverseRequest;
> > reverseRequest.text = "test";
> > reverseRequest.int_value = 50;
> >
> > and
> > When I tried to get response from client
> > I used
> > ReverseResponse reverseResponse;
> > reverseResponse.reversed_int_value;
> >
> > The thing is that if I use optional keyword, then response will be 0, if
> > not, the response is 50. But even when I use optional, I also set the
> > int_value and reversed_int_value. Why 0 is returned?
> >
>
--
Best Regards,
Noam Wolf