[Demonstration 1]

[Buggy Method]
private String getLineAsString(int line) {
    ArrayList current_line = (ArrayList) _lines.get(line);
    int size = current_line.size();
    int length = 0;
    for (int i = 0; i < size; i++) length += getWord(i, line).length();
    length += size - 1;
    char[] tmp = new char[length];
    int count = 0;
    for (int i = 0; i < size; i++) {
        getWord(i, line).getChars(0, getWord(i, line).length(), tmp, count);
        count += getWord(i, line).length();
        if (i != (size - 1))
            tmp[count++] = ' ';
    }
    return new String(tmp);
}

[Buggy Hunk]
private String getLineAsString(int line){

[Patch]
public String getLineAsString(int line){

[Demonstration 2]

[Buggy Method]
public void convertFromDto(PoolStatus poolStatus) {
    this.device_id = poolStatus.getDeviceId();
    this.time = poolStatus.getTime();
    if (poolStatus.getAddressPools() != null) {
        List<ReportAddressPool> reportAddressPools = new ArrayList<ReportAddressPool>();
        for (AddressPool addressPool : poolStatus.getAddressPools()) {
            if (addressPool.getAddressPoolEntities() == null) {
                continue;
            }
            ReportAddressPool reportAddressPool = new ReportAddressPool();
            reportAddressPool.setDomain_name(addressPool.getDomainName());
            reportAddressPool.setAddress_pool_name(addressPool.getAddressPoolName());
            reportAddressPool.setAddress_pool_id(addressPool.getAddressPoolId());
            AddressPoolEntities addressPoolEntities = addressPool.getAddressPoolEntities();
            List<AddressBlockIPv4> ipv4Blocks = addressPoolEntities.getIpv4AddressBlocks();
            List<AddressBlockIPv6> ipv6Blocks = addressPoolEntities.getIpv6AddressBlocks();
            if (ipv4Blocks != null) {
                List<AddressPoolRange> addressPoolRanges = new ArrayList<AddressPoolRange>();
                for (AddressBlockIPv4 ipv4Block : ipv4Blocks) {
                    AddressPoolRange addressPoolRange = new AddressPoolRange();
                    addressPoolRange.setAddress_block_id(ipv4Block.getIpv4AddressBlockId());
                    addressPoolRange.setAddress_block_name(ipv4Block.getIpv4AddressBlockName());
                    addressPoolRange.setAverage_address_usage_ratio(ipv4Block.getAverageAddressUsageRatio());
                    addressPoolRanges.add(addressPoolRange);
                }
                reportAddressPool.setAddress_pool_ranges(addressPoolRanges);
                reportAddressPool.setProtocol_type(Constants.PROTOCOL_TYPE_IPV4);
            } else if (ipv6Blocks != null) {
                List<AddressPoolRange> addressPoolRanges = new ArrayList<AddressPoolRange>();
                for (AddressBlockIPv6 ipv6Block : ipv6Blocks) {
                    AddressPoolRange addressPoolRange = new AddressPoolRange();
                    addressPoolRange.setAddress_block_id(ipv6Block.getIpv6AddressBlockId());
                    addressPoolRange.setAddress_block_name(ipv6Block.getIpv6AddressBlockName());
                    addressPoolRange.setAverage_address_usage_ratio(ipv6Block.getAverageAddressUsageRatio());
                    addressPoolRanges.add(addressPoolRange);
                }
                reportAddressPool.setAddress_pool_ranges(addressPoolRanges);
                reportAddressPool.setProtocol_type(Constants.PROTOCOL_TYPE_IPV6);
            }
            reportAddressPools.add(reportAddressPool);
        }
        this.address_pool = reportAddressPools;
    }
}

[Buggy Hunk]
this.time = poolStatus.getTime();

[Patch]
this.time = (long) poolStatus.getTime();

[Demonstration 3]

[Buggy Method]
private String[] getLine(int line) {
    ArrayList current_line = (ArrayList) _lines.get(line);
    String[] tmp = new String[current_line.size()];
    for (int i = 0; i < tmp.length; i++) tmp[i] = (String) current_line.get(i);
    return tmp;
}

[Buggy Hunk]
private String[] getLine(int line){

[Patch]
public String[] getLine(int line){