Program: 176037
Project: 176037
Buggy source:
@Override public void deleteByColumn(String schemaName,String tableName,String columnName,Object columnValue){
  Object connection=null;
  Pipeline pipeLine=null;
  try {
    connection=getConnection();
    if (resource == null) {
      pipeLine=((Jedis)connection).pipelined();
    }
    String valueAsStr=PropertyAccessorHelper.getString(columnValue);
    Double score=getDouble(valueAsStr);
    Set<String> results=null;
    if (resource != null && resource.isActive()) {
      Response response=((Transaction)connection).zrangeByScore(getHashKey(tableName,valueAsStr),score,score);
      ((Transaction)connection).exec();
      results=(Set<String>)response.get();
    }
 else {
      results=((Jedis)connection).zrangeByScore(getHashKey(tableName,valueAsStr),score,score);
    }
    if (results != null) {
      for (      String rowKey : results) {
        Map<byte[],byte[]> columns=null;
        columns=getColumns(connection,rowKey,columns);
        for (        byte[] column : columns.keySet()) {
          String colName=PropertyAccessorFactory.STRING.fromBytes(String.class,columns.get(column));
          if (resource != null && resource.isActive()) {
            ((Transaction)connection).hdel(getEncodedBytes(rowKey),column);
            ((Transaction)connection).zrem(getHashKey(tableName,colName),rowKey);
          }
 else {
            ((Jedis)connection).hdel(getEncodedBytes(rowKey),column);
            ((Jedis)connection).zrem(getHashKey(tableName,colName),rowKey);
          }
        }
      }
    }
  }
  finally {
    if (pipeLine != null) {
      pipeLine.sync();
    }
    onCleanup(connection);
  }
}

Fixed version (ground truth):
@Override public void deleteByColumn(String schemaName,String tableName,String columnName,Object columnValue){
  Object connection=null;
  Pipeline pipeLine=null;
  try {
    connection=getConnection();
    if (resource == null) {
      pipeLine=((Jedis)connection).pipelined();
    }
    String valueAsStr=PropertyAccessorHelper.getString(columnValue);
    Double score=getDouble(valueAsStr);
    Set<String> results=null;
    if (resource != null && resource.isActive()) {
      Response response=((Transaction)connection).zrangeByScore(getHashKey(tableName,valueAsStr),score,score);
      ((RedisTransaction)resource).onExecute(((Transaction)connection));
      results=(Set<String>)response.get();
    }
 else {
      results=((Jedis)connection).zrangeByScore(getHashKey(tableName,valueAsStr),score,score);
    }
    if (results != null) {
      for (      String rowKey : results) {
        Map<byte[],byte[]> columns=null;
        columns=getColumns(connection,rowKey,columns);
        for (        byte[] column : columns.keySet()) {
          String colName=PropertyAccessorFactory.STRING.fromBytes(String.class,columns.get(column));
          if (resource != null && resource.isActive()) {
            ((Transaction)connection).hdel(getEncodedBytes(rowKey),column);
            ((Transaction)connection).zrem(getHashKey(tableName,colName),rowKey);
          }
 else {
            ((Jedis)connection).hdel(getEncodedBytes(rowKey),column);
            ((Jedis)connection).zrem(getHashKey(tableName,colName),rowKey);
          }
        }
      }
    }
  }
  finally {
    if (pipeLine != null) {
      pipeLine.sync();
    }
    onCleanup(connection);
  }
}