@Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getFailedRecordCount() == null) ? 0 : getFailedRecordCount().hashCode()); hashCode = prime * hashCode + ((getRecords() == null) ? 0 : getRecords().hashCode()); hashCode = prime * hashCode + ((getEncryptionType() == null) ? 0 : getEncryptionType().hashCode()); return hashCode; }
public PutRecordsResult unmarshall(JsonUnmarshallerContext context) throws Exception { PutRecordsResult putRecordsResult = new PutRecordsResult(); if (context.testExpression("FailedRecordCount", targetDepth)) { context.nextToken(); putRecordsResult.setFailedRecordCount(context.getUnmarshaller(Integer.class).unmarshall(context)); putRecordsResult.setRecords(new ListUnmarshaller<PutRecordsResultEntry>(PutRecordsResultEntryJsonUnmarshaller.getInstance()) .unmarshall(context)); putRecordsResult.setEncryptionType(context.getUnmarshaller(String.class).unmarshall(context));
@Override public List<byte[]> sendBatch(String streamName, List<byte[]> data) { if (data == null || data.isEmpty()) { return Collections.emptyList(); } final PutRecordsRequest request = new PutRecordsRequest(); request.setStreamName(streamName); final List<PutRecordsRequestEntry> records = new ArrayList<PutRecordsRequestEntry>(data.size()); for (final byte[] d : data) { final String partKey = StringUtils.isBlank(this.partitionKey) ? UUID.randomUUID().toString() : this.partitionKey; final PutRecordsRequestEntry r = new PutRecordsRequestEntry(); r.setData(ByteBuffer.wrap(d)); r.setPartitionKey(partKey); records.add(r); } request.setRecords(records); request.getRequestClientOptions().appendUserAgent(userAgent); final PutRecordsResult result = client.putRecords(request); final int size = result.getRecords().size(); final List<byte[]> failures = new ArrayList<byte[]>(result.getFailedRecordCount()); for (int i = 0; i < size; i++) { if (result.getRecords().get(i).getErrorCode() != null) { // always retry failed record failures.add(data.get(i)); } } return failures; }
PutRecordsResult results = client.putRecords(putRecordRequest); List<PutRecordsResultEntry> responseEntries = results.getRecords(); for (int i = 0; i < responseEntries.size(); i++ ) { PutRecordsResultEntry entry = responseEntries.get(i);
@Test(expected = AmazonClientException.class) public void testSendBatchException() { String streamName = "stream"; int count = 10; // create an ok result PutRecordsResult result = new PutRecordsResult(); List<PutRecordsResultEntry> entries = new ArrayList<PutRecordsResultEntry>(); result.setFailedRecordCount(0); for (int i = 0; i < count; i++) { PutRecordsResultEntry entry = new PutRecordsResultEntry(); entry.setSequenceNumber("record_id_" + i); entries.add(entry); } result.setRecords(entries); // create data List<byte[]> data = new ArrayList<byte[]>(); for (int i = 0; i < count; i++) { data.add(("record" + i).getBytes(StringUtils.UTF8)); } Mockito.when(client.putRecords(any(PutRecordsRequest.class))).thenThrow( new InvalidArgumentException("invalid argument")); sender.sendBatch(streamName, data); }
/** * <p> * An array of successfully and unsuccessfully processed record results, correlated with the request by natural * ordering. A record that is successfully added to a stream includes <code>SequenceNumber</code> and * <code>ShardId</code> in the result. A record that fails to be added to a stream includes <code>ErrorCode</code> * and <code>ErrorMessage</code> in the result. * </p> * * @param records * An array of successfully and unsuccessfully processed record results, correlated with the request by * natural ordering. A record that is successfully added to a stream includes <code>SequenceNumber</code> and * <code>ShardId</code> in the result. A record that fails to be added to a stream includes * <code>ErrorCode</code> and <code>ErrorMessage</code> in the result. * @return Returns a reference to this object so that method calls can be chained together. */ public PutRecordsResult withRecords(java.util.Collection<PutRecordsResultEntry> records) { setRecords(records); return this; }
.willAnswer(invocation -> { AsyncHandler<PutRecordsRequest, PutRecordsResult> handler = invocation.getArgument(1); handler.onSuccess(new PutRecordsRequest(), new PutRecordsResult()); return mock(Future.class); })
/** * <p> * The number of unsuccessfully processed records in a <code>PutRecords</code> request. * </p> * * @param failedRecordCount * The number of unsuccessfully processed records in a <code>PutRecords</code> request. * @return Returns a reference to this object so that method calls can be chained together. */ public PutRecordsResult withFailedRecordCount(Integer failedRecordCount) { setFailedRecordCount(failedRecordCount); return this; }
setEncryptionType(encryptionType); return this;
PutRecordsResult putRecordsResult = kinesis.putRecords(putRecordsRequest); resultSetList.add(putRecordsResult); if (putRecordsResult.getFailedRecordCount() > 0) { List<PutRecordsRequestEntry> entriesForRetry = new ArrayList<>(); for (int i = 0; i < putRecordsResult.getRecords().size(); i++) { PutRecordsResultEntry resultEntry = putRecordsResult.getRecords().get(i); PutRecordsRequestEntry requestEntry = putRecordsRequest.getRecords().get(i); if (resultEntry.getErrorCode() != null) {
if (getRecords() == null) { this.records = new java.util.ArrayList<PutRecordsResultEntry>(records.length);
PutRecordsResult result = new PutRecordsResult(); List<PutRecordsResultEntry> entries = new ArrayList<PutRecordsResultEntry>(); result.setFailedRecordCount(5); for (int i = 0; i < count; i++) { PutRecordsResultEntry entry = new PutRecordsResultEntry(); result.setRecords(entries);
/** * <p> * An array of successfully and unsuccessfully processed record results, correlated with the request by natural * ordering. A record that is successfully added to a stream includes <code>SequenceNumber</code> and * <code>ShardId</code> in the result. A record that fails to be added to a stream includes <code>ErrorCode</code> * and <code>ErrorMessage</code> in the result. * </p> * <p> * <b>NOTE:</b> This method appends the values to the existing list (if any). Use * {@link #setRecords(java.util.Collection)} or {@link #withRecords(java.util.Collection)} if you want to override * the existing values. * </p> * * @param records * An array of successfully and unsuccessfully processed record results, correlated with the request by * natural ordering. A record that is successfully added to a stream includes <code>SequenceNumber</code> and * <code>ShardId</code> in the result. A record that fails to be added to a stream includes * <code>ErrorCode</code> and <code>ErrorMessage</code> in the result. * @return Returns a reference to this object so that method calls can be chained together. */ public PutRecordsResult withRecords(PutRecordsResultEntry... records) { if (this.records == null) { setRecords(new com.amazonaws.internal.SdkInternalList<PutRecordsResultEntry>(records.length)); } for (PutRecordsResultEntry ele : records) { this.records.add(ele); } return this; }
/** * <p> * The number of unsuccessfully processed records in a <code>PutRecords</code> request. * </p> * * @param failedRecordCount * The number of unsuccessfully processed records in a <code>PutRecords</code> request. * @return Returns a reference to this object so that method calls can be chained together. */ public PutRecordsResult withFailedRecordCount(Integer failedRecordCount) { setFailedRecordCount(failedRecordCount); return this; }
setEncryptionType(encryptionType); return this;
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof PutRecordsResult == false) return false; PutRecordsResult other = (PutRecordsResult) obj; if (other.getFailedRecordCount() == null ^ this.getFailedRecordCount() == null) return false; if (other.getFailedRecordCount() != null && other.getFailedRecordCount().equals(this.getFailedRecordCount()) == false) return false; if (other.getRecords() == null ^ this.getRecords() == null) return false; if (other.getRecords() != null && other.getRecords().equals(this.getRecords()) == false) return false; if (other.getEncryptionType() == null ^ this.getEncryptionType() == null) return false; if (other.getEncryptionType() != null && other.getEncryptionType().equals(this.getEncryptionType()) == false) return false; return true; }
.withRecords(records) .withStreamName(config.getEventStoreStreamName())); if (putRecordsResult.getFailedRecordCount() > 0) { int[] failedRecordIndexes = new int[putRecordsResult.getFailedRecordCount()]; int idx = 0; List<PutRecordsResultEntry> recordsResponse = putRecordsResult.getRecords(); for (int i = 0; i < recordsResponse.size(); i++) { if (recordsResponse.get(i).getErrorCode() != null) { LOGGER.warn("Error in Kinesis putRecords: %d records.", putRecordsResult.getFailedRecordCount(), errors.toString()); return failedRecordIndexes;
final List<PutRecordsResultEntry> results = res.getRecords(); List<PutRecordsRequestEntry> retries = IntStream .range(0, results.size())
public PutRecordsResult unmarshall(JsonUnmarshallerContext context) throws Exception { PutRecordsResult putRecordsResult = new PutRecordsResult(); AwsJsonReader reader = context.getReader(); reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("FailedRecordCount")) { putRecordsResult.setFailedRecordCount(IntegerJsonUnmarshaller.getInstance() .unmarshall(context)); } else if (name.equals("Records")) { putRecordsResult.setRecords(new ListUnmarshaller<PutRecordsResultEntry>( PutRecordsResultEntryJsonUnmarshaller.getInstance() ) .unmarshall(context)); } else if (name.equals("EncryptionType")) { putRecordsResult.setEncryptionType(StringJsonUnmarshaller.getInstance() .unmarshall(context)); } else { reader.skipValue(); } } reader.endObject(); return putRecordsResult; }
PutRecordsResult result = new PutRecordsResult(); List<PutRecordsResultEntry> entries = new ArrayList<PutRecordsResultEntry>(); result.setFailedRecordCount(0); for (int i = 0; i < count; i++) { PutRecordsResultEntry entry = new PutRecordsResultEntry(); entries.add(entry); result.setRecords(entries);