Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-9349

Fetching transaction event count can result in NullPointerException

XMLWordPrintable

      If a call is made to the getTransactionEventCount for Ehcache or Infinispan and the transaction no longer exists, this can result in a NullPointerException, as seen here

      ava.lang.NullPointerException: Cannot invoke "java.util.TreeSet.size()" because the return value of "java.util.Map.get(Object)" is null
      	at io.debezium.connector.oracle.logminer.buffered.infinispan.InfinispanLogMinerTransactionCache.getTransactionEventCount(InfinispanLogMinerTransactionCache.java:157)
      	at io.debezium.connector.oracle.logminer.buffered.infinispan.InfinispanLogMinerTransactionCache.getTransactionEventCount(InfinispanLogMinerTransactionCache.java:27)
      	at io.debezium.connector.oracle.logminer.buffered.BufferedLogMinerStreamingChangeEventSource.getTransactionEventCount(BufferedLogMinerStreamingChangeEventSource.java:262)
      	at io.debezium.connector.oracle.logminer.buffered.BufferedLogMinerStreamingChangeEventSource.handleCommitEvent(BufferedLogMinerStreamingChangeEventSource.java:366)
      	at io.debezium.connector.oracle.logminer.AbstractLogMinerStreamingChangeEventSource.processEvent(AbstractLogMinerStreamingChangeEventSource.java:472)
      	at io.debezium.connector.oracle.logminer.AbstractLogMinerStreamingChangeEventSource.executeAndProcessQuery(AbstractLogMinerStreamingChangeEventSource.java:398)
      	at io.debezium.connector.oracle.logminer.buffered.BufferedLogMinerStreamingChangeEventSource.process(BufferedLogMinerStreamingChangeEventSource.java:230)
      	at io.debezium.connector.oracle.logminer.buffered.BufferedLogMinerStreamingChangeEventSource.executeLogMiningStreaming(BufferedLogMinerStreamingChangeEventSource.java:151)
      	at io.debezium.connector.oracle.logminer.AbstractLogMinerStreamingChangeEventSource.execute(AbstractLogMinerStreamingChangeEventSource.java:210)
      	at io.debezium.connector.oracle.logminer.AbstractLogMinerStreamingChangeEventSource.execute(AbstractLogMinerStreamingChangeEventSource.java:88)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:326)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:207)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:147)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
      	at java.base/java.lang.Thread.run(Thread.java:1583)
      

              ccranfor@redhat.com Chris Cranford
              ccranfor@redhat.com Chris Cranford
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: