[Demonstration 1]

[Buggy Method]
public static <T> void getObjects(List<T> objects, DroidNubeKitConstants.kDatabaseType databaseType, final DNKCallback<List<T>> callback) {
    if (objects == null || objects.size() == 0)
        return;
    List<DNKRecord> records = new ArrayList<>();
    for (Object o : objects) {
        if (o instanceof DNKObject) {
            DNKObject dnkObject = (DNKObject) o;
            records.add(dnkObject.toRecord());
        }
    }
    getRecords(records, databaseType, callback);
}

[Buggy Hunk]
public static <T> void getObjects(List<T> objects, DroidNubeKitConstants.kDatabaseType databaseType, final DNKCallback<List<T>> callback) {

[Patch]
public <T> void getObjects(List<T> objects, DroidNubeKitConstants.kDatabaseType databaseType, final DNKCallback<List<T>> callback) {

[Demonstration 2]

[Buggy Method]
void doDebug(IProgressMonitor monitor) throws InterruptedException {
    Map<String, String> parameters = new HashMap<String, String>();
    parameters.put("hostname", "localhost");
    parameters.put("port", session.getJdb() + "");
    parameters.put("timeout", session.getTimeout() + "");
    IVMConnector connector = JavaRuntime.getDefaultVMConnector();
    while (!monitor.isCanceled()) {
        try {
            connector.connect(parameters, monitor, launch);
            break;
        } catch (Exception e) {
            Thread.sleep(500);
        }
    }
}

[Buggy Hunk]
parameters.put("hostname", "localhost");

[Patch]
parameters.put("hostname", session.getHost());

[Demonstration 3]

[Buggy Method]
public static <T> Tuple4<Promise<T>, Consumer<? super T>, Consumer<? super Exception>, Consumer<? super Promise<T>>> deferred() {
    final Promise<T> promise = new Promise<T>();
    return new Tuple4<Promise<T>, Consumer<? super T>, Consumer<? super Exception>, Consumer<? super Promise<T>>>(promise, new Consumer<T>() {

        @Override
        public void accept(T t) {
            promise._fulfill(t);
        }
    }, new Consumer<Exception>() {

        @Override
        public void accept(Exception t) {
            promise._reject(t);
        }
    }, new Consumer<Promise<T>>() {

        @Override
        public void accept(Promise<T> t) {
            promise._resolve(t);
        }
    });
}

[Buggy Hunk]
public static <T> Tuple4<Promise<T>, Consumer<? super T>, Consumer<? super Exception>, Consumer<? super Promise<T>>> deferred() {

[Patch]
public static <T> Tuple4<? extends Promise<T>, ? extends Consumer<? super T>, ? extends Consumer<? super Exception>, ? extends Consumer<? super Promise<T>>> deferred() {