Program: 31115
Project: 31115
Buggy source:
public static VirtualColumnFactory<Function> find(Signature sig,ObjList<VirtualColumn> args){
  final VirtualColumn vc;
  if (sig.paramCount == 2 && (vc=args.getQuick(1)).isConstant()) {
switch (sig.paramTypes.getQuick(1)) {
case ColumnType.DOUBLE:
      double d=vc.getDouble(null);
    if (d != d) {
      int columnType=sig.paramTypes.getQuick(0);
      if (Chars.equals(sig.name,'=')) {
switch (columnType) {
case ColumnType.DOUBLE:
          return DoubleEqualsNanOperator.FACTORY;
case ColumnType.INT:
        return IntEqualsNaNOperator.FACTORY;
case ColumnType.LONG:
case ColumnType.DATE:
      return LongEqualsNaNOperator.FACTORY;
default :
    break;
}
}
 else if (Chars.equals("String_Node_Str",sig.name)) {
switch (columnType) {
case ColumnType.DOUBLE:
  return DoubleNotEqualsNanOperator.FACTORY;
case ColumnType.INT:
return IntNotEqualsNaNOperator.FACTORY;
case ColumnType.LONG:
case ColumnType.DATE:
return LongNotEqualsNaNOperator.FACTORY;
default :
break;
}
}
}
break;
case ColumnType.STRING:
if (vc.getFlyweightStr(null) == null) {
int columnType=sig.paramTypes.getQuick(0);
if (Chars.equals(sig.name,'=')) {
switch (columnType) {
case ColumnType.DOUBLE:
return DoubleEqualsNanOperator.FACTORY;
case ColumnType.STRING:
return StrEqualsNullOperator.FACTORY;
case ColumnType.INT:
return IntEqualsNaNOperator.FACTORY;
case ColumnType.LONG:
case ColumnType.DATE:
return LongEqualsNaNOperator.FACTORY;
default :
break;
}
}
 else if (Chars.equals(sig.name,"String_Node_Str")) {
switch (columnType) {
case ColumnType.DOUBLE:
return DoubleNotEqualsNanOperator.FACTORY;
case ColumnType.STRING:
return StrNotEqualsNullOperator.FACTORY;
case ColumnType.INT:
return IntNotEqualsNaNOperator.FACTORY;
case ColumnType.LONG:
case ColumnType.DATE:
return LongNotEqualsNaNOperator.FACTORY;
default :
break;
}
}
}
break;
default :
break;
}
}
VirtualColumnFactory<Function> factory=factories.get(sig);
if (factory != null) {
return factory;
}
 else {
if (Chars.equals("String_Node_Str",sig.name)) {
switch (sig.paramTypes.getQuick(0)) {
case ColumnType.STRING:
return StrInOperator.FACTORY;
case ColumnType.SYMBOL:
return SymInOperator.FACTORY;
case ColumnType.INT:
case ColumnType.BYTE:
case ColumnType.SHORT:
return IntInOperator.FACTORY;
case ColumnType.LONG:
return LongInOperator.FACTORY;
case ColumnType.DATE:
if (sig.paramCount < 3) {
return null;
}
return DateInOperator.FACTORY;
default :
break;
}
}
}
return null;
}

Fixed version (ground truth):
public static VirtualColumnFactory<Function> find(Signature sig,ObjList<VirtualColumn> args){
  final VirtualColumn vc;
  if (sig.paramCount == 2 && (vc=args.getQuick(1)).isConstant()) {
switch (sig.paramTypes.getQuick(1)) {
case ColumnType.DOUBLE:
      double d=vc.getDouble(null);
    if (d != d) {
      int columnType=sig.paramTypes.getQuick(0);
      if (Chars.equals(sig.name,'=')) {
switch (columnType) {
case ColumnType.DOUBLE:
          return DoubleEqualNanOperator.FACTORY;
case ColumnType.INT:
        return IntEqualNaNOperator.FACTORY;
case ColumnType.LONG:
case ColumnType.DATE:
      return LongEqualNaNOperator.FACTORY;
default :
    break;
}
}
 else if (Chars.equals("String_Node_Str",sig.name)) {
switch (columnType) {
case ColumnType.DOUBLE:
  return DoubleNotEqualNanOperator.FACTORY;
case ColumnType.INT:
return IntNotEqualNaNOperator.FACTORY;
case ColumnType.LONG:
case ColumnType.DATE:
return LongNotEqualNaNOperator.FACTORY;
default :
break;
}
}
}
break;
case ColumnType.STRING:
if (vc.getFlyweightStr(null) == null) {
int columnType=sig.paramTypes.getQuick(0);
if (Chars.equals(sig.name,'=')) {
switch (columnType) {
case ColumnType.DOUBLE:
return DoubleEqualNanOperator.FACTORY;
case ColumnType.STRING:
return StrEqualNullOperator.FACTORY;
case ColumnType.INT:
return IntEqualNaNOperator.FACTORY;
case ColumnType.LONG:
case ColumnType.DATE:
return LongEqualNaNOperator.FACTORY;
default :
break;
}
}
 else if (Chars.equals(sig.name,"String_Node_Str")) {
switch (columnType) {
case ColumnType.DOUBLE:
return DoubleNotEqualNanOperator.FACTORY;
case ColumnType.STRING:
return StrNotEqualNullOperator.FACTORY;
case ColumnType.INT:
return IntNotEqualNaNOperator.FACTORY;
case ColumnType.LONG:
case ColumnType.DATE:
return LongNotEqualNaNOperator.FACTORY;
default :
break;
}
}
}
break;
default :
break;
}
}
VirtualColumnFactory<Function> factory=factories.get(sig);
if (factory != null) {
return factory;
}
 else {
if (Chars.equals("String_Node_Str",sig.name)) {
switch (sig.paramTypes.getQuick(0)) {
case ColumnType.STRING:
return StrInOperator.FACTORY;
case ColumnType.SYMBOL:
return SymInOperator.FACTORY;
case ColumnType.INT:
case ColumnType.BYTE:
case ColumnType.SHORT:
return IntInOperator.FACTORY;
case ColumnType.LONG:
return LongInOperator.FACTORY;
case ColumnType.DATE:
if (sig.paramCount < 3) {
return null;
}
return DateInOperator.FACTORY;
default :
break;
}
}
}
return null;
}