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.