[Demonstration 1]

[Buggy Method]
@Override
public void execute(final CommandSender commandSender, final String[] strings) {
    if (commandSender instanceof ProxiedPlayer) {
        SubCommand subCommand;
        if (strings.length > 0) {
            subCommand = subCommands.get(strings[0]);
            if (subCommand == null) {
                KarmaPlugin.sendMessage(commandSender, KarmaPluginConfig.getInstance().getText("error.unknownCommand").replace("{0}", strings[0]));
            }
        } else {
            subCommand = subCommands.get("help");
        }
        if (subCommand != null) {
            final SubCommand finalSubCommand = subCommand;
            // execute the subcommand in a thread
            ProxyServer.getInstance().getScheduler().runAsync(KarmaPlugin.getInstance(), () -> finalSubCommand.execute(commandSender, Arrays.copyOfRange(strings, 1, strings.length)));
        }
    } else {
        ProxyServer.getInstance().getLogger().info("Command cannot be used from console!");
    }
}

[Buggy Hunk]
() -> finalSubCommand.execute(commandSender, Arrays.copyOfRange(strings, 1, strings.length))

[Patch]
() -> finalSubCommand.execute(commandSender, strings.length > 0 ? Arrays.copyOfRange(strings, 1, strings.length) : new String[0])

[Demonstration 2]

[Buggy Method]
public Operable pow(Operable other) {
    if (other instanceof Num) {
        return new Num(Math.pow(value, ((Num) other).getValue()));
    } else if (other instanceof Complex) {
        return new Complex(this).pow(other);
    } else {
        return other.op("^", this);
    }
}

[Buggy Hunk]
return other.op("^", this);

[Patch]
return new Expr("^", this, other);

[Demonstration 3]

[Buggy Method]
public java.lang.CharSequence getHash() {
    return hash;
}

[Buggy Hunk]
public java.lang.CharSequence getHash() {

[Patch]
public java.lang.String getHash() {