[Demonstration 1]

[Buggy Method]
static List<Droplet> getDroplets(String authToken) throws DigitalOceanException, RequestUnsuccessfulException {
    LOGGER.log(Level.INFO, "Listing all droplets");
    DigitalOceanClient apiClient = new DigitalOceanClient(authToken);
    List<Droplet> availableDroplets = newArrayList();
    Droplets droplets;
    int page = 1;
    do {
        droplets = apiClient.getAvailableDroplets(page);
        availableDroplets.addAll(droplets.getDroplets());
        page += 1;
    } while (droplets.getMeta().getTotal() > page);
    return availableDroplets;
}

[Buggy Hunk]
droplets = apiClient.getAvailableDroplets(page);

[Patch]
droplets = apiClient.getAvailableDroplets(page, Integer.MAX_VALUE);

[Demonstration 2]

[Buggy Method]
@Test
public void testExternalPbe() throws Exception {
    final String password = "password";
    final String salt = "salt";
    final TestSubscriber<String> testSubscriber = new TestSubscriber<>();
    RxCrypto.generatePasswordBasedSecretKey(password.toCharArray(), 20 * Byte.SIZE, salt.getBytes(Charsets.UTF_8)).map(new Func1<SecretKey, String>() {

        @Override
        public String call(SecretKey secretKey) {
            return Hex.toHexString(secretKey.getEncoded()).toUpperCase();
        }
    }).subscribe(testSubscriber);
    assertThat(checkTestSubscriberAndGetValue(testSubscriber)).isEqualTo("6E88BE8BAD7EAE9D9E10AA061224034FED48D03F");
}

[Buggy Hunk]
return Hex.toHexString(secretKey.getEncoded()).toUpperCase();

[Patch]
return Hex.toHexString(secretKey.getEncoded()).toUpperCase(Locale.US);

[Demonstration 3]

[Buggy Method]
@SuppressWarnings("unchecked")
@Test
public void intervalResultInCorrectTotalCouples() {
    TestSubscriber<Object> ts = new TestSubscriber<>();
    SingleTimedScheduler exec1 = new SingleTimedScheduler();
    SingleTimedScheduler exec2 = new SingleTimedScheduler();
    try {
        new PublisherCombineLatest<>(new Publisher[] { Px.interval(100, TimeUnit.MILLISECONDS, exec1).take(20), Px.interval(100, 50, TimeUnit.MILLISECONDS, exec2).take(20) }, a -> Arrays.asList(a[0], a[1]), qs, 128).// .doOnNext(System.out::println)
        subscribe(ts);
        if (!ts.await(5, TimeUnit.SECONDS)) {
            ts.cancel();
            Assert.fail("TestScheduler timed out");
        }
        ts.assertValueCount(39).assertComplete().assertNoError();
    } finally {
        exec1.shutdown();
        exec2.shutdown();
    }
}

[Buggy Hunk]
new PublisherCombineLatest<>(new Publisher[] {

[Patch]
new PublisherCombineLatest<Object, List<Object>>(new Publisher[] {