Java enum validation only validates explicitly assigned values
--------------------------------------------------------------

                 Key: THRIFT-489
                 URL: https://issues.apache.org/jira/browse/THRIFT-489
             Project: Thrift
          Issue Type: Bug
          Components: Compiler (Java)
            Reporter: Kevin Barrett


Java client enum validation code is rejecting any value other than those 
explicitly assigned inside the enum declaration.  For example:

{noformat}
enum testEnum {
    valueZero = 0,
    valueOne,
    valueTwo
}
{noformat}

generates the following code (excerpt):

{noformat}
public class testEnum {
  public static final int valueZero = 0;
  public static final int valueOne = 1;
  public static final int valueTwo = 2;

  public static final IntRangeSet VALID_VALUES = new IntRangeSet(valueZero);
  public static final Map<Integer, String> VALUES_TO_NAMES = new 
HashMap<Integer, String>() {{
    put(valueZero, "valueZero");
    put(valueOne, "valueOne");
    put(valueTwo, "valueTwo");
  }};
}
{noformat}

If all enums are given explicit values, VALID_VALUES is initialized as follows:

{noformat}
  public static final IntRangeSet VALID_VALUES = new IntRangeSet(valueZero, 
valueOne, valueTwo);
{noformat}

If no explicit values are assigned, VALID_VALUES is initialized with no 
parameters.

Verified with r764072 and r771969.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to