@Test public void testUrisToWriterListenerException() { final AtomicInteger failureBatchCount = new AtomicInteger(); StringWriter badWriter = new StringWriter() { public void write(String str) { throw new InternalError(errorMessage); } }; testListenerException( new UrisToWriterListener(badWriter) .onBatchFailure( (batch, throwable) -> failureBatchCount.incrementAndGet() ) ); // there should be one failure sent to the UrisToWriterListener // onBatchFailure listener since the writer is invalid assertEquals(1, failureBatchCount.get()); }
/** * This implementation of initializeListener adds this instance of * UrisToWriterListener to the two RetryListener's in this QueryBatcher so they * will retry any batches that fail during the uris request. */ @Override public void initializeListener(QueryBatcher queryBatcher) { HostAvailabilityListener hostAvailabilityListener = HostAvailabilityListener.getInstance(queryBatcher); if ( hostAvailabilityListener != null ) { BatchFailureListener<QueryBatch> retryListener = hostAvailabilityListener.initializeRetryListener(this); if ( retryListener != null ) onFailure(retryListener); } NoResponseListener noResponseListener = NoResponseListener.getInstance(queryBatcher); if ( noResponseListener != null ) { BatchFailureListener<QueryBatch> noResponseRetryListener = noResponseListener.initializeRetryListener(this); if ( noResponseRetryListener != null ) onFailure(noResponseRetryListener); } }
.withThreadCount(5) .withBatchSize(100) .onUrisReady( new UrisToWriterListener(writer) ) .onUrisReady(batch -> successDocs1.addAndGet(batch.getItems().length)) .onQueryFailure( throwable -> {
QueryBatcher getUris = dataMovementManager.newQueryBatcher(query) .withBatchSize(5000) .onUrisReady( new UrisToWriterListener(writer) ) .onQueryFailure(exception -> exception.printStackTrace()); JobTicket getUrisTicket = dataMovementManager.startJob(getUris);