A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pmd/pmd/issues/4270 below:

[plsql] Parsing exception COMPOUND TRIGGER with EXCEPTION handler · Issue #4270 · pmd/pmd · GitHub

Affects PMD Version:

This error was testing in the following versions:

Description:

Trying to analyze pl/sql code in a Compound Trigger PMD raises an exception error that indicates "Error while parsing".

Exception Stacktrace:

net.sourceforge.pmd.PMDException: Error while parsing C:\testfolder\example_trigger.sql
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:124)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:100)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:62)
	at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:85)
	at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:29)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: net.sourceforge.pmd.lang.plsql.ast.ParseException: Encountered "  "l_number_one "" at line 5, column 4.
Was expecting:
    "BEGIN" ...
    
	at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.generateParseException(PLSQLParser.java)
	at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.jj_consume_token(PLSQLParser.java)
	at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.TriggerTimingPointSection(PLSQLParser.java:53993)
	at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.CompoundTriggerBlock(PLSQLParser.java:54808)
	at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.TriggerUnit(PLSQLParser.java:53919)
	at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.Input(PLSQLParser.java:143)
	at net.sourceforge.pmd.lang.plsql.PLSQLParser.parse(PLSQLParser.java:61)
	at net.sourceforge.pmd.lang.AbstractParser.doParse(AbstractParser.java:44)
	at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:136)
	at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:200)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:118)
	... 10 more

Code Sample demonstrating the issue:

--
-- CREATE TABLE ONLY FOR INSTALLATION PURPOSES IN A DATABASE
CREATE TABLE TEST_TABLE
(
  COL_ONE    VARCHAR2(10),
  COL_TWO    VARCHAR2(10),
  COL_THREE  VARCHAR2(10)
);
--
-- TRIGGER EXAMPLE
CREATE OR REPLACE TRIGGER EXAMPLE_TRIGGER
   FOR INSERT ON TEST_TABLE
   COMPOUND TRIGGER
   --
   l_number_one NUMBER(2) := ROUND(DBMS_RANDOM.Value(1, 10));
   l_number_two NUMBER(2) := ROUND(DBMS_RANDOM.Value(1, 10));
   --
   BEFORE EACH ROW IS
      --
      l_tot_numbers NUMBER(2);
      --
   BEGIN
      --
      l_tot_numbers := l_number_one + l_number_two;
      --
      :NEW.col_one   := l_number_one;
      :NEW.col_two   := l_number_two;
      :NEW.col_three := l_tot_numbers;
      --
   EXCEPTION
      WHEN OTHERS THEN
         RAISE_APPLICATION_ERROR(-20001, 'ERROR AT EXAMPLE_TRIGGER - BEFORE EACH ROW' || CHR(10) || SQLERRM);
   END BEFORE EACH ROW;
   --
   --
   AFTER STATEMENT IS
   BEGIN
      --
      DBMS_OUTPUT.Put_Line('This is just an example!');
      --
   EXCEPTION
      WHEN OTHERS THEN
         RAISE_APPLICATION_ERROR(-20002, 'ERROR AT EXAMPLE_TRIGGER - AFTER STATEMENT' || CHR(10) || SQLERRM);
   END AFTER STATEMENT;
   --
END EXAMPLE_TRIGGER;

Steps to reproduce:

  1. Put the code above ("Code Sample demonstrating the issue" section) in example_trigger.sql
  2. Execute PMD analyzer from CLI.
  3. See the error showed in the "Exception Stacktrace" section.

Running PMD through: [CLI]


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4