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

Debezium deals with Oracle DDL appeared IndexOutOfBoundsException: Index: 0, Size: 0

    XMLWordPrintable

Details

    Description

      All debezium-connector-oracle of versions can not deals with Oracle MODIFY DDL.

      My confiuration is :

      {"name": "oracle",
       "config":\{ "connector.class":"io.debezium.connector.oracle.OracleConnector", "tasks.max":"1", "database.server.name": "oracle", "database.hostname": "12.0.xxx.xx", "database.port": "1521", "database.user": "dbzuser", "database.password": "dbzuser", "database.dbname": "testogg", "database.history.kafka.topic": "oracle-history", "database.history.kafka.bootstrap.servers": "xx.x.xxx.xx:9092", "database.history.skip.unparseable.ddl": "true", "database.history.store.only.captured.tables.ddl": "true", "table.include.list": "SCOTT.T_DBZ_TEST1", "tombstones.on.delete": "false", "decimal.handling.mode": "string", "lob.enabled": "false" }}
      

      My operation is:

      ALTER TABLE SCOTT.T_DBZ_TEST1 MODIFY T_VARCHAR2 VARCHAR2(20);
      

      The detail problem is:

      org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
      at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:42)
      at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:175)
      at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:54)
      at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:166)
      at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:127)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
      at java.util.ArrayList.rangeCheck(ArrayList.java:659)
      at java.util.ArrayList.get(ArrayList.java:435)
      at io.debezium.connector.oracle.antlr.listener.AlterTableParserListener.lambda$enterAdd_column_clause$2(AlterTableParserListener.java:116)
      at io.debezium.connector.oracle.antlr.OracleDdlParser.runIfNotNull(OracleDdlParser.java:158)
      at io.debezium.connector.oracle.antlr.listener.AlterTableParserListener.enterAdd_column_clause(AlterTableParserListener.java:108)
      at io.debezium.ddl.parser.oracle.generated.PlSqlParser$Add_column_clauseContext.enterRule(PlSqlParser.java)
      at io.debezium.antlr.ProxyParseTreeListenerUtil.delegateEnterRule(ProxyParseTreeListenerUtil.java:46)
      at io.debezium.connector.oracle.antlr.listener.OracleDdlParserListener.enterEveryRule(OracleDdlParserListener.java:46)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.enterRule(ParseTreeWalker.java:41)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:25)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
      at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:87)
      at io.debezium.connector.oracle.antlr.OracleDdlParser.parse(OracleDdlParser.java:63)
      at io.debezium.connector.oracle.OracleSchemaChangeEventEmitter.emitSchemaChangeEvent(OracleSchemaChangeEventEmitter.java:84)
      at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:305)
      at io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor.handleSchemaChange(AbstractLogMinerEventProcessor.java:265)
      at io.debezium.connector.oracle.logminer.processor.memory.MemoryLogMinerEventProcessor.handleSchemaChange(MemoryLogMinerEventProcessor.java:318)
      at io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor.processRow(AbstractLogMinerEventProcessor.java:189)
      at io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor.processResults(AbstractLogMinerEventProcessor.java:161)
      at io.debezium.connector.oracle.logminer.processor.memory.MemoryLogMinerEventProcessor.process(MemoryLogMinerEventProcessor.java:116)
      at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:162)
      

      Attachments

        Activity

          People

            ccranfor@redhat.com Chris Cranford
            jiajingsi jingsi jia
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: