[ 
https://issues.apache.org/jira/browse/FLINK-10358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16621720#comment-16621720
 ] 

ASF GitHub Bot commented on FLINK-10358:
----------------------------------------

mxm closed pull request #6708: [FLINK-10358][Kinesis-connector] fix NPE in case 
millisBehindLatest is null
URL: https://github.com/apache/flink/pull/6708
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/internals/ShardConsumer.java
 
b/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/internals/ShardConsumer.java
index 5845eea8f88..36a4e92c179 100644
--- 
a/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/internals/ShardConsumer.java
+++ 
b/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/internals/ShardConsumer.java
@@ -373,7 +373,10 @@ private GetRecordsResult getRecords(String shardItr, int 
maxNumberOfRecords) thr
                                getRecordsResult = kinesis.getRecords(shardItr, 
maxNumberOfRecords);
 
                                // Update millis behind latest so it gets 
reported by the millisBehindLatest gauge
-                               
shardMetricsReporter.setMillisBehindLatest(getRecordsResult.getMillisBehindLatest());
+                               Long millisBehindLatest = 
getRecordsResult.getMillisBehindLatest();
+                               if (millisBehindLatest != null) {
+                                       
shardMetricsReporter.setMillisBehindLatest(millisBehindLatest);
+                               }
                        } catch (ExpiredIteratorException eiEx) {
                                LOG.warn("Encountered an unexpected expired 
iterator {} for shard {};" +
                                        " refreshing the iterator ...", 
shardItr, subscribedShard);


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Flink kinesis connector could throw NPE during getRecords() call 
> -----------------------------------------------------------------
>
>                 Key: FLINK-10358
>                 URL: https://issues.apache.org/jira/browse/FLINK-10358
>             Project: Flink
>          Issue Type: Bug
>          Components: Kinesis Connector
>            Reporter: Ying Xu
>            Assignee: Ying Xu
>            Priority: Major
>              Labels: pull-request-available
>
> When extending the flink kinesis connector to consume from a dynamodb stream, 
> it was found NPE could be thrown at 
> [here|https://github.com/apache/flink/blob/e3c98f05d3544d0165c2d97d2d00fcd295cef8c8/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/internals/ShardConsumer.java#L376]
>  . 
> This is because the [getRecords 
> API|https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html]
>  in dynamodb streams does not return the millisBehindLatest field and has it 
> set to null.  Null check is probably needed here.
> See FLINK-4582 for the context of building dynamodb streams connector on top 
> of the Kinesis connector. 
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to