Hi,
I'm using the Java output feature of protobuf for my app.
I found that protobuf doesn't handle null values as well as i would
expect it.

for example:

message MyMessage {
   required int32 id = 1;
   optional string code = 2;
}

in java:

MyMessage message = MyMessage.newBuilder().setId(3).setCode(null).build
();
message.writeTo(System.out); // <--- this will result a
NullPointerException when trying to write the code field

the reason is that in the created java source the setCode() method
looks like this:

public Builder setCode(java.lang.String value) {
        result.hasCode = true; // the field flag indicate a value
while there isn't!
        result.code_ = value;
        return this;
}

method should look like:

// for optional fields
public Builder setCode(java.lang.String value) {
        result.hasCode = (value != null) ;
        result.code_ = value;
        return this;
}

// for required fields
public Builder setCode(java.lang.String value) {
        assert value != null;
        result.hasCode = true;
        result.code_ = value;
        return this;
}


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to