Program: 155965
Project: 155965
Buggy source:
private boolean decodeParam(String name,int index,JsonValue value,Position position){
switch (name) {
case "String_Node_Str":
    position.setTime(new Date((((JsonNumber)value).longValue() * 1000)));
  return true;
case "String_Node_Str":
position.setLatitude(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.setLongitude(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.setSpeed(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.setCourse(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.setAltitude(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_SATELLITES,((JsonNumber)value).intValue());
return true;
case "String_Node_Str":
position.setValid(value == JsonValue.TRUE);
return true;
case "String_Node_Str":
position.set(Position.KEY_HDOP,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_PDOP,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
case "String_Node_Str":
String key=name.equals("String_Node_Str") ? Position.KEY_INPUT : Position.KEY_OUTPUT;
if (value == JsonValue.TRUE && index <= 32 && index >= 1) {
if (position.getInteger(key) == 0) {
position.set(key,1 << (index - 1));
}
 else {
position.set(key,(position.getInteger(key) | 1 << (index - 1)));
}
}
return true;
case "String_Node_Str":
position.set(Position.KEY_ODOMETER,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_POWER,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_BATTERY,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
case "String_Node_Str":
position.set(Position.KEY_FUEL_LEVEL,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
case "String_Node_Str":
position.set(Position.KEY_RPM,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.PREFIX_TEMP + (index > 0 ? index : 0),((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_IGNITION,value == JsonValue.TRUE);
return true;
case "String_Node_Str":
position.set(Position.KEY_MOTION,value == JsonValue.TRUE);
return true;
case "String_Node_Str":
position.set(Position.KEY_DEVICE_TEMP,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_DRIVER_UNIQUE_ID,((JsonString)value).getString());
return true;
case "String_Node_Str":
position.set(Position.KEY_VIN,((JsonString)value).getString());
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_GENERAL);
}
return true;
case "String_Node_Str":
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_TOW);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_GEOFENCE_ENTER);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_GEOFENCE_EXIT);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_SHOCK);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_OVERSPEED);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_ACCELERATION);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_BRAKING);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_CORNERING);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_GPS_ANTENNA_CUT);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_JAMMING);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_BONNET);
}
return true;
default :
return false;
}
}

Fixed version (ground truth):
private boolean decodeParam(String name,int index,JsonValue value,Position position){
switch (name) {
case "String_Node_Str":
    position.setTime(new Date(((JsonNumber)value).longValue() * 1000));
  return true;
case "String_Node_Str":
position.setLatitude(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.setLongitude(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.setSpeed(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.setCourse(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.setAltitude(((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_SATELLITES,((JsonNumber)value).intValue());
return true;
case "String_Node_Str":
position.setValid(value == JsonValue.TRUE);
return true;
case "String_Node_Str":
position.set(Position.KEY_HDOP,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_PDOP,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
case "String_Node_Str":
String key=name.equals("String_Node_Str") ? Position.KEY_INPUT : Position.KEY_OUTPUT;
if (value == JsonValue.TRUE && index <= 32 && index >= 1) {
if (position.getInteger(key) == 0) {
position.set(key,1 << (index - 1));
}
 else {
position.set(key,position.getInteger(key) | 1 << (index - 1));
}
}
return true;
case "String_Node_Str":
position.set(Position.KEY_ODOMETER,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_POWER,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_BATTERY,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
case "String_Node_Str":
position.set(Position.KEY_FUEL_LEVEL,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
case "String_Node_Str":
position.set(Position.KEY_RPM,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.PREFIX_TEMP + (index > 0 ? index : 0),((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_IGNITION,value == JsonValue.TRUE);
return true;
case "String_Node_Str":
position.set(Position.KEY_MOTION,value == JsonValue.TRUE);
return true;
case "String_Node_Str":
position.set(Position.KEY_DEVICE_TEMP,((JsonNumber)value).doubleValue());
return true;
case "String_Node_Str":
position.set(Position.KEY_DRIVER_UNIQUE_ID,((JsonString)value).getString());
return true;
case "String_Node_Str":
position.set(Position.KEY_VIN,((JsonString)value).getString());
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_GENERAL);
}
return true;
case "String_Node_Str":
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_TOW);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_GEOFENCE_ENTER);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_GEOFENCE_EXIT);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_SHOCK);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_OVERSPEED);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_ACCELERATION);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_BRAKING);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_CORNERING);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_GPS_ANTENNA_CUT);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_JAMMING);
}
return true;
case "String_Node_Str":
if (value == JsonValue.TRUE) {
position.set(Position.KEY_ALARM,Position.ALARM_BONNET);
}
return true;
default :
return false;
}
}