Program: 31151
Project: 31151
Buggy source:
private static void binSig(String name,VirtualColumnFactory<Function> doubleFactory,VirtualColumnFactory<Function> longFactory,VirtualColumnFactory<Function> intFactory,VirtualColumnFactory<Function> strFactory){
  binSig(name,ColumnType.DOUBLE,ColumnType.PARAMETER,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.INT,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.LONG,doubleFactory);
  binSig(name,ColumnType.INT,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.INT,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.LONG,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.LONG,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.PARAMETER,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.LONG,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.INT,doubleFactory);
  binSig(name,ColumnType.LONG,ColumnType.PARAMETER,longFactory);
  binSig(name,ColumnType.LONG,ColumnType.LONG,longFactory);
  binSig(name,ColumnType.LONG,ColumnType.INT,longFactory);
  binSig(name,ColumnType.INT,ColumnType.LONG,longFactory);
  binSig(name,ColumnType.INT,ColumnType.PARAMETER,intFactory);
  binSig(name,ColumnType.INT,ColumnType.INT,intFactory);
  binSig(name,ColumnType.PARAMETER,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.PARAMETER,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.PARAMETER,ColumnType.LONG,longFactory);
  binSig(name,ColumnType.PARAMETER,ColumnType.INT,intFactory);
  if (strFactory != null) {
    binSig(name,ColumnType.STRING,ColumnType.STRING,strFactory);
    binSig(name,ColumnType.PARAMETER,ColumnType.STRING,strFactory);
    binSig(name,ColumnType.STRING,ColumnType.PARAMETER,strFactory);
  }
}

Fixed version (ground truth):
private static void binSig(String name,VirtualColumnFactory<Function> doubleFactory,VirtualColumnFactory<Function> longFactory,VirtualColumnFactory<Function> intFactory,VirtualColumnFactory<Function> strFactory){
  binSig(name,ColumnType.DOUBLE,ColumnType.PARAMETER,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.INT,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.LONG,doubleFactory);
  binSig(name,ColumnType.INT,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.INT,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.LONG,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.LONG,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.PARAMETER,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.LONG,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.INT,doubleFactory);
  binSig(name,ColumnType.LONG,ColumnType.PARAMETER,longFactory);
  binSig(name,ColumnType.LONG,ColumnType.LONG,longFactory);
  binSig(name,ColumnType.LONG,ColumnType.INT,longFactory);
  binSig(name,ColumnType.INT,ColumnType.LONG,longFactory);
  binSig(name,ColumnType.INT,ColumnType.PARAMETER,intFactory);
  binSig(name,ColumnType.INT,ColumnType.INT,intFactory);
  binSig(name,ColumnType.PARAMETER,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.PARAMETER,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.PARAMETER,ColumnType.LONG,longFactory);
  binSig(name,ColumnType.PARAMETER,ColumnType.INT,intFactory);
  binSig(name,ColumnType.SHORT,ColumnType.INT,intFactory);
  binSig(name,ColumnType.INT,ColumnType.SHORT,intFactory);
  binSig(name,ColumnType.SHORT,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.SHORT,doubleFactory);
  binSig(name,ColumnType.SHORT,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.SHORT,doubleFactory);
  binSig(name,ColumnType.SHORT,ColumnType.LONG,longFactory);
  binSig(name,ColumnType.LONG,ColumnType.SHORT,longFactory);
  binSig(name,ColumnType.BYTE,ColumnType.INT,intFactory);
  binSig(name,ColumnType.INT,ColumnType.BYTE,intFactory);
  binSig(name,ColumnType.BYTE,ColumnType.DOUBLE,doubleFactory);
  binSig(name,ColumnType.DOUBLE,ColumnType.BYTE,doubleFactory);
  binSig(name,ColumnType.BYTE,ColumnType.FLOAT,doubleFactory);
  binSig(name,ColumnType.FLOAT,ColumnType.BYTE,doubleFactory);
  binSig(name,ColumnType.BYTE,ColumnType.LONG,longFactory);
  binSig(name,ColumnType.LONG,ColumnType.BYTE,longFactory);
  binSig(name,ColumnType.BYTE,ColumnType.SHORT,intFactory);
  binSig(name,ColumnType.SHORT,ColumnType.BYTE,intFactory);
  if (strFactory != null) {
    binSig(name,ColumnType.STRING,ColumnType.STRING,strFactory);
    binSig(name,ColumnType.PARAMETER,ColumnType.STRING,strFactory);
    binSig(name,ColumnType.STRING,ColumnType.PARAMETER,strFactory);
  }
}