[Demonstration 1]

[Buggy Method]
@Override
public List<String> getStringList(String path) {
    List<String> newStringList = new LinkedList<String>();
    //If we only have a String -> Put it in an list.
    if (isString(path))
        return Arrays.asList(getString(path));
    //If a list -> put it to the List.
    List<String> stringList = super.getStringList(path);
    for (String string : stringList) {
        string = replaceUmlauts(string);
        newStringList.add(string);
    }
    return newStringList;
}

[Buggy Hunk]
if(isString(path)) return Arrays.asList(getString(path));

[Patch]
if(isString(path)) return new ArrayList<String>(Arrays.asList(getString(path)));

[Demonstration 2]

[Buggy Method]
public void setCookie(String name, String value, int expires) {
    session.getCookies().set(name, value, expires);
}

[Buggy Hunk]
session.getCookies().set(name, value, expires);

[Patch]
session.getCookies().set(new Cookie(name, value, expires));

[Demonstration 3]

[Buggy Method]
@Override
public boolean handleConnectorRequest(VaadinRequest request, VaadinResponse response, String path) {
    try {
        if (path.startsWith("0")) {
            response.setHeader("Accept-Ranges", "bytes");
        }
        return super.handleConnectorRequest(request, response, path);
    } catch (IOException e) {
        return true;
    }
}

[Buggy Hunk]
if (path.startsWith("0")) {

[Patch]
if (path.startsWith(RESOURCE_KEY)) {