Affects PMD Version:
6.27.0
Description:
PMD can't parse PL/SQL containing DML statement with Error Logging.
Exception Stacktrace:
net.sourceforge.pmd.PMDException: Error while parsing Z:\...\test.prc
at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:110)
at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:89)
at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:51)
at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:78)
at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:24)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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: net.sourceforge.pmd.lang.plsql.ast.ParseException: Encountered " "ERRORS" "errors "" at line 4, column 7.
Was expecting one of:
";" ...
"WHERE" ...
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.UnlabelledStatement(PLSQLParser.java:24047)
at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.Statement(PLSQLParser.java:24959)
at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.ProgramUnit(PLSQLParser.java:6644)
at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.Global(PLSQLParser.java:506)
at net.sourceforge.pmd.lang.plsql.ast.PLSQLParser.Input(PLSQLParser.java:150)
at net.sourceforge.pmd.lang.plsql.PLSQLParser.parse(PLSQLParser.java:61)
at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:121)
at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:185)
at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:107)
... 10 more
Code Sample demonstrating the issue:
create or replace procedure test as
begin
delete from test_table
log errors into err$_test_table limit unlimited;
end;
/
Steps to reproduce:
Running PMD through: CLIpmd -d . -f html -R category/plsql/design.xml/ExcessiveMethodLength
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