@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { // BWC: Versions before 2.x have no status on failure. In those cases we check the error message contents. boolean legacyRetry = entry.getResponseCode() == -1 && entry.getException().getMessage().contains("EsRejectedExecutionException"); if (legacyRetry || retry.retry(entry.getResponseCode())) { // Negative retry limit? Retry forever. if (retryLimit < 0 || entry.getNumberOfAttempts() <= retryLimit) { return collector.backoffAndRetry(retryTime, TimeUnit.MILLISECONDS); } else { return collector.pass("Document bulk write attempts [" + entry.getNumberOfAttempts() + "] exceeds configured automatic retry limit of [" + retryLimit + "]"); } } else { return collector.pass("Non retryable code [" + entry.getResponseCode() + "] encountered."); } } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { return collector.retry(); // NEVER GIVE UP } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { // BWC: Versions before 2.x have no status on failure. In those cases we check the error message contents. boolean legacyRetry = entry.getResponseCode() == -1 && entry.getException().getMessage().contains("EsRejectedExecutionException"); if (legacyRetry || retry.retry(entry.getResponseCode())) { // Negative retry limit? Retry forever. if (retryLimit < 0 || entry.getNumberOfAttempts() <= retryLimit) { return collector.backoffAndRetry(retryTime, TimeUnit.MILLISECONDS); } else { return collector.pass("Document bulk write attempts [" + entry.getNumberOfAttempts() + "] exceeds configured automatic retry limit of [" + retryLimit + "]"); } } else { return collector.pass("Non retryable code [" + entry.getResponseCode() + "] encountered."); } } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { byte[] data = copyDocumentBytes(entry); byte[] sansNewline = new byte[data.length - 1]; System.arraycopy(data, 0, sansNewline, 0, sansNewline.length); return collector.retry(sansNewline); } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { // BWC: Versions before 2.x have no status on failure. In those cases we check the error message contents. boolean legacyRetry = entry.getResponseCode() == -1 && entry.getException().getMessage().contains("EsRejectedExecutionException"); if (legacyRetry || retry.retry(entry.getResponseCode())) { // Negative retry limit? Retry forever. if (retryLimit < 0 || entry.getNumberOfAttempts() <= retryLimit) { return collector.backoffAndRetry(retryTime, TimeUnit.MILLISECONDS); } else { return collector.pass("Document bulk write attempts [" + entry.getNumberOfAttempts() + "] exceeds configured automatic retry limit of [" + retryLimit + "]"); } } else { return collector.pass("Non retryable code [" + entry.getResponseCode() + "] encountered."); } } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { byte[] garbage = "{\"element\": \"A\"}".getBytes(); return collector.retry(garbage); } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { // BWC: Versions before 2.x have no status on failure. In those cases we check the error message contents. boolean legacyRetry = entry.getResponseCode() == -1 && entry.getException().getMessage().contains("EsRejectedExecutionException"); if (legacyRetry || retry.retry(entry.getResponseCode())) { // Negative retry limit? Retry forever. if (retryLimit < 0 || entry.getNumberOfAttempts() <= retryLimit) { return collector.backoffAndRetry(retryTime, TimeUnit.MILLISECONDS); } else { return collector.pass("Document bulk write attempts [" + entry.getNumberOfAttempts() + "] exceeds configured automatic retry limit of [" + retryLimit + "]"); } } else { return collector.pass("Non retryable code [" + entry.getResponseCode() + "] encountered."); } } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { byte[] garbage = "{\"element\": \"A\"}\n".getBytes(); return collector.retry(garbage); } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { assertEquals(401, entry.getResponseCode()); // Copy the bytes into a byte array and retry the byte array. byte[] copyDoc = copyDocumentBytes(entry); copyDoc[25] = (byte) (copyDoc[25] + 1); return collector.retry(copyDoc); } }
assertEquals(401, entry.getResponseCode()); return collector.retry(((FastByteArrayInputStream)entry.getEntryContents()).bytes().bytes()); } else if (attemptCount == 2) { assertEquals(2, entry.getNumberOfAttempts()); return collector.retry(copyDoc); } else if (attemptCount == 3) { assertEquals(3, entry.getNumberOfAttempts()); String data = new BytesArray(copyDoc).toString(); String newData = data.replace("A", "X"); return collector.retry(newData.getBytes(Charsets.UTF_8)); } else if (attemptCount == 4) { assertEquals(1, entry.getNumberOfAttempts()); // New document should reset attempt count assertEquals(404, entry.getResponseCode()); return collector.retry(); } else { throw new AssertionError("Invalid attempts");