thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ewan Higgs (Jira)" <j...@apache.org>
Subject [jira] [Created] (THRIFT-4932) Using a default empty string on a binary field results in invalid Java code.
Date Tue, 20 Aug 2019 07:30:00 GMT
Ewan Higgs created THRIFT-4932:
----------------------------------

             Summary: Using a default empty string on a binary field results in invalid Java
code.
                 Key: THRIFT-4932
                 URL: https://issues.apache.org/jira/browse/THRIFT-4932
             Project: Thrift
          Issue Type: Bug
          Components: Java - Compiler
    Affects Versions: 0.12.0, 0.9.3
            Reporter: Ewan Higgs


Given the following service definition:

{code}
$ cat Service.thrift 
service MyService {
    string doWork(
    1: string arg1;
    2: binary arg2 = '';
    3: binary arg3 = '';
    );
}
{code}

And the following compilation:

{code}
/usr/local/Cellar/thrift/0.12.0/bin/thrift -gen java Service.thrift
{code}

Results in code that does not compile. This is because we end up with code like the following:

{code}    
    public doWork_args() {
      this.arg2 = "";

      this.arg3 = "";

    }        
{code}

In Java you cannot set a {{ByteBuffer}} to a {{String}} value.

Users can run into this situation if they were generating C++ code before ({{binary}} and
{{string}} both resolve to {{std::string}}) and then only later decide to use Java with existing
files.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Mime
View raw message