You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Augustin Lafanechere (JIRA)" <ji...@apache.org> on 2019/01/14 15:34:00 UTC

[jira] [Created] (BEAM-6424) RabbitMqIO: NullPointerException raised on getWatermark() first call

Augustin Lafanechere created BEAM-6424:
------------------------------------------

             Summary: RabbitMqIO: NullPointerException raised on getWatermark() first call
                 Key: BEAM-6424
                 URL: https://issues.apache.org/jira/browse/BEAM-6424
             Project: Beam
          Issue Type: Bug
          Components: io-ideas
            Reporter: Augustin Lafanechere
            Assignee: Eugene Kirpichov


I tried to use the RabbitMqIO with the direct runner to generate an unbounded PCollection from a queue. I encounter a NPE :
{quote}{{java.lang.NullPointerException}}
{{ at org.apache.beam.runners.direct.UnboundedReadEvaluatorFactory$UnboundedReadEvaluator.processElement (UnboundedReadEvaluatorFactory.java:169)}}
{{....}}
{quote}
After investigation it looks like it's caused by the fact that no default is given to 
checkpointMark.oldestTimestamp. getWatermark() is called before the mutation of the currentTimestamp variable, raising a NPE. I fixed the problem on my side, reimplementing the class and overriding getWatermark to return Instant.now()  if checkpointMark.oldestTimestamp is null :
{quote}@Override
publicInstantgetWatermark() {
  if (checkpointMark.oldestTimestamp == null) {
    returnInstant.now();
  }
  return checkpointMark.oldestTimestamp;
}{quote}
It looks likes this bug as [already been raised here|https://jira.apache.org/jira/browse/BEAM-1240?focusedCommentId=16566869&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16566869] on the PR for RabbitMqIO.
 
 
 



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