Compare commits

...
Author SHA1 Message Date
Andreas Dangel dc1c9d0aed [maven-release-plugin] prepare release pmd_releases/6.33.0 2021-03-27 16:25:13 +01:00
Andreas Dangel 12143c6490 Prepare pmd release 6.33.0 2021-03-27 16:14:50 +01:00
Andreas Dangel afdf876f36 [doc] Update release notes - no API changes 2021-03-27 16:03:48 +01:00
Andreas Dangel ff0e3cceb9 Merge pull request #3147 from adangel:issue-2977-close-resource-reassignment
[java] CloseResource: false positive with reassignment detection #3147
2021-03-27 15:06:36 +01:00
Andreas Dangel 504f31d1c5 [java] CloseResource - refactor to use isVariableAccess 2021-03-27 15:02:50 +01:00
Andreas Dangel 17252cb423 Merge branch 'master' into issue-2977-close-resource-reassignment 2021-03-27 14:47:48 +01:00
Andreas Dangel 5953bb2968 Merge pull request #3151 from adangel:issue-3148-close-resource-if
[java] CloseResource false positive with Objects.nonNull #3151
2021-03-27 14:33:04 +01:00
Andreas Dangel bbac216b3e Merge pull request #3156 from
adangel:issue-3142-apex-excessive-class-length

[apex] ExcessiveClassLength multiple warning on the same class #3156
2021-03-27 14:27:56 +01:00
Andreas Dangel 96a44cec59 Merge pull request #3170 from adangel:issue-3165-invalidlogmessageformat
[java] InvalidLogMessageFormat more String.format detection #3170
2021-03-27 14:13:15 +01:00
Andreas Dangel 0c113dfe52 Merge pull request #3157 from
adangel:issue-3118-unused-private-method-lombok-val

[java] UnusedPrivateMethod false positive when passing in lombok.val as
argument #3157
2021-03-27 14:11:47 +01:00
Andreas Dangel fdc6336bf2 [ci] Increase timeout for staging to oss.sonatype.org 2021-03-26 17:56:26 +01:00
Andreas Dangel d11f1a087a [java] InvalidLogMessageFormat more String.format detection
Fixes #3165
2021-03-26 09:00:00 +01:00
Andreas Dangel d08d1d10e6 Merge pull request #3161 from hvbtup:master
[plsql] Add support for lexical parameters in SQL*Plus scripts,
allow excluding lines which the parser does not understand #3161
2021-03-26 08:42:44 +01:00
Andreas Dangel 35790704b4 Merge branch 'master' into pr-3161 2021-03-25 20:00:25 +01:00
Andreas Dangel 813a0b194a [doc] Update release notes, refs #195, refs #3161 2021-03-25 19:59:01 +01:00
Andreas Dangel efbf023648 [plsql] Rework SQLCommand keywords vs. identifiers 2021-03-25 19:49:03 +01:00
Andreas Dangel b35f22d4e0 Fix pmd warning 2021-03-25 16:51:43 +01:00
Andreas Dangel a5478c7358 [plsql] Document PMD Exclusions 2021-03-25 16:44:54 +01:00
Andreas Dangel 90675d9df0 [plsql] Move ParsingExclusion to internal package 2021-03-25 16:26:38 +01:00
Andreas Dangel 595ab39015 [plsql] Move ParsingExclusion test to PlsqlTreeDumpTest 2021-03-25 16:14:12 +01:00
Andreas Dangel f77608899f [plsql] Add test for #195 - SqlPlus lexical variables 2021-03-25 16:09:15 +01:00
Andreas Dangel e2307792b4 Bump build-tools from 9-SNAPSHOT to 10 2021-03-25 11:47:08 +01:00
Henning von Bargen 2eb2ce863f Reacted to comments in the PR:Some refactoring 2021-03-22 16:40:41 +01:00
Andreas Dangel 9f4c22d08c Merge pull request #3167 from AustinTice:patch-1
[java] Minor typo in quickstart ruleset #3167
2021-03-21 21:17:58 +01:00
Andreas Dangel 4020c8beb7 [doc] Update release notes, refs #3167 2021-03-21 21:17:45 +01:00
Austin Tice b1086e982c Minor typo
Fixed package name from LoosePackageCouling -> LoosePackageCoupling.
2021-03-20 14:45:11 -05:00
Henning von Bargen 9d66782457 Avoid PMD warning. 2021-03-12 11:58:37 +01:00
hvbtup 56fed34113 Merge pull request #2 from hvbargen/master
Support for detecting excluded ranges in the top-level Input node
2021-03-12 09:16:45 +01:00
Clément Fournier 342dc1d03a Merge branch 'pr/3155'
Refs #3155
2021-03-10 15:23:06 +01:00
Clément Fournier 833e255526 Merge branch 'master' into pr/3155 2021-03-10 15:22:28 +01:00
Clément Fournier b45ab7698c Fix example syntax 2021-03-10 15:21:13 +01:00
Clément Fournier f1284b91d0 Merge branch 'pr/3154'
Refs #3154
2021-03-10 12:50:14 +01:00
Clément Fournier 7dc879c287 Merge branch 'master' into pr/3154 2021-03-10 12:49:56 +01:00
Clément Fournier bef0d2b848 Merge branch 'pr/3153'
Refs #3153
2021-03-10 12:45:19 +01:00
Clément Fournier ea41b1d556 Merge branch 'master' into pr/3153 2021-03-10 12:45:03 +01:00
Clément Fournier b614ee70cd Merge branch 'pr/3149'
Refs #3149
2021-03-10 12:43:47 +01:00
Clément Fournier a989b68c22 Merge branch 'master' into pr/3149 2021-03-10 12:42:29 +01:00
hvbargen 3040c3461e Support for detecting excluded ranges in the top-level Input node with rules. 2021-03-10 11:36:03 +01:00
Andreas Dangel 1414c83eec [java] MethodReturnsInternalArray does not consider static final fields
and fields initialized with empty array

- Fixes #3160
2021-03-09 19:59:56 +01:00
Henning von Bargen 64dfebf618 Test cases and bug fixes for lexical parameters and exclusion 2021-03-05 17:24:49 +01:00
Clément Fournier d8ddb09b35 Test for #3160 2021-03-05 15:09:29 +01:00
Clément Fournier d884181d04 Merge branch 'pr/3159'
Refs #3159
2021-03-05 11:49:36 +01:00
Clément Fournier d815c5d173 Update grammar changelog 2021-03-05 11:48:05 +01:00
Clément Fournier 24587163c9 Merge branch 'master' into pr/3159 2021-03-05 11:46:59 +01:00
Andreas Dangel 1905ea6d4a Merge pull request #3150 from oowekyala:issue3145-local-record
[java] Fix #3145 - parse exception with local records #3150
2021-03-05 10:15:04 +01:00
Andreas Dangel 3ec49a2b04 [doc] Update release notes (#3145, #3150) 2021-03-05 10:14:51 +01:00
Andreas Dangel 4bfd72e658 [java] Infinite loop when parsing invalid code nested in lambdas
- fixes #3117
- backports part of StatementExpression production from pmd7
2021-03-05 09:58:29 +01:00
hvbtup f07feaf3a1 Merge pull request #1 from hvbargen/master
Add support lexical parameters in SQL*Plus scripts, allow excluding lines which the parser does not understand.
2021-03-05 09:12:08 +01:00
Andreas Dangel 3fb40436fe [java] Add test case for unused private method in nested classes
This is fixed by using rule chain...
2021-03-04 20:22:18 +01:00
Andreas Dangel 3593b4d8b3 [java] UnusedPrivateMethod false positive when passing in lombok.val as
argument

- Fixes #3118
- Is as good as "var", which means, we don't check determine
  the actual type. Could lead to false negatives, when overloaded
  methods are used.
2021-03-04 18:54:12 +01:00
Andreas Dangel 0c16a321dc Fix build under Windows - line endings... 2021-03-04 15:03:40 +01:00
Andreas Dangel 9a6517561e [apex] ExcessiveClassLength multiple warning on the same class
- fixes #3142
2021-03-04 12:47:07 +01:00
Andreas Dangel 18d1612b6b [java] GuardLogStatement: False negative with unguarded method call
- Fixes #3144 (doc update, examples)
- Fixes false negative with method calls as arguments
2021-03-04 11:13:59 +01:00
Andreas Dangel ca89cba25f [java] ConsecutiveLiteralAppends and
InsufficientStringBufferDeclaration: FP with switch expressions

Fixes #3152
2021-03-04 10:20:21 +01:00
Andreas Dangel ac1792959a [java] ConsecutiveLiteralAppend false-positive with builder inside
lambda

Add test case for #2427, already fixed since PMD 6.25.0
2021-03-04 09:52:21 +01:00
Clément Fournier a0e8107249 Fix #3145 - parse exception with local records 2021-03-04 07:48:39 +01:00
Andreas Dangel 86e7cb38cf [java] CloseResource false positive with Objects.nonNull
- fixes #3148
2021-03-03 20:14:06 +01:00
Andreas Dangel 954bcffb94 [java] InvalidLogMessageFormat detection failing when String.format used
- Fixes #3146
2021-03-02 18:36:11 +01:00
Andreas Dangel b942c50631 [java] CloseResource: false positive with reassignment detection
- fixes #2977
2021-03-01 20:13:37 +01:00
Clément Fournier 5650b720b3 Merge branch 'pr/2980'
Refs #2980
2021-03-01 15:42:25 +01:00
Clément Fournier a2d1976db9 Merge branch 'master' into pr/2980 2021-03-01 15:42:08 +01:00
Andreas Dangel be23b6f8aa (dogfood) Bump pmd from 6.31.0 to 6.32.0 2021-02-27 14:04:40 +01:00
Andreas Dangel ad6329faa6 Prepare next development version 2021-02-27 09:47:21 +01:00
Andreas Dangel e0de01ebe9 [maven-release-plugin] prepare for next development iteration 2021-02-27 09:44:05 +01:00
Andreas Dangel 0848e230d0 [maven-release-plugin] prepare release pmd_releases/6.32.0 2021-02-27 09:43:58 +01:00
Andreas Dangel 6ee8398dd7 Prepare pmd release 6.32.0 2021-02-27 09:32:01 +01:00
Andreas Dangel bae42f954a Fix build 2021-02-26 22:09:43 +01:00
Andreas Dangel 84ea5e04b4 Revert the changes - compare Nodes with == again 2021-02-26 20:59:35 +01:00
Andreas Dangel b03ec450c2 (dogfood) Bump pmd from 6.30.0 to 6.31.0 2021-02-26 20:31:26 +01:00
Andreas Dangel 7384a69d31 Merge branch 'master' into dogfood-6.30.0 2021-02-26 19:26:36 +01:00
hvbargen 46e368a3e0 Allow excluding lines from the parser using comments -- PMD-EXCLUDE-BEGIN and -- PMD-EXCLUDE-END. This is to workaround bugs in the PL/SQL parser - some valid statements cannot be parsed. by wrapping them inside PMD-EXCLUDE-BEGIN/END the parser just ignores them and continues parsing with the next line. 2021-02-26 19:11:27 +01:00
Andreas Dangel b576626e40 Merge pull request #3143 from adangel:issue-3089-property-spaces
[core] Trim property values #3143
2021-02-26 19:08:45 +01:00
Andreas Dangel 93a08052af Merge pull request #3139 from adangel:issue-3132-unused-static-import
[java] UnusedImports with static imports on subclasses (fixes #3132)
#3139
2021-02-26 19:07:00 +01:00
Andreas Dangel 1b5b7b8c87 Merge pull request #3138 from
adangel:issue-3133-invalid-log-message-format

[java] InvalidLogMessageFormat fix FP with StringFormattedMessage and
ParameterizedMessage #3138
2021-02-26 19:05:19 +01:00
Andreas Dangel 519fa61e9b Merge pull request #3137 from adangel:deprecations-for-3116
[java] Deprecation in AvoidUsingHardCodedIPRule #3137
2021-02-26 19:03:12 +01:00
Andreas Dangel c5cc51db98 Merge pull request #3136 from
adangel:issue-2716-compare-objects-with-equals

[java] CompareObjectsWithEqualsRule: False positive with Enums #3136
2021-02-26 19:02:23 +01:00
Andreas Dangel 3bf497cca8 Merge pull request #3135 from adangel:issue-3101-parse-error
[java] NullPointerException when running PMD under JRE 11 (fixes #3101) #3135
2021-02-26 18:59:33 +01:00
Andreas Dangel 350d00cf6d Fix build 2021-02-26 16:17:37 +01:00
Andreas Dangel 27f007cb1f [core] Trim rule property values
- Most single-valued properties are trimmed
- Some types keep whitespaces, e.g. Character and Regex

Fixes #3089
2021-02-26 15:45:07 +01:00
Andreas Dangel 1f73ebc607 [java] Update test for #2977 2021-02-26 14:49:43 +01:00
Andreas Dangel 41076fac1c [doc] Add Artem Krosheninnikov's talk about Quality Assurance Automation 2021-02-26 12:11:18 +01:00
Andreas Dangel 7d54b863d1 [java] Update rule doc of InvalidLogMessageFormat 2021-02-25 19:47:31 +01:00
Andreas Dangel 72b07cfa69 [java] CloseResource - make test sample compilable (#2977) 2021-02-25 18:50:04 +01:00
Andreas Dangel 5cad3c270d Fix NPE for interfaces 2021-02-25 18:24:32 +01:00
Andreas Dangel ad1a210940 Fix compile error 2021-02-25 17:19:05 +01:00
hvbargen 475f750216 Support for common SQL*Plus command abbreviations, support for special characters in HOST, REMARK, REM commands. 2021-02-25 16:30:56 +01:00
Andreas Dangel 861a646d83 [java] UnusedImports with static imports on subclasses (fixes #3132) 2021-02-25 14:56:46 +01:00
hvbargen 387dee88f1 No longer accept arbitrary lines as SQL*Plus commands. 2021-02-25 14:43:09 +01:00
Andreas Dangel 760e868931 [java] InvalidLogMessageFormat fix FP
with StringFormattedMessage and ParameterizedMessage
Fixes #3133
2021-02-25 14:22:30 +01:00
Andreas Dangel ddd8510197 [doc] Fix release notes rendering
Escape "||" to not render a table...
2021-02-25 12:03:46 +01:00
Andreas Dangel 29c56727a6 [java] Deprecation in AvoidUsingHardCodedIPRule
- protected and public members
- refs #3116
2021-02-25 11:57:20 +01:00
Andreas Dangel 7146e588d2 [java] CompareObjectsWithEqualsRule: False positive with Enums
- verifies #2716
2021-02-25 10:26:26 +01:00
Andreas Dangel ba3dbd3d80 [java] NullPointerException when running PMD under JRE 11 (fixes #3101) 2021-02-25 09:36:24 +01:00
hvbargen c4fe303393 Replaced StringBuffer with StringBuilder again 2021-02-24 10:32:19 +01:00
hvbargen 017e40ba67 Accept double ampersand as well 2021-02-24 10:28:24 +01:00
hvbargen fd973e7db5 Basic support for ampersand and backslash characters. At least the parser now accepts these characters and can parse a lot more typical scripts. 2021-02-24 09:48:51 +01:00
Andreas Dangel bb564aeb72 Merge pull request #3125 from arturdryomov:ad/docs-indentation
[doc] Fix sample code indentation in documentation #3125
2021-02-22 20:52:27 +01:00
Andreas Dangel 2cc701fbe7 [doc] Update release notes, refs #3125 2021-02-22 20:52:17 +01:00
Clément Fournier 4ee165c8fe Merge pull request #3111 from adangel/java-16-support
(Java 16 support)
2021-02-19 23:07:38 +02:00
Artur Dryomov ab778259b8 Fix code indentation in documentation 2021-02-19 22:33:12 +03:00
Andreas Dangel a482aa3ae4 Merge branch 'master' into java-16-support 2021-02-19 09:20:09 +01:00
Andreas DangelandClément Fournier 7187e1d451 Apply suggestions from code review
Co-authored-by: Clément Fournier <clement.fournier76@gmail.com>
2021-02-19 09:18:31 +01:00
Andreas Dangel 1d6195cc55 Merge pull request #3115 from oowekyala:gh-actions-cleanup-log
[ci] Stop logging download progress in CI #3115
2021-02-19 09:12:37 +01:00
Andreas Dangel 1a30468d35 Merge pull request #3107 from hvbtup:master
[plsql] Fix ParseException for EXECUTE IMMEDIATE str1||str2; #3107
2021-02-19 09:00:38 +01:00
Andreas Dangel e7c808e1b4 [doc] Update release notes (#3106 #3107) 2021-02-19 08:58:51 +01:00
Andreas Dangel a6f68a8beb Merge pull request #3098 from jonathanwiesel:private_apex_doc
[apex] ApexDoc optionally report private and protected #3098
2021-02-19 08:42:59 +01:00
Andreas Dangel a0b0be35bb [doc] Update release notes (#3075 #3098) 2021-02-19 08:42:47 +01:00
Andreas Dangel 403c5956b8 [doc] Update release notes for Java 16 support 2021-02-16 21:19:22 +01:00
Andreas Dangel 2ec77ad02f [java] Remove support for Java 14 preview 2021-02-15 19:58:55 +01:00
Andreas Dangel 3b151e31c4 [java] JEP 397: Sealed Classes (Second Preview) for Java16 Preview 2021-02-15 19:33:36 +01:00
Andreas Dangel 8bc26f95aa [java] JEP 395: Records for Java16
- Renamed ASTRecordConstructorDeclaration to
  ASTCompactConstructorDeclaration to align naming to JLS
- ASTRecordDeclaration, ASTRecordComponentList, ASTRecordComponent,
  ASTRecordBody, ASTCompactConstructorDeclaration are not
  longer @Experimental
2021-02-14 19:42:59 +01:00
Clément Fournier 19eea5ae31 Use a compiled class instead, refs #2881 2021-02-13 22:26:08 +01:00
Clément Fournier 3195757425 Add test cases for #2881 2021-02-13 22:05:31 +01:00
Clément Fournier 79c1bd74e2 Use batch mode instead 2021-02-13 19:09:20 +01:00
Clément Fournier d0721de473 Make dependency plugin silent as well 2021-02-13 19:05:03 +01:00
Clément Fournier da68997926 Also update build command 2021-02-13 18:54:59 +01:00
Clément Fournier d617c964e7 Do not log download progress in CI 2021-02-13 18:39:11 +01:00
Andreas Dangel 03731f8c16 [java] Remove more @Experimental for ASTTypePattern 2021-02-12 18:05:53 +01:00
Andreas Dangel 64b501e0f4 [java] Rename ASTTypeTestPattern -> ASTTypePattern, remove @Experimental
With JEP 394 / Java16, this production has been renamed.
Pattern Matching for Instanceof is now a standard feature,
therefore the AST node is not experimental anymore.
2021-02-12 12:54:06 +01:00
Andreas Dangel 8c755fabe2 [java] JEP 394: Pattern Matching for instanceof for Java16
The TypePattern now allows the final keyword
and Annotations. Pattern variables are now only
effectively final.
2021-02-12 12:44:08 +01:00
Henning von Bargen ac1b5ed159 Issue 3106: Use StringExpression, test case renamed, moved plsql to resource folder. 2021-02-12 09:48:27 +01:00
Andreas Dangel 87cdd60e39 [java] Add versions 16 and 16-preview, update asm 2021-02-12 09:27:10 +01:00
Jonathan Wiesel 42fda5891a Simplify property access 2021-02-11 10:55:19 +01:00
Jonathan Wiesel 20833c0e78 Change to boolean primitive 2021-02-11 10:55:05 +01:00
Henning von Bargen 34eb080884 Added unit test for issue #3106 2021-02-11 09:02:30 +01:00
Henning von Bargen 64d5ccad78 Fix for issue #3106 ParseException for EXECUTE IMMEDIATE str1||str2; 2021-02-10 17:54:10 +01:00
Clément Fournier 2b6dcb3f22 Change default labels for violation issue template
An issue that has both labels probably needs one of them to be removed.
2021-02-08 19:37:00 +01:00
Andreas Dangel 848ec2e7bb Bump org.apache.ant:ant|ant-testutil from 1.10.8 to 1.10.9
Fixes CVE-2020-11979
2021-02-04 10:13:06 +01:00
Jonathan Wiesel c2e4556360 ApexDoc optionally report private and protected 2021-02-02 12:02:52 +01:00
Andreas Dangel 843336a79a Prepare next development version 2021-01-30 18:05:49 +01:00
Andreas Dangel 2ea0328678 [maven-release-plugin] prepare for next development iteration 2021-01-30 18:04:17 +01:00
Andreas Dangel 7d6e6239c5 [maven-release-plugin] prepare release pmd_releases/6.31.0 2021-01-30 18:04:08 +01:00
Andreas Dangel 52062c739e Prepare pmd release 6.31.0 2021-01-30 17:53:26 +01:00
Andreas Dangel 6ec2fa6fb3 [doc] Update release notes, refs #3088 2021-01-30 12:01:43 +01:00
Andreas Dangel 77cf105ecf Merge pull request #3084 from jfeingold35:d/W-8680425-b
[vf] VfUnescapeEl false-positive with builtin functions #3084
2021-01-30 10:03:53 +01:00
Andreas Dangel 52818edb50 [doc] Update release notes, refs #3084, refs #3081 2021-01-30 10:03:03 +01:00
Joshua Feingold d88d8ff913 @W-8680425@: Added LINKTO back into the list of inherently safe functions. 2021-01-29 10:02:09 -06:00
Andreas Dangel df80080aaa Merge pull request #3073 from CopadoSolutions:include-sarif-renderer
[core] Include SARIF renderer #3073
2021-01-28 09:07:23 +01:00
Andreas Dangel aa9dd8fa16 [doc] Update SARIF standard link 2021-01-28 09:04:24 +01:00
Andreas Dangel 33a8aa384e [doc] Update release notes, refs #2953, refs #3073 2021-01-28 09:01:48 +01:00
Joshua Feingold a4916f94fc @W-8680425@: Pulled out some repeated code into convenience method. 2021-01-25 16:33:47 -06:00
Joshua Feingold c14398d19f @W-8680425@: Refactored escape detection in script context. Multiple false positives resolved. 2021-01-25 14:39:25 -06:00
Clément Fournier aa8524ca4a Add tests for #2207 2021-01-25 14:08:06 +01:00
Manuel Moya 7cb3b68884 PR Comments 2021-01-25 11:28:27 +01:00
Andreas Dangel f8c091b742 Merge pull request #3072 from oowekyala:deprecate-rules-631
[java] Deprecate some performance rules #3072
2021-01-22 12:00:22 +01:00
Andreas Dangel 635cdd75d3 [doc] Update release notes (#2295, #2740) 2021-01-22 11:58:55 +01:00
Andreas Dangel 1a030801f3 Merge pull request #3070 from oowekyala:issue3006-singularfield-npe
[java] Fix NPE in SingularFieldRule with concise resource syntax
2021-01-22 11:51:35 +01:00
Andreas Dangel b0f30e99f6 [doc] Update release notes, refs #3006 2021-01-22 11:50:29 +01:00
Andreas Dangel b6a8e8fe63 Merge pull request #3069 from oowekyala:xml-deprecate-java-rules
[xml] Deprecate xml base rule classes #3069
2021-01-22 11:49:11 +01:00
Andreas Dangel c69f7e96e6 Merge pull request #3066 from oowekyala:java-unused-names
[java] Make unused rules ignore some names #3066
2021-01-22 11:36:29 +01:00
Andreas Dangel 360283fdb6 Merge pull request #3065 from oowekyala:issue2876-ignored-annotation-bug
[java] Fix ignoredAnnotation property in UnusedPrivateField #3065
2021-01-21 18:24:20 +01:00
Andreas Dangel e69af856de [doc] Update release notes, refs #2876 2021-01-21 18:23:31 +01:00
Andreas Dangel 0b2a727aae Merge pull request #3064 from
oowekyala:issue2454-typehelper-trim-whitespace

[java] Fix problem with whitespace in properties #3064
2021-01-21 18:20:05 +01:00
Andreas Dangel a7e02f403d [doc] Update release notes, refs #2454 2021-01-21 18:18:36 +01:00
Andreas Dangel 41151d30e7 Merge pull request #3063 from oowekyala:issue3062-stream-close-resource
[java] Fix CloseResource FP with reassigned stream #3063
2021-01-21 18:05:22 +01:00
Andreas Dangel 2032d8ce5b [doc] Update release notes, refs #3062 2021-01-21 18:03:27 +01:00
Andreas Dangel 8e42f6c9ba Merge pull request #3061 from oowekyala:typeres-fix-method-calls
[java] Fix method calls in type resolution #3061
2021-01-21 18:01:23 +01:00
Andreas Dangel 1050bce2f5 [doc] Update release notes
refs #2976
refs #2977
refs #2979
refs #3004
2021-01-21 18:00:06 +01:00
Andreas Dangel a90b2ea524 [ci] Exclude generated sources for regression tester 2021-01-21 17:57:03 +01:00
Andreas Dangel a34ae3eea1 [ci] Compile tests of spring framework for regression tester
The test classes have not been compiled, that's why the typeres
can't always resolve the classes.
2021-01-21 16:56:19 +01:00
Andreas Dangel 40bec489ed [java] Fix NPE if generic array type couldn't be resolved
Also add correct imports for GuardLogStatement tests
2021-01-21 16:42:31 +01:00
Andreas Dangel 221c9e785e Merge pull request #3005 from rmohan20:removeOnEventEncoding
[vf] [New Rule] Handle XSS violations that can occur within Html Style
tags #3005
2021-01-21 15:07:05 +01:00
Andreas Dangel 2e3d94adb8 [doc] Update release notes, refs #3005 2021-01-21 15:05:37 +01:00
Andreas Dangel dc4cdf696e Fixups for #3005
- ElEscapeDetector is utility class now
- Improved description and example of new rule
2021-01-21 15:01:58 +01:00
Andreas Dangel b629e26041 Merge pull request #2968 from foxmason:master
[java] NPE in UseCollectionIsEmptyRule with enums #2968
2021-01-21 11:49:38 +01:00
Andreas Dangel 248d4d78e7 [doc] Update release notes, refs #2968, refs #2833 2021-01-21 11:48:51 +01:00
Andreas Dangel 175d535e9f Merge branch 'master' into pr-2968 2021-01-21 11:47:14 +01:00
Andreas Dangel a9a9094ba6 Merge pull request #2963 from tiobe:cpp_ignore_literal_lists
[cpp] Add option to ignore sequences of literals #2963#
2021-01-21 11:44:16 +01:00
Andreas Dangel c42f0496ca [doc] Update release notes, refs #2963 2021-01-21 11:43:08 +01:00
Andreas Dangel f7909ae78a Merge branch 'master' into pr-2963-update 2021-01-21 11:43:01 +01:00
Andreas Dangel 7f1f374dc5 Fixups for #2963
- Add documentation for CPD cli
- Add javadoc for the tokenizer options
- GenericToken::getKind is @Experimental
2021-01-21 11:40:57 +01:00
Maikel Steneker 76566b75bb Minor changes resulting from review 2021-01-21 11:06:29 +01:00
Andreas Dangel 4be2562f01 Fixups for #2968
- Use better typeres
- Add test cases for records and local var
2021-01-21 11:03:51 +01:00
Manuel Moya 944058ff29 Improved sarif with runtime and configuration errors
Added those in toolConfigurationNotifications and toolExecutionNotifications components of invocations (part of sarif standard)
2021-01-20 17:14:08 +01:00
Manuel Moya 3e9fd7b80a Cleaning code 2021-01-20 09:16:00 +01:00
Jeff Bartolotta 15dd8783c7 Convert Pattern to a static final member 2021-01-19 10:28:08 -08:00
Jeff BartolottaandClément Fournier 98acf1de63 Update pmd-visualforce/src/test/java/net/sourceforge/pmd/lang/vf/rule/security/VfHtmlXssStyleTagUrlPatternMatchingTest.java
Co-authored-by: Clément Fournier <clement.fournier76@gmail.com>
2021-01-19 10:11:52 -08:00
Manuel Moya 69bd89884f Fix checkstyle 2021-01-19 18:36:58 +01:00
Manuel Moya f16269a750 Including a SarifLogBuilder and error display 2021-01-19 18:30:39 +01:00
Manuel Moya 68eb4294d4 Initialising vars in start method 2021-01-19 13:29:33 +01:00
Manuel Moya 2aae644dd5 Update pmd_report_formats.md 2021-01-19 12:19:15 +01:00
Manuel Moya a5ac240fd0 Adding doc 2021-01-19 11:59:14 +01:00
Manuel Moya fbb73373ea Sarif format refinement 2021-01-19 11:11:42 +01:00
Manuel Moya 2e2b763b5a Update SarifRenderer.java
Cleaning code
2021-01-19 10:52:16 +01:00
Manuel Moya 52a6ab2e08 Fix checkstyle issues 2021-01-19 10:45:17 +01:00
Manuel Moya e008f2ba71 Cleaning code 2021-01-19 10:07:59 +01:00
Manuel Moya 51b1c1b429 cleaning code 2021-01-18 17:45:52 +01:00
Clément Fournier 7f1b6f582f Deprecate performance.xml/AvoidUsingShortType
Fixes #2296
2021-01-18 16:54:59 +01:00
Clément Fournier 9fe90d4ae4 Deprecate performance.xml/SimplifyStartsWith
Fixes #2740
2021-01-18 16:54:12 +01:00
Manuel Moya 615b33b8b1 Basic sarif renderer with unit tests 2021-01-18 16:32:27 +01:00
Clément Fournier 71262acbb5 Merge branch 'pr/2965'
Refs #2965
2021-01-18 15:35:48 +01:00
Clément Fournier 8759ccdce4 Update release notes, refs #2965 2021-01-18 15:32:51 +01:00
Clément Fournier 908e35be7b Merge branch 'master' into pr/2965 2021-01-18 15:31:43 +01:00
Clément Fournier 6eb36fda4c Merge branch 'pr/2666'
Refs #2666
2021-01-18 15:26:06 +01:00
Clément Fournier e42fa188cc Update release notes, refs #2666 2021-01-18 15:22:29 +01:00
Clément Fournier 7e9f17658c Fixups for #2666
Support full swift 5 string grammar

- arbitrary balanced delimiters
- raw strings ignore escapes
- multiline raw strings

Also rename lexer rules, 'dashed' is not adapted
2021-01-18 15:21:55 +01:00
Clément Fournier b18c73d9b9 Merge branch 'master' into pr/2666 2021-01-18 14:28:55 +01:00
Andreas Dangel e114910048 Merge pull request #2959 from recdevs:feat/apex-equals-hashcode
[apex] New Rule: override equals and hashcode rule #2959
2021-01-17 18:43:44 +01:00
Andreas Dangel 7443b5acc2 [doc] Update release notes, refs #2959 2021-01-17 18:32:16 +01:00
Andreas Dangel ddec921e38 [apex] Fixes from PR #2959
- Update description of new rule OverrideBothEqualsAndHashcode
- add to quickstart (commented out)
- use case insensitive comparison
2021-01-17 18:31:33 +01:00
Andreas Dangel 666281ed2b Merge branch 'master' into pr-2959 2021-01-17 18:11:41 +01:00
Clément Fournier b638bbb549 Fix #3006: [java] NPE in SingularFieldRule with concise resource syntax 2021-01-17 17:55:28 +01:00
Andreas Dangel 9b3fc1da8d Merge pull request #3060 from oowekyala:issue2960-threading-issue
[java] Fix threading issue in MethodNamingConventionsRule #3060
2021-01-17 17:46:04 +01:00
Clément Fournier 0c5bd89033 Also deprecate useless visit methods 2021-01-17 17:40:26 +01:00
Clément Fournier 87f8ca8e9d Deprecate xml base rule classes
Refs #2971
2021-01-17 17:36:29 +01:00
Clément Fournier 5dbff1ab8c Fix PMDTaskTest 2021-01-16 23:12:58 +01:00
Clément Fournier 2f94ee603a Checkstyle 2021-01-16 22:10:00 +01:00
Clément Fournier 27d98fa735 Make unused rules ignore some names, fix #2957 2021-01-16 21:56:45 +01:00
Clément Fournier dbecb80c9e Only use ignored annotation, not lombok one, fix #2876 2021-01-16 21:52:13 +01:00
Clément Fournier 8a191167cf Fix xpath functions 2021-01-16 21:45:35 +01:00
Clément Fournier d025641b34 Test for #2454 2021-01-16 21:25:51 +01:00
Clément Fournier d90d1645db Verify that TypeHelper input is a binary name
Change contract in Annotatable interface

The goal is to allow us to drop support for canonical name
loading in PMD 7, for performance.
2021-01-16 21:22:23 +01:00
Clément Fournier b7ff1aa295 Fix CloseResource reassigned stream
Refs #2977 comment
2021-01-16 21:04:05 +01:00
Clément Fournier c1dca31237 Test for #2977 2021-01-16 20:41:02 +01:00
Andreas Dangel 2591234c66 Merge pull request #2981 from adangel:reproducible-jjtree
[all] Call jjtree/javacc with UTF-8 as default encoding #2981
2021-01-16 19:10:32 +01:00
Clément Fournier f84ca189b4 Update test of CloseResource 2021-01-16 16:36:26 +01:00
Clément Fournier f9295c2bcb Fix bug with extra array dims 2021-01-16 16:25:22 +01:00
Clément Fournier 20a2ab7416 Remove useless code
This made tests fail
2021-01-16 16:13:20 +01:00
Clément Fournier 292d526a73 Fix type resolver tests
The primary prefix now has the type of the receiver,
when it contains the name of a method call
2021-01-16 15:57:24 +01:00
Clément Fournier 28ebe30127 Fix AvoidInstantiatingObjectsInLoopsRule 2021-01-16 15:56:54 +01:00
Andreas Dangel 9158c9f439 [ci] Update pmdtester to 1.1.1, disable debug 2021-01-16 10:12:32 +01:00
Clément Fournier cbceca9861 Fix DoNotUseThreads tests 2021-01-16 00:41:41 +01:00
Clément Fournier 4e96ee6bb7 Fix type res of primary prefix for methods
Consider things accessible if we can't resolve this class.
In particular, local variables were inaccessible, which is absurd.
2021-01-15 23:56:37 +01:00
Clément Fournier 7d87e89f72 Tests for #2979 2021-01-15 23:56:55 +01:00
Clément Fournier 3233ca0127 Tests for #2976 2021-01-15 23:56:46 +01:00
Clément Fournier 1fa9d08d7d Test for #3004 2021-01-15 23:56:37 +01:00
rmohan 6a179980be Applying changes from review feedback 2021-01-15 13:40:07 -08:00
Andreas Dangel cad02c775a Merge branch 'master' into reproducible-jjtree 2021-01-15 18:26:21 +01:00
Clément Fournier 8f021502de Update release notes
Refs #3060
2021-01-15 18:25:28 +01:00
Andreas Dangel ec4dcdd262 [doc] Update release notes, refs #2970 2021-01-15 18:24:45 +01:00
Clément Fournier e8a0ba9815 Make map not static in MethodNamingConventionsRule
Fix #2960
2021-01-15 18:22:33 +01:00
Andreas Dangel 0b5b68169c Merge pull request #3000 from adangel:ci-fixes
[ci] Fixes for pmdtester (baseline, danger) #3000
2021-01-15 14:35:19 +01:00
rmohan 407aa690d1 parent 7fc3dee95a
author rmohan <rmohan@salesforce.com> 1608240897 -0800
committer rmohan <rmohan@salesforce.com> 1610153787 -0800
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIzBAABCAAdFiEEPykD30Ug+JG+ZQ7x5XWwXqT2VuwFAl/4/zsACgkQ5XWwXqT2
 VuwJoBAAsdl/TU3nculnOPwrCHtaxgtM/4zB+wLdw7f+KtIaGMv5A8v8gMbqh0V+
 OTPV0Q/CTEk4PxA2qD5aCPLOaO9+LHOKjPdkWalttVjINtTVPR2pKo0PKR+f2q77
 79eFkhiB1uNx741ThGIZoWPv8eMKHYP+1BEwndFdByxSA70+gdYkbmZqKLLOOrTE
 2uxuGwnNM02ZYskupvgPW2pZvWFviR2sZt/GbFPkqAwgjf40MxM5+3cujOOV850E
 hLHCcch5G5sh8sHTb9nCyNmc6i1kSw9+OOpOHmJGV4u3DRBBtTE9FdwyEUJ2VliZ
 77VrfRPxwzkAE3jTH7EGCY7kpf84jQMqrGn/gav1LfH4DscPZmF617r9iYZ5fOr6
 Z2Fun4vaCXk0h1CojCOpnh4WAthhiVtvBJmdiyO489/hmbtwWuz7KBkCsEVBS+8E
 ViEaQylIOWjcFXkAq5PQ8fCxIqqMgbI7p5kQL6zatpykteMT5zoJj41t8oyjr5Rz
 RUGXNPxpW3zKq3jw4VsjZ8qNYuoSerTzx0qGuUQIALO97HZ8ZBsxmcDTFJrzAkj7
 yfslzLRIoPlL4ZKdpOgCGzVLBX1D/YCBn9KXQiYEYRh57umIt0wpM/Y/Xkl+/Jr4
 97DYj7GQr1gYavSqe7z5n3aUixyibpWy/wx2K3VN6PmtZ3FEB5I=
 =dqIs
 -----END PGP SIGNATURE-----

Creating new VfHtmlStyleTagXss rule to handle XSS in style tags.
Also, refactoring common code out of VfUnescapeElRule to avoid duplication.
2021-01-08 17:08:46 -08:00
Clément Fournier aed09d7b9d Merge branch 'master' into pr/2965 2021-01-08 21:42:41 +01:00
Clément Fournier ab28879460 Merge remote-tracking branch 'upstream/master' 2021-01-08 21:41:29 +01:00
Clément Fournier 0e2eb52d82 Merge branch 'pr/2964'
Refs #2964
2021-01-08 21:39:45 +01:00
Clément Fournier 93e567b8ea Update release notes, refs #2964 2021-01-08 21:39:33 +01:00
Clément Fournier 5efc0c02a3 Merge branch 'master' into pr/2964 2021-01-08 21:31:39 +01:00
Andreas Dangel 83bc024fd3 [ci] Enable debug mode for pmdtester 2021-01-08 16:10:04 +01:00
Andreas Dangel ddcc205516 [ci] Fail if danger couldn't execute pmdtester or upload result 2021-01-08 16:10:04 +01:00
Andreas Dangel 1ae70c2fa0 [ci] Fix config for bundler for executing pmdtester 2021-01-08 16:10:04 +01:00
Andreas Dangel fde4d08213 [ci] Fail if baseline couldn't be created/uploaded 2021-01-08 16:09:56 +01:00
Andreas Dangel 49ff9a5c5f [ci] Increase build timeout for pull requests to 60 minutes 2021-01-08 15:33:48 +01:00
Andreas Dangel 04c0f968dc Merge pull request #2994 from vmaurin:fix-codeclimate-severity
[core] Fix code climate severity strings #2994
2021-01-07 20:19:45 +01:00
Andreas Dangel a5a51f0d5e [doc] Update release notes, refs #2994 2021-01-07 20:16:40 +01:00
Andreas Dangel c7cd242ab2 [core] Renderers - adjust tests for different rule priorities (#2994) 2021-01-07 20:14:29 +01:00
Andreas Dangel 60ee3a4c99 Merge pull request #2983 from
ozangulle:ticket-575/PositionLiteralsFirstInComparisons-should-consider-constant-fields

[java] LiteralsFirstInComparisons should consider constant fields #2983
2021-01-07 19:57:33 +01:00
Andreas Dangel f8e49125ad [doc] Update release notes, refs #2983, fixes #575 2021-01-07 19:54:51 +01:00
Andreas Dangel 740d832dc1 Change from PR review #2983 2021-01-07 19:51:23 +01:00
Andreas Dangel 4b99f42657 [doc] Fix link to deprecated RulesetsFactoryUtils 2021-01-07 15:31:45 +01:00
Andreas Dangel 5ed003c686 Update gems
CVE-2020-26247
https://github.com/advisories/GHSA-vr8q-g5c7-m54m
2021-01-07 15:28:06 +01:00
Andreas Dangel 59493d1e82 [doc] Prefer github discussions for questions 2021-01-07 12:09:10 +01:00
Vincent Maurin c5fa4cbfa0 Fix severity strings
Code Climate issue severity are specified here
https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#issues
as `info`, `minor`, `major`, `critical`, or `blocker`. It was mapped to
a value `normal` that is not recognized by tools compatible with Code
Climate's format. I have mapped the five PMD priority values on the five Code Climate severity levels
2021-01-04 15:51:27 +01:00
jr 49bab051e8 fix: use primitive 2020-12-24 14:22:15 -08:00
jr 539f457d81 fix: use rulechain 2020-12-24 14:21:44 -08:00
Maikel Steneker 77292da7af Add test for empty C# comment.
This was previously incorrectly tokenized, because it was recognized as the start of a documentation comment.
2020-12-23 10:46:34 +01:00
Ozan Gulle 49fbb90cb1 Changed naming of the method 2020-12-21 21:37:22 +01:00
Ozan Gulle 2bbf56ec06 Added a new test case 2020-12-21 21:37:09 +01:00
Maikel Steneker ed8fbccb1c Add tests for additional C# 7 and C# 8 features 2020-12-18 14:47:59 +01:00
Andreas Dangel c37f208d3e Call jjtree/javacc with UTF-8 as default encoding
Fixes #2970
2020-12-17 18:31:13 +01:00
Andreas Dangel 62a052e97b (dogfood) Further CompareObjectsWithEquals fixes 2020-12-17 16:44:32 +01:00
rmohan 7fc3dee95a Merging Style tag and HTML XSS checks with typecheck changes for real 2020-12-16 16:22:40 -08:00
rmohan 94a3eb636a Changes to fix apex namespace bug 2020-12-16 14:28:35 -08:00
Ozan Gulle 129790ddfc Fixed the order of imports 2020-12-16 22:44:33 +01:00
rmohan 35ee2a534e Redoing HTML Style tag changes on updated Typecheck logic 2020-12-16 13:37:14 -08:00
Ozan Gulle ae12a6db35 Put duplicated code in a separate method 2020-12-16 22:09:11 +01:00
Ozan Gulle d0fb81de1f LiteralsFirstInComparisonsRule also checks for constants 2020-12-16 21:49:38 +01:00
Roopa Mohan ec1718c12f Merge pull request #9 from isv-swat/getLatestFromGithub/12/16/2020
Get latest from GitHub/12/16/2020
2020-12-16 09:40:17 -08:00
jr 275e66d77a [apex] New Rule: override equals and hashcode rule 2020-12-14 14:38:45 -08:00
Andreas Dangel 3a82cf5ae1 (dogfood) Bump pmd from 6.29.0 to 6.30.0 2020-12-12 12:56:42 +01:00
Andreas Dangel 0488c853e3 [ci] Fix creating regression tester baseline for release builds (#2967) 2020-12-12 12:06:59 +01:00
Andreas Dangel a672c5e85d [doc] Fix release notes 2020-12-12 11:46:39 +01:00
Andreas Dangel ba0e9ec7d1 [ci] Install needed gems before rendering release notes (#2967) 2020-12-12 11:29:36 +01:00
Andreas Dangel f276eec0ba [ci] Use ruby 2.7 for release build (#2967) 2020-12-12 11:19:51 +01:00
Andreas Dangel 139a3f6103 [ci] Fix build in trunk (#2967)
The same problem would have occurred for the release build.
2020-12-12 11:19:23 +01:00
Andreas Dangel 06dae58f78 Prepare next development version 2020-12-12 09:51:21 +01:00
Andreas Dangel d284ea9634 [maven-release-plugin] prepare for next development iteration 2020-12-12 09:42:10 +01:00
Mason Fox cce0a35cb1 [java] NPE in UseCollectionIsEmptyRule with enums #2833 2020-12-11 19:43:02 -05:00
Maikel Steneker 85c807ed1f Add additional test cases for 2D arrays and more 2020-12-10 13:32:49 +01:00
Maikel Steneker 769cf5b316 Update C# grammar for additional C# 7 and C# 8 features 2020-12-10 13:21:48 +01:00
Maikel Steneker 55598d844a Filter out 2D arrays as well 2020-12-10 12:14:12 +01:00
Maikel Steneker 3d7fe9fb24 C++ can now ignore sequences of literals
This enables the --ignore-literal-sequences option for the C++ language. This was previously only implemented for C#.
2020-12-10 12:10:47 +01:00
Maikel Steneker af31b3a773 Add GenericToken.getKind() to interface 2020-12-10 12:10:47 +01:00
kenji 4a6bc933e1 Manage swift5 string literals 2020-07-27 11:47:26 +02:00
319 changed files with 12764 additions and 2016 deletions

No files matched your search

+1 -1
View File
@@ -24,7 +24,7 @@ log_group_start "Downloading maven dependencies"
log_group_end
log_group_start "Building with maven"
./mvnw -e -V clean verify ${PMD_EXTRA_OPT}
./mvnw -e -V -B clean verify ${PMD_EXTRA_OPT}
log_group_end
+5 -1
View File
@@ -121,7 +121,7 @@ function pmd_ci_build_run() {
log_info "This is a snapshot build"
fi
./mvnw clean deploy -P${mvn_profiles} -e -V -Djava7.home=${HOME}/oraclejdk7
./mvnw clean deploy -P${mvn_profiles} -e -B -V -Djava7.home=${HOME}/oraclejdk7
}
#
@@ -181,6 +181,10 @@ function pmd_ci_build_and_upload_doc() {
pmd_code_removeJavadoc "${VERSION}-SNAPSHOT"
# updating github release text
rm -f .bundle/config
bundle config set --local path vendor/bundle
bundle config set --local with release_notes_preprocessing
bundle install
# renders, and skips the first 6 lines - the Jekyll front-matter
local rendered_release_notes=$(bundle exec .ci/render_release_notes.rb docs/pages/release_notes.md | tail -n +6)
local release_name="PMD ${VERSION} ($(date -u +%d-%B-%Y))"
+3 -1
View File
@@ -32,6 +32,8 @@ mvn dependency:build-classpath -DincludeScope=test -Dmdep.outputFile=classpath.t
<connection>https://github.com/spring-projects/spring-framework</connection>
<tag>v5.0.6.RELEASE</tag>
<exclude-pattern>.*/build/generated-sources/.*</exclude-pattern>
<build-command><![CDATA[#!/usr/bin/env bash
if test -e classpath.txt; then
exit
@@ -86,7 +88,7 @@ export PATH=$JAVA_HOME/bin:$PATH
EOF
) | patch
./gradlew build -x javadoc -x dokka -x asciidoctor -x test -x testNG -x api -x distZip
./gradlew build testClasses -x javadoc -x dokka -x asciidoctor -x test -x testNG -x api -x distZip
./gradlew createSquishClasspath -q > classpath.txt
]]></build-command>
<auxclasspath-command>cat classpath.txt</auxclasspath-command>
+15 -3
View File
@@ -20,11 +20,23 @@ function maven_dependencies_resolve() {
dokka_version=$(./mvnw -q -Dexec.executable="echo" -Dexec.args='${dokka.version}' \
--non-recursive org.codehaus.mojo:exec-maven-plugin:3.0.0:exec)
./mvnw dependency:resolve
./mvnw dependency:get -DgroupId=org.jetbrains.dokka \
# build first the modules, that have dependencies between themselves
# first build pmd-lang-test, pmd-test and pmd-core - used by all modules
./mvnw clean install -pl pmd-core,pmd-test,pmd-lang-test -DskipTests -Dpmd.skip=true \
-B -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dmaven.source.skip=true
# then build dependencies for pmd-visualforce needs: pmd-apex->pmd-apex-jorje+pmd-test+pmd-core
./mvnw clean install -pl pmd-core,pmd-test,pmd-lang-test,pmd-apex-jorje,pmd-apex -DskipTests -Dpmd.skip=true \
-B -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dmaven.source.skip=true
# the resolve most other projects. The excluded projects depend on other projects in the reactor, which is not
# completely built yet, so these are excluded.
./mvnw dependency:resolve -pl '!pmd-dist,!pmd-java8,!pmd-doc,!pmd-scala' -Dsilent -B
./mvnw dependency:get -B -Dsilent \
-DgroupId=org.jetbrains.dokka \
-DartifactId=dokka-maven-plugin \
-Dversion=${dokka_version} \
-Dpackaging=jar \
-DremoteRepositories=jcenter::default::https://jcenter.bintray.com/
./mvnw dependency:resolve-plugins -DexcludeGroupIds=org.jetbrains.dokka -Psign
./mvnw dependency:resolve-plugins -B -Dsilent -DexcludeGroupIds=org.jetbrains.dokka -Psign
}
+38 -76
View File
@@ -33,93 +33,55 @@ function regression_tester_setup_ci() {
}
#
# Generate a new baseline and upload it to sourceforge
#
# Note: this function always succeeds, even if the upload fails.
# In that case, just a error logging is provided.
# Generate a new baseline and upload it to pmd-code.org
#
function regression_tester_uploadBaseline() {
log_debug "$FUNCNAME branch=${PMD_CI_BRANCH}"
local targetUrl="https://sourceforge.net/projects/pmd/files/pmd-regression-tester/"
local pmdcodeUrl="https://pmd-code.org/pmd-regression-tester/"
local baseline_branch="${PMD_CI_BRANCH:-$PMD_CI_TAG}"
log_debug "$FUNCNAME branch=${baseline_branch}"
local errexitstate="$(shopt -po errexit)"
set +e # disable errexit
(
# This handler is called if any command fails
function upload_failed() {
log_error "Error while uploading ${BRANCH_FILENAME}-baseline.zip to pmd-code.org!"
log_error "Please upload manually: ${pmdcodeUrl}"
#log_error "Error while uploading ${BRANCH_FILENAME}-baseline.zip to sourceforge!"
#log_error "Please upload manually: ${targetUrl}"
}
# exit subshell after trap
set -e
trap upload_failed ERR
log_info "Generating and uploading baseline for pmdtester..."
cd ..
bundle config --local gemfile pmd/Gemfile
bundle exec pmdtester \
--mode single \
--local-git-repo ./pmd \
--patch-branch ${PMD_CI_BRANCH} \
--patch-config ./pmd/.ci/files/all-java.xml \
--list-of-project ./pmd/.ci/files/project-list.xml --html-flag \
--error-recovery
cd target/reports
BRANCH_FILENAME="${PMD_CI_BRANCH/\//_}"
zip -q -r ${BRANCH_FILENAME}-baseline.zip ${BRANCH_FILENAME}/
# ssh-key for pmd-code.org is setup already by pmd_ci_setup_ssh
scp ${BRANCH_FILENAME}-baseline.zip pmd@pmd-code.org:/httpdocs/pmd-regression-tester/
log_success "Successfully uploaded ${BRANCH_FILENAME}-baseline.zip to ${pmdcodeUrl}"
#../../pmd/.ci/travis_wait "rsync -avh ${BRANCH_FILENAME}-baseline.zip ${PMD_SF_USER}@web.sourceforge.net:/home/frs/project/pmd/pmd-regression-tester/"
#log_success "Successfully uploaded ${BRANCH_FILENAME}-baseline.zip to ${targetUrl}"
)
# restore errexit state
eval "$errexitstate"
log_info "Generating and uploading baseline for pmdtester (${baseline_branch})..."
pushd ..
rm -f .bundle/config
bundle config set --local gemfile pmd/Gemfile
bundle exec pmdtester \
--mode single \
--local-git-repo ./pmd \
--patch-branch ${baseline_branch} \
--patch-config ./pmd/.ci/files/all-java.xml \
--list-of-project ./pmd/.ci/files/project-list.xml --html-flag \
--error-recovery
pushd target/reports
BRANCH_FILENAME="${baseline_branch/\//_}"
zip -q -r ${BRANCH_FILENAME}-baseline.zip ${BRANCH_FILENAME}/
# ssh-key for pmd-code.org is setup already by pmd_ci_setup_ssh
scp ${BRANCH_FILENAME}-baseline.zip pmd@pmd-code.org:/httpdocs/pmd-regression-tester/
log_success "Successfully uploaded ${BRANCH_FILENAME}-baseline.zip to ${pmdcodeUrl}"
popd
popd
}
#
# Execute danger, which executes pmd-regression-tester (via Dangerfile).
#
# Note: this function always succeeds, even if the danger fails.
# In that case, just a error logging is provided.
#
function regression_tester_executeDanger() {
log_debug "$FUNCNAME"
local errexitstate="$(shopt -po errexit)"
set +e # disable errexit
(
# This handler is called if any command fails
function danger_failed() {
log_error "Error while executing danger/pmd-regression-tester"
}
# Create a corresponding remote branch locally
if ! git show-ref --verify --quiet refs/heads/${PMD_CI_BRANCH}; then
git fetch --no-tags --depth=1 origin +refs/heads/${PMD_CI_BRANCH}:refs/remotes/origin/${PMD_CI_BRANCH}
git branch ${PMD_CI_BRANCH} origin/${PMD_CI_BRANCH}
log_debug "Created local branch ${PMD_CI_BRANCH}"
fi
# Fetch more commits of the PR for danger and regression tester
git fetch --no-tags --depth=50 origin +$(git rev-parse HEAD^2):
# Fetch more commits from master branch for regression tester
if [[ "${PMD_CI_BRANCH}" != "master" ]]; then
git fetch --no-tags --depth=50 origin +master:
git branch master origin/master
fi
# exit subshell after trap
set -e
trap danger_failed ERR
# Create a corresponding remote branch locally
if ! git show-ref --verify --quiet refs/heads/${PMD_CI_BRANCH}; then
git fetch --no-tags --depth=1 origin +refs/heads/${PMD_CI_BRANCH}:refs/remotes/origin/${PMD_CI_BRANCH}
git branch ${PMD_CI_BRANCH} origin/${PMD_CI_BRANCH}
log_debug "Created local branch ${PMD_CI_BRANCH}"
fi
# Fetch more commits of the PR for danger and regression tester
git fetch --no-tags --depth=50 origin +$(git rev-parse HEAD^2):
# Fetch more commits from master branch for regression tester
if [[ "${PMD_CI_BRANCH}" != "master" ]]; then
git fetch --no-tags --depth=50 origin +master:
git branch master origin/master
fi
log_info "Running danger on branch ${PMD_CI_BRANCH}"
bundle exec danger --verbose
log_success "Executing danger successfully"
)
# restore errexit state
eval "$errexitstate"
log_info "Running danger on branch ${PMD_CI_BRANCH}"
bundle exec danger --verbose
log_success "Executed danger successfully"
}
+1 -1
View File
@@ -2,7 +2,7 @@
name: Rule violation
about: Let us know about a false positive/false negative
title: ''
labels: 'a:bug'
labels: 'a:false-positive, a:false-negative'
assignees: ''
---
+1 -1
View File
@@ -6,7 +6,7 @@ jobs:
build:
runs-on: ${{ matrix.os }}
continue-on-error: false
timeout-minutes: 30
timeout-minutes: 60
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
+1 -1
View File
@@ -35,7 +35,7 @@ jobs:
run: .ci/build.sh
shell: bash
env:
MAVEN_OPTS: -Dmaven.wagon.httpconnectionManager.ttlSeconds=180 -Dmaven.wagon.http.retryHandler.count=3
MAVEN_OPTS: -Dmaven.wagon.httpconnectionManager.ttlSeconds=180 -Dmaven.wagon.http.retryHandler.count=3 -DstagingProgressTimeoutMinutes=30
PMD_CI_SECRET_PASSPHRASE: ${{ secrets.PMD_CI_SECRET_PASSPHRASE }}
PMD_CI_JOB_URL: "https://github.com/pmd/pmd/runs/${{ github.run_id }}"
PMD_CI_PUSH_COMMIT_COMPARE: ${{ github.event.compare }}
+4
View File
@@ -10,6 +10,10 @@ jobs:
continue-on-error: false
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.7
uses: actions/setup-ruby@v1
with:
ruby-version: 2.7
- name: Check Environment
run: .ci/check-environment.sh
shell: bash
+1
View File
@@ -14,6 +14,7 @@ bin/
pmd-core/dependency-reduced-pom.xml
.bundle
vendor
.DS_Store
# rule docs are generated
docs/pages/pmd/rules
+1 -1
View File
@@ -45,7 +45,7 @@ There are various channels, on which you can ask questions:
* On [StackOverflow](https://stackoverflow.com/questions/tagged/pmd): Make sure, to tag your question with "pmd".
* Create a issue for your question at <https://github.com/pmd/pmd/issues>.
* Create a new discussion for your question at <https://github.com/pmd/pmd/discussions>.
* Ask your question on Gitter <https://gitter.im/pmd/pmd>.
+2 -2
View File
@@ -16,7 +16,7 @@ def run_pmdtester
'--auto-gen-config',
'--error-recovery',
'--baseline-download-url', 'https://pmd-code.org/pmd-regression-tester/',
# '--debug',
#'--debug',
]
begin
@summary = PmdTester::Runner.new(argv).run
@@ -39,7 +39,7 @@ def upload_report
`tar -cf #{tar_filename} diff/`
report_url = `curl -u #{ENV['PMD_CI_CHUNK_TOKEN']} -T #{tar_filename} https://chunk.io`
if $?.success?
@logger.info "Successfully uploaded #{tar_filename} to chunk.io"
@logger.info "Successfully uploaded #{tar_filename} to #{report_url}"
# set value of sticky to true and the message is kept after new commits are submitted to the PR
message("This changeset " \
+1 -1
View File
@@ -3,7 +3,7 @@ source 'https://rubygems.org/'
# bleeding edge from git
#gem 'pmdtester', :git => 'https://github.com/pmd/pmd-regression-tester.git'
gem 'pmdtester', '~> 1.1'
gem 'pmdtester', '~> 1'
gem 'danger', '~> 5.6', '>= 5.6'
# This group is only needed for rendering release notes
+15 -13
View File
@@ -31,36 +31,38 @@ GEM
multipart-post (>= 1.2, < 3)
faraday-http-cache (1.3.1)
faraday (~> 0.8)
fugit (1.4.1)
fugit (1.4.2)
et-orbi (~> 1.1, >= 1.1.8)
raabro (~> 1.4)
git (1.7.0)
git (1.8.1)
rchardet (~> 1.8)
kramdown (1.17.0)
liquid (4.0.3)
liquid (5.0.0)
logger-colors (1.0.0)
mini_portile2 (2.4.0)
mini_portile2 (2.5.0)
multipart-post (2.1.1)
nap (1.1.0)
no_proxy_fix (0.1.2)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
octokit (4.19.0)
nokogiri (1.11.1)
mini_portile2 (~> 2.5.0)
racc (~> 1.4)
octokit (4.20.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
open4 (1.3.4)
pmdtester (1.1.0)
pmdtester (1.1.1)
differ (~> 0.1)
liquid (>= 4.0)
logger-colors (~> 1.0)
nokogiri (~> 1.8)
nokogiri (>= 1.11.0.rc4)
rufus-scheduler (~> 3.5)
slop (~> 4.6)
public_suffix (4.0.6)
raabro (1.4.0)
racc (1.5.2)
rchardet (1.8.0)
rouge (3.25.0)
rufus-scheduler (3.6.0)
rouge (3.26.0)
rufus-scheduler (3.7.0)
fugit (~> 1.1, >= 1.1.6)
safe_yaml (1.0.5)
sawyer (0.8.2)
@@ -69,7 +71,7 @@ GEM
slop (4.8.2)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
tzinfo (2.0.3)
tzinfo (2.0.4)
concurrent-ruby (~> 1.0)
unicode-display_width (1.7.0)
@@ -79,7 +81,7 @@ PLATFORMS
DEPENDENCIES
danger (~> 5.6, >= 5.6)
liquid (>= 4.0.0)
pmdtester (~> 1.1)
pmdtester (~> 1)
rouge (>= 1.7, < 4)
safe_yaml (>= 1.0)
+5 -3
View File
@@ -20,10 +20,12 @@ Objective-C, Perl, PHP, PLSQL, Python, Ruby, Salesforce.com Apex, Scala, Swift,
## Support
* How do I? -- Ask a question on [StackOverflow](https://stackoverflow.com/questions/tagged/pmd).
* I got this error, why? -- Ask a question on [StackOverflow](https://stackoverflow.com/questions/tagged/pmd).
* How do I? -- Ask a question on [StackOverflow](https://stackoverflow.com/questions/tagged/pmd)
or on [discussions](https://github.com/pmd/pmd/discussions).
* I got this error, why? -- Ask a question on [StackOverflow](https://stackoverflow.com/questions/tagged/pmd)
or on [discussions](https://github.com/pmd/pmd/discussions).
* I got this error and I'm sure it's a bug -- file an [issue](https://github.com/pmd/pmd/issues).
* I have an idea/request/question -- file an [issue](https://github.com/pmd/pmd/issues).
* I have an idea/request/question -- create a new [discussion](https://github.com/pmd/pmd/discussions).
* I have a quick question -- ask on our [Gitter chat](https://gitter.im/pmd/pmd).
* Where's your documentation? -- <https://pmd.github.io/latest/>
+37 -30
View File
@@ -1,7 +1,7 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (6.0.3.2)
activesupport (6.0.3.4)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
@@ -17,37 +17,40 @@ GEM
commonmarker (0.17.13)
ruby-enum (~> 0.5)
concurrent-ruby (1.1.7)
dnsruby (1.61.4)
dnsruby (1.61.5)
simpleidn (~> 0.1)
em-websocket (0.5.1)
em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
ethon (0.12.0)
ffi (>= 1.3.0)
eventmachine (1.2.7)
execjs (2.7.0)
faraday (1.0.1)
faraday (1.3.0)
faraday-net_http (~> 1.0)
multipart-post (>= 1.2, < 3)
ffi (1.13.1)
ruby2_keywords
faraday-net_http (1.0.0)
ffi (1.14.2)
forwardable-extended (2.6.0)
gemoji (3.0.1)
github-pages (207)
github-pages (209)
github-pages-health-check (= 1.16.1)
jekyll (= 3.9.0)
jekyll-avatar (= 0.7.0)
jekyll-coffeescript (= 1.1.1)
jekyll-commonmark-ghpages (= 0.1.6)
jekyll-default-layout (= 0.1.4)
jekyll-feed (= 0.13.0)
jekyll-feed (= 0.15.1)
jekyll-gist (= 1.5.0)
jekyll-github-metadata (= 2.13.0)
jekyll-mentions (= 1.5.1)
jekyll-mentions (= 1.6.0)
jekyll-optional-front-matter (= 0.3.2)
jekyll-paginate (= 1.1.0)
jekyll-readme-index (= 0.3.0)
jekyll-redirect-from (= 0.15.0)
jekyll-redirect-from (= 0.16.0)
jekyll-relative-links (= 0.6.1)
jekyll-remote-theme (= 0.4.1)
jekyll-remote-theme (= 0.4.2)
jekyll-sass-converter (= 1.5.2)
jekyll-seo-tag (= 2.6.1)
jekyll-sitemap (= 1.4.0)
@@ -55,7 +58,7 @@ GEM
jekyll-theme-architect (= 0.1.1)
jekyll-theme-cayman (= 0.1.1)
jekyll-theme-dinky (= 0.1.1)
jekyll-theme-hacker (= 0.1.1)
jekyll-theme-hacker (= 0.1.2)
jekyll-theme-leap-day (= 0.1.1)
jekyll-theme-merlot (= 0.1.1)
jekyll-theme-midnight (= 0.1.1)
@@ -66,14 +69,14 @@ GEM
jekyll-theme-tactile (= 0.1.1)
jekyll-theme-time-machine (= 0.1.1)
jekyll-titles-from-headings (= 0.5.3)
jemoji (= 0.11.1)
jemoji (= 0.12.0)
kramdown (= 2.3.0)
kramdown-parser-gfm (= 1.1.0)
liquid (= 4.0.3)
mercenary (~> 0.3)
minima (= 2.5.1)
nokogiri (>= 1.10.4, < 2.0)
rouge (= 3.19.0)
rouge (= 3.23.0)
terminal-table (~> 1.4)
github-pages-health-check (1.16.1)
addressable (~> 2.3)
@@ -114,14 +117,14 @@ GEM
rouge (>= 2.0, < 4.0)
jekyll-default-layout (0.1.4)
jekyll (~> 3.0)
jekyll-feed (0.13.0)
jekyll-feed (0.15.1)
jekyll (>= 3.7, < 5.0)
jekyll-gist (1.5.0)
octokit (~> 4.2)
jekyll-github-metadata (2.13.0)
jekyll (>= 3.4, < 5.0)
octokit (~> 4.0, != 4.4.0)
jekyll-mentions (1.5.1)
jekyll-mentions (1.6.0)
html-pipeline (~> 2.3)
jekyll (>= 3.7, < 5.0)
jekyll-optional-front-matter (0.3.2)
@@ -129,14 +132,15 @@ GEM
jekyll-paginate (1.1.0)
jekyll-readme-index (0.3.0)
jekyll (>= 3.0, < 5.0)
jekyll-redirect-from (0.15.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
jekyll-relative-links (0.6.1)
jekyll (>= 3.3, < 5.0)
jekyll-remote-theme (0.4.1)
jekyll-remote-theme (0.4.2)
addressable (~> 2.0)
jekyll (>= 3.5, < 5.0)
rubyzip (>= 1.3.0)
jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
rubyzip (>= 1.3.0, < 3.0)
jekyll-sass-converter (1.5.2)
sass (~> 3.4)
jekyll-seo-tag (2.6.1)
@@ -153,8 +157,8 @@ GEM
jekyll-theme-dinky (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-hacker (0.1.1)
jekyll (~> 3.5)
jekyll-theme-hacker (0.1.2)
jekyll (> 3.5, < 5.0)
jekyll-seo-tag (~> 2.0)
jekyll-theme-leap-day (0.1.1)
jekyll (~> 3.5)
@@ -188,7 +192,7 @@ GEM
jekyll (>= 3.3, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
jemoji (0.11.1)
jemoji (0.12.0)
gemoji (~> 3.0)
html-pipeline (~> 2.2)
jekyll (>= 3.0, < 5.0)
@@ -197,32 +201,35 @@ GEM
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.2.1)
listen (3.4.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
mini_portile2 (2.4.0)
mini_portile2 (2.5.0)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.14.1)
minitest (5.14.3)
multipart-post (2.1.1)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
octokit (4.18.0)
nokogiri (1.11.1)
mini_portile2 (~> 2.5.0)
racc (~> 1.4)
octokit (4.20.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (3.1.1)
racc (1.5.2)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.4)
rouge (3.19.0)
rouge (3.23.0)
ruby-enum (0.8.0)
i18n
ruby2_keywords (0.0.2)
rubyzip (2.3.0)
safe_yaml (1.0.5)
sass (3.7.4)
@@ -240,13 +247,13 @@ GEM
thread_safe (0.3.6)
typhoeus (1.4.0)
ethon (>= 0.9.0)
tzinfo (1.2.7)
tzinfo (1.2.9)
thread_safe (~> 0.1)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.7)
unicode-display_width (1.7.0)
zeitwerk (2.4.0)
zeitwerk (2.4.2)
PLATFORMS
ruby
+3 -3
View File
@@ -1,9 +1,9 @@
repository: pmd/pmd
pmd:
version: 6.30.0
previous_version: 6.29.0
date: 12-December-2020
version: 6.33.0
previous_version: 6.32.0
date: 27-March-2021
release_type: minor
# release types: major, minor, bugfix
+3
View File
@@ -349,6 +349,9 @@ entries:
- title: Apex code metrics
url: /pmd_apex_metrics_index.html
output: web, pdf
- title: PLSQL
url: /pmd_languages_plsql.html
output: web, pdf
- title: Developer Documentation
output: web, pdf
folderitems:
+47 -1
View File
@@ -125,13 +125,59 @@ the breaking API changes will be performed in 7.0.0.
an API is tagged as `@Deprecated` or not in the latest minor release. During the development of 7.0.0,
we may decide to remove some APIs that were not tagged as deprecated, though we'll try to avoid it." %}
#### 6.33.0
No changes.
#### 6.32.0
##### Experimental APIs
* The experimental class `ASTTypeTestPattern` has been renamed to {% jdoc java::lang.java.ast.ASTTypePattern %}
in order to align the naming to the JLS.
* The experimental class `ASTRecordConstructorDeclaration` has been renamed to {% jdoc java::lang.java.ast.ASTCompactConstructorDeclaration %}
in order to align the naming to the JLS.
* The AST types and APIs around Pattern Matching and Records are not experimental anymore:
* {% jdoc !!java::lang.java.ast.ASTVariableDeclaratorId#isPatternBinding() %}
* {% jdoc java::lang.java.ast.ASTPattern %}
* {% jdoc java::lang.java.ast.ASTTypePattern %}
* {% jdoc java::lang.java.ast.ASTRecordDeclaration %}
* {% jdoc java::lang.java.ast.ASTRecordComponentList %}
* {% jdoc java::lang.java.ast.ASTRecordComponent %}
* {% jdoc java::lang.java.ast.ASTRecordBody %}
* {% jdoc java::lang.java.ast.ASTCompactConstructorDeclaration %}
##### Internal API
Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0.
You can identify them with the `@InternalApi` annotation. You'll also get a deprecation warning.
* The protected or public member of the Java rule {% jdoc java::lang.java.rule.bestpractices.AvoidUsingHardCodedIPRule %}
are deprecated and considered to be internal API. They will be removed with PMD 7.
#### 6.31.0
##### Deprecated API
* {% jdoc xml::lang.xml.rule.AbstractDomXmlRule %}
* {% jdoc xml::lang.wsdl.rule.AbstractWsdlRule %}
* A few methods of {% jdoc xml::lang.xml.rule.AbstractXmlRule %}
##### Experimental APIs
* The method {% jdoc !!core::lang.ast.GenericToken#getKind() %} has been added as experimental. This
unifies the token interface for both JavaCC and Antlr. The already existing method
{% jdoc !!core::cpd.token.AntlrToken#getKind() %} is therefore experimental as well. The
returned constant depends on the actual language and might change whenever the grammar
of the language is changed.
#### 6.30.0
##### Deprecated API
###### Around RuleSet parsing
* {% jdoc core::RuleSetFactory %} and {% jdoc core::RuleSetFactoryUtils %} have been deprecated in favor of {% jdoc core::RuleSetLoader %}. This is easier to configure, and more maintainable than the multiple overloads of `RuleSetFactoryUtils`.
* {% jdoc core::RuleSetFactory %} and {% jdoc core::RulesetsFactoryUtils %} have been deprecated in favor of {% jdoc core::RuleSetLoader %}. This is easier to configure, and more maintainable than the multiple overloads of `RulesetsFactoryUtils`.
* Some static creation methods have been added to {% jdoc core::RuleSet %} for simple cases, eg {% jdoc core::RuleSet#forSingleRule(core::Rule) %}. These replace some counterparts in {% jdoc core::RuleSetFactory %}
* Since {% jdoc core::RuleSets %} is also deprecated, many APIs that require a RuleSets instance now are deprecated, and have a counterpart that expects a `List<RuleSet>`.
* {% jdoc core::RuleSetReferenceId %}, {% jdoc core::RuleSetReference %}, {% jdoc core::RuleSetFactoryCompatibility %} are deprecated. They are most likely not relevant outside of the implementation of pmd-core.
+3 -3
View File
@@ -1,8 +1,8 @@
---
title: Getting Help
permalink: pmd_about_help.html
author: Andreas Dangel <andreas.dangel@adangel.org>
last_updated: September 2017
author: Andreas Dangel <andreas.dangel@pmd-code.org>
last_updated: January 2021
---
There are numerous ways of getting help:
@@ -13,7 +13,7 @@ There are numerous ways of getting help:
* If you found a bug, please create a new [github issue](https://github.com/pmd/pmd/issues).
* You can also ask questions in our [sourceforge forum](https://sourceforge.net/p/pmd/discussion/).
* You can also ask questions on [github discussions](https://github.com/pmd/pmd/discussions).
* Or you can join the [Mailing List](https://lists.sourceforge.net/lists/listinfo/pmd-devel) or browse
through the archives ([archive1](http://java-pmd.30631.n5.nabble.com/), [archive2](http://web.archive.org/web/20160715035623/http://blog.gmane.org:80/gmane.comp.java.audit.pmd.devel)).
+49
View File
@@ -0,0 +1,49 @@
---
title: PLSQL
permalink: pmd_languages_plsql.html
last_updated: March 2021 (6.33.0)
---
## Parsing Exclusions
The grammar for PLSQL used in PMD has several bugs and might not parse all DDL scripts
without errors. However, it should be best practice to call PMD for _every_ DDL script.
Thus, we introduce the following workaround to cope with the situation.
We introduce two special comments `PMD-EXCLUDE-BEGIN` and `PMD-EXCLUDE-END`
which cause PMD to treat the source in between these comments more or less
like a multi-line comment, or in other words, just not try to parse them.
It is good practice to include a reason for excluding inside the
`-- PMD-EXCUDE-BEGIN` comment separated by a colon.
The `PMD-EXCLUDE-BEGIN` and `PMD-EXLUDE-END` comment lines must not contain
other statements, e.g. `do_xy(); -- PMD-EXCLUDE-BEGIN` is invalid.
Example:
```
begin
do_something();
-- PMD-EXCLUDE-BEGIN: PMD does not like dbms_lob.trim (clash with TrimExpression)
dbms_lob.trim(the_blob, 1000);
-- PMD-EXCLUDE-END
do_something_else();
end;
```
The existence of exclusions can be detected with the attributes
`ExcludedRangesCount` and `ExcludedLinesCount` of the top-level ASTInput node.
If nothing is excluded, both values are 0 (zero).
Otherwise, `ExcludedRangesCount` contains the number of excluded line-ranges
and `ExcludedLinesCount` is the total number of excluded lines.
A future version of PMD might pass the line excluded line ranges,
source fragments and the corresponding reason comments
as child nodes of the top-level ASTInput node.
In order to keep track where such parse exclusions are used, you could create
a custom XPath rule with the following expression:
/Input[@ExcludedRangesCount > 0]
This will find all files with at least one excluded range.
@@ -26,6 +26,8 @@ author: Tom Copeland <tom@infoether.org>
### PMD in general and other Language Modules
* February 2021 - Artem Krosheninnikov's talk about Quality Assurance Automation: [Artem Krosheninnikov, Wrike - How static analysis can help in QAA processes](https://www.youtube.com/watch?v=L42zH5ne074)
* May 2019 - [Code quality assurance with PMD An extensible static code analyser for Java and other languages](https://www.datarespons.com/code-quality-assurance-with-pmd/)
* February 2012 - Romain Pelisse's lightning talk at FOSDEM 2012 about "PMD5: What can it do for you?".
+2 -2
View File
@@ -60,8 +60,8 @@ All property assignments must be enclosed in a `properties` element, which is it
Some properties take multiple values (a list), in which case you can provide them all by delimiting them with a delimiter character. It is usually a pipe ('\|'), or a comma (',') for numeric properties, e.g.
```xml
<property name="legalCollectionTypes"
value="java.util.ArrayList|java.util.Vector|java.util.HashMap"/>
<property name="legalCollectionTypes"
value="java.util.ArrayList|java.util.Vector|java.util.HashMap"/>
```
These properties are referred to as **multivalued properties** in this documentation.
+32 -32
View File
@@ -119,7 +119,7 @@ Novice as much as advanced readers may want to [read on on Refactoring Guru](htt
{% include custom/cli_option_row.html options="--ignore-literal-sequences"
description="Ignore sequences of literals (common e.g. in list initializers)"
default="false"
languages="C#"
languages="C#, C++"
%}
{% include custom/cli_option_row.html options="--ignore-usings"
description="Ignore `using` directives in C# when comparing text"
@@ -253,14 +253,14 @@ For details, see [CPD Report Formats](pmd_userdocs_cpd_report_formats.html).
Andy Glover wrote an Ant task for CPD; here's how to use it:
```xml
<target name="cpd">
<taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask" />
<cpd minimumTokenCount="100" outputFile="/home/tom/cpd.txt">
<fileset dir="/home/tom/tmp/ant">
<include name="**/*.java"/>
</fileset>
</cpd>
</target>
<target name="cpd">
<taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask" />
<cpd minimumTokenCount="100" outputFile="/home/tom/cpd.txt">
<fileset dir="/home/tom/tmp/ant">
<include name="**/*.java"/>
</fileset>
</cpd>
</target>
```
<!-- TODO avoid duplicating the descriptions! -->
@@ -352,7 +352,7 @@ Also, you can get an HTML report from CPD by using the XSLT script in pmd/etc/xs
the CPD task as usual and right after it invoke the Ant XSLT script like this:
```xml
<xslt in="cpd.xml" style="etc/xslt/cpdhtml.xslt" out="cpd.html" />
<xslt in="cpd.xml" style="etc/xslt/cpdhtml.xslt" out="cpd.html" />
```
## GUI
@@ -378,23 +378,23 @@ Arbitrary blocks of code can be ignored through comments on **Java**, **C/C++**,
**Kotlin**, **Lua**, **Matlab**, **Objective-C**, **PL/SQL**, **Python**, **Scala**, **Swift** and **C#** by including the keywords `CPD-OFF` and `CPD-ON`.
```java
public Object someParameterizedFactoryMethod(int x) throws Exception {
// some unignored code
public Object someParameterizedFactoryMethod(int x) throws Exception {
// some unignored code
// tell cpd to start ignoring code - CPD-OFF
// tell cpd to start ignoring code - CPD-OFF
// mission critical code, manually loop unroll
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
// mission critical code, manually loop unroll
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
goDoSomethingAwesome(x + x / 2);
// resume CPD analysis - CPD-ON
// resume CPD analysis - CPD-ON
// further code will *not* be ignored
}
// further code will *not* be ignored
}
```
Additionally, **Java** allows to toggle suppression by adding the annotations
@@ -405,15 +405,15 @@ This approach however, is limited to the locations were `@SuppressWarnings` is a
It's legacy and the new comment's based approach should be favored.
```java
//enable suppression
@SuppressWarnings("CPD-START")
public Object someParameterizedFactoryMethod(int x) throws Exception {
// any code here will be ignored for the duplication detection
}
//disable suppression
@SuppressWarnings("CPD-END)
public void nextMethod() {
}
//enable suppression
@SuppressWarnings("CPD-START")
public Object someParameterizedFactoryMethod(int x) throws Exception {
// any code here will be ignored for the duplication detection
}
//disable suppression
@SuppressWarnings("CPD-END)
public void nextMethod() {
}
```
Other languages currently have no support to suppress CPD reports. In the future,
@@ -19,6 +19,18 @@ those can be specified with the `-property` / `-P` option on the command-line.
{% include note.html content="Suppressed violations are only reported, if the CLI parameter `-showsuppressed` is set." %}
## sarif
"SARIF, the Static Analysis Results Interchange Format, is a standard, JSON-based format for the output of static
analysis tools. It has been approved as an OASIS standard" - <https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html>.
SARIF schema can be found here: <https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json>.
PMD holds an initial implementation version of SARIF rendering. This means SARIF allows for more complexity and the
current implementation can be extended.
[Example](report-examples/pmd-report.sarif.json)
## codeclimate
Renderer for Code Climate JSON format.
+49 -49
View File
@@ -26,17 +26,17 @@ report additionally in `<reporting><plugins/></reporting>` elements. Here's an e
section:
```xml
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>{{ page.mpmd_version }}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>{{ page.mpmd_version }}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
```
When defining the version in the pluginManagment section, then it doesn't need to be specified in the normal plugins
@@ -123,22 +123,22 @@ To specify a ruleset, simply edit the previous configuration:
``` xml
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>{{ page.mpmd_version }}</version>
<configuration>
<rulesets>
<ruleset>/rulesets/java/quickstart.xml</ruleset>
<ruleset>d:\rulesets\my-ruleset.xml</ruleset>
<ruleset>http://localhost/design.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</reporting>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>{{ page.mpmd_version }}</version>
<configuration>
<rulesets>
<ruleset>/rulesets/java/quickstart.xml</ruleset>
<ruleset>d:\rulesets\my-ruleset.xml</ruleset>
<ruleset>http://localhost/design.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</reporting>
```
The value of the 'ruleset' element can either be a relative address, an absolute address or even an url.
@@ -156,17 +156,17 @@ When using the Maven PMD plugin 3.8 or later along with PMD 5.6.0 or later, you
speed up PMD's execution while retaining the quality of the analysis. You can additionally customize where the cache is stored::
```xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>{{ page.mpmd_version }}</version> <!-- or use version from pluginManagement -->
<configuration>
<!-- enable incremental analysis -->
<analysisCache>true</analysisCache>
<!-- analysisCacheLocation: optional - points to the following location by default -->
<analysisCacheLocation>${project.build.directory}/pmd/pmd.cache</analysisCacheLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>{{ page.mpmd_version }}</version> <!-- or use version from pluginManagement -->
<configuration>
<!-- enable incremental analysis -->
<analysisCache>true</analysisCache>
<!-- analysisCacheLocation: optional - points to the following location by default -->
<analysisCacheLocation>${project.build.directory}/pmd/pmd.cache</analysisCacheLocation>
</configuration>
</plugin>
```
#### Other configurations
@@ -175,17 +175,17 @@ The Maven PMD plugin allows you to configure CPD, targetJDK, and the use of XRef
the report to html source files, and the file encoding:
```xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>{{ page.mpmd_version }}</version> <!-- or use version from pluginManagement -->
<configuration>
<linkXRef>true</linkXRef>
<sourceEncoding>ISO-8859-1</sourceEncoding>
<minimumTokens>30</minimumTokens>
<targetJdk>1.4</targetJdk>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>{{ page.mpmd_version }}</version> <!-- or use version from pluginManagement -->
<configuration>
<linkXRef>true</linkXRef>
<sourceEncoding>ISO-8859-1</sourceEncoding>
<minimumTokens>30</minimumTokens>
<targetJdk>1.4</targetJdk>
</configuration>
</plugin>
```
#### Upgrading the PMD version at runtime
+28 -83
View File
@@ -14,99 +14,44 @@ This is a {{ site.pmd.release_type }} release.
### New and noteworthy
##### CPD
#### PLSQL parsing exclusions
* The C# module now supports the new option [`--ignore-literal-sequences`](https://pmd.github.io/latest/pmd_userdocs_cpd.html#-ignore-literal-sequences), which can be used to avoid detection of some uninteresting clones. Support for other languages may be added in the future. See [#2945](https://github.com/pmd/pmd/pull/2945)
* The Scala module now supports [suppression](https://pmd.github.io/latest/pmd_userdocs_cpd.html#suppression) through `CPD-ON`/`CPD-OFF` comment pairs. See [#2929](https://github.com/pmd/pmd/pull/2929)
##### Type information for VisualForce
The Visualforce AST now can resolve the data type of Visualforce expressions that reference Apex Controller properties and Custom Object fields. This feature improves the precision of existing rules, like {% rule vf/security/VfUnescapeEl %}.
This can be configured using two environment variables:
* `PMD_VF_APEXDIRECTORIES`: Comma separated list of directories for Apex classes. Absolute or relative to the Visualforce directory. Default is `../classes`. Specifying an empty string will disable data type resolution for Apex Controller properties.
* `PMD_VF_OBJECTSDIRECTORIES`: Comma separated list of directories for Custom Objects. Absolute or relative to the Visualforce directory. Default is `../objects`. Specifying an empty string will disable data type resolution for Custom Object fields.
This feature is experimental, in particular, expect changes to the way the configuration is specified. We'll probably extend the CLI instead of relying on environment variables in a future version.
Thanks to Jeff Bartolotta and Roopa Mohan for contributing this!
The PMD PLSQL parser might not parse every valid PL/SQL code without problems.
In order to still use PMD on such files, you can now mark certain lines for exclusion from
the parser. More information can be found in the [language specific documentation for PLSQL](pmd_languages_plsql.html).
### Fixed Issues
* core
* [#1939](https://github.com/pmd/pmd/issues/1939): \[core] XPath expressions return handling
* [#1961](https://github.com/pmd/pmd/issues/1961): \[core] Text renderer should include name of violated rule
* [#2874](https://github.com/pmd/pmd/pull/2874): \[core] Fix XMLRenderer with UTF-16
* cs
* [#2938](https://github.com/pmd/pmd/pull/2938): \[cs] CPD: ignoring using directives could not be disabled
* apex-design
* [#3142](https://github.com/pmd/pmd/issues/3142): \[apex] ExcessiveClassLength multiple warning on the same class
* java
* [#2911](https://github.com/pmd/pmd/issues/2911): \[java] `ClassTypeResolver#searchNodeNameForClass` leaks memory
* [#2934](https://github.com/pmd/pmd/pull/2934): \[java] CompareObjectsWithEquals / UseEqualsToCompareStrings - False negatives with fields
* [#2940](https://github.com/pmd/pmd/pull/2940): \[java] Catch additional TypeNotPresentExceptions / LinkageErrors
* scala
* [#2480](https://github.com/pmd/pmd/issues/2480): \[scala] Support CPD suppressions
### API Changes
#### Deprecated API
##### Around RuleSet parsing
* {% jdoc core::RuleSetFactory %} and {% jdoc core::RuleSetFactoryUtils %} have been deprecated in favor of {% jdoc core::RuleSetLoader %}. This is easier to configure, and more maintainable than the multiple overloads of `RuleSetFactoryUtils`.
* Some static creation methods have been added to {% jdoc core::RuleSet %} for simple cases, eg {% jdoc core::RuleSet#forSingleRule(core::Rule) %}. These replace some counterparts in {% jdoc core::RuleSetFactory %}
* Since {% jdoc core::RuleSets %} is also deprecated, many APIs that require a RuleSets instance now are deprecated, and have a counterpart that expects a `List<RuleSet>`.
* {% jdoc core::RuleSetReferenceId %}, {% jdoc core::RuleSetReference %}, {% jdoc core::RuleSetFactoryCompatibility %} are deprecated. They are most likely not relevant outside of the implementation of pmd-core.
##### Around the `PMD` class
Many classes around PMD's entry point ({% jdoc core::PMD %}) have been deprecated as internal, including:
* The contents of the packages {% jdoc_package core::cli %}, {% jdoc_package core::processor %}
* {% jdoc core::SourceCodeProcessor %}
* The constructors of {% jdoc core::PMD %} (the class will be made a utility class)
##### Miscellaneous
* {% jdoc !!java::lang.java.ast.ASTPackageDeclaration#getPackageNameImage() %},
{% jdoc !!java::lang.java.ast.ASTTypeParameter#getParameterName() %}
and the corresponding XPath attributes. In both cases they're replaced with a new method `getName`,
the attribute is `@Name`.
* {% jdoc !!java::lang.java.ast.ASTClassOrInterfaceBody#isAnonymousInnerClass() %},
and {% jdoc !!java::lang.java.ast.ASTClassOrInterfaceBody#isEnumChild() %},
refs [#905](https://github.com/pmd/pmd/issues/905)
#### Internal API
Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0.
You can identify them with the `@InternalApi` annotation. You'll also get a deprecation warning.
* {% jdoc !!javascript::lang.ecmascript.Ecmascript3Handler %}
* {% jdoc !!javascript::lang.ecmascript.Ecmascript3Parser %}
* {% jdoc !!javascript::lang.ecmascript.ast.EcmascriptParser#parserOptions %}
* {% jdoc !!javascript::lang.ecmascript.ast.EcmascriptParser#getSuppressMap() %}
* {% jdoc !!core::lang.rule.ParametricRuleViolation %}
* {% jdoc !!core::lang.ParserOptions#suppressMarker %}
* {% jdoc !!modelica::lang.modelica.rule.ModelicaRuleViolationFactory %}
* [#3117](https://github.com/pmd/pmd/issues/3117): \[java] Infinite loop when parsing invalid code nested in lambdas
* [#3145](https://github.com/pmd/pmd/issues/3145): \[java] Parse exception when using "record" as variable name
* java-bestpractices
* [#3118](https://github.com/pmd/pmd/issues/3118): \[java] UnusedPrivateMethod false positive when passing in lombok.val as argument
* [#3144](https://github.com/pmd/pmd/issues/3144): \[java] GuardLogStatement can have more detailed example
* [#3155](https://github.com/pmd/pmd/pull/3155): \[java] GuardLogStatement: False negative with unguarded method call
* [#3160](https://github.com/pmd/pmd/issues/3160): \[java] MethodReturnsInternalArray does not consider static final fields and fields initialized with empty array
* java-errorprone
* [#2977](https://github.com/pmd/pmd/issues/2977): \[java] CloseResource: false positive with reassignment detection
* [#3146](https://github.com/pmd/pmd/issues/3146): \[java] InvalidLogMessageFormat detection failing when String.format used
* [#3148](https://github.com/pmd/pmd/issues/3148): \[java] CloseResource false positive with Objects.nonNull
* [#3165](https://github.com/pmd/pmd/issues/3165): \[java] InvalidLogMessageFormat detection failing when String.format used in a variable
* java-performance
* [#2427](https://github.com/pmd/pmd/issues/2427): \[java] ConsecutiveLiteralAppend false-positive with builder inside lambda
* [#3152](https://github.com/pmd/pmd/issues/3152): \[java] ConsecutiveLiteralAppends and InsufficientStringBufferDeclaration: FP with switch expressions
* plsql
* [#195](https://github.com/pmd/pmd/issues/195): \[plsql] Ampersand '&' causes PMD processing error in sql file - Lexical error in file
### External Contributions
* [#2864](https://github.com/pmd/pmd/pull/2864): [vf] Provide expression type information to Visualforce rules to avoid false positives - [Jeff Bartolotta](https://github.com/jbartolotta-sfdc)
* [#2914](https://github.com/pmd/pmd/pull/2914): \[core] Include rule name in text renderer - [Gunther Schrijvers](https://github.com/GuntherSchrijvers)
* [#2925](https://github.com/pmd/pmd/pull/2925): Cleanup: Correct annotation array initializer indents from checkstyle #8083 - [Abhishek Kumar](https://github.com/Abhishek-kumar09)
* [#2929](https://github.com/pmd/pmd/pull/2929): \[scala] Add support for CPD-ON and CPD-OFF special comments - [Andy Robinson](https://github.com/andyrobinson)
* [#2936](https://github.com/pmd/pmd/pull/2936): \[java] (doc) Fix typo: "an accessor" not "a" - [Igor Moreno](https://github.com/igormoreno)
* [#2938](https://github.com/pmd/pmd/pull/2938): \[cs] CPD: fix issue where ignoring using directives could not be disabled - [Maikel Steneker](https://github.com/maikelsteneker)
* [#2945](https://github.com/pmd/pmd/pull/2945): \[cs] Add option to ignore sequences of literals - [Maikel Steneker](https://github.com/maikelsteneker)
* [#2962](https://github.com/pmd/pmd/pull/2962): \[cpp] Add support for C++ 14 binary literals - [Maikel Steneker](https://github.com/maikelsteneker)
* [#3161](https://github.com/pmd/pmd/pull/3161): \[plsql] Add support for lexical parameters in SQL*Plus scripts, allow excluding lines which the parser does not understand - [Henning von Bargen](https://github.com/hvbtup)
* [#3167](https://github.com/pmd/pmd/pull/3167): \[java] Minor typo in quickstart ruleset - [Austin Tice](https://github.com/AustinTice)
### Stats
* 190 commits
* 25 closed tickets & PRs
* Days since last release: 49
* 49 commits
* 27 closed tickets & PRs
* Days since last release: 28
{% endtocmaker %}
File diff suppressed because it is too large. Load diff
+137
View File
@@ -0,0 +1,137 @@
{
"$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
"version": "2.1.0",
"runs": [
{
"tool": {
"driver": {
"name": "PMD",
"version": "<pmd-version>",
"informationUri": "https://pmd.github.io/pmd/",
"rules": [
{
"id": "ApexSharingViolations",
"shortDescription": {
"text": "Apex classes should declare a sharing model if DML or SOQL/SOSL is used"
},
"helpUri": "https://pmd.github.io/pmd/pmd_rules_apex_security.html#apexsharingviolations",
"properties": {
"ruleset": "Security",
"priority": 3
}
},
{
"id": "ApexDoc",
"shortDescription": {
"text": "Missing ApexDoc comment"
},
"helpUri": "https://pmd.github.io/pmd/pmd_rules_apex_documentation.html#apexdoc",
"properties": {
"ruleset": "Documentation",
"priority": 3
}
}
]
}
},
"results": [
{
"ruleId": "ApexSharingViolations",
"ruleIndex": 0,
"message": {
"text": "Apex classes should declare a sharing model if DML or SOQL/SOSL is used"
},
"locations": [
{
"physicalLocation": {
"artifactLocation": {
"uri": "/Users/user/pmd/unhappy-soup/force-app/main/default/classes/ApexSOQLInjection.cls"
},
"region": {
"startLine": 1,
"startColumn": 14,
"endLine": 1,
"endColumn": 30
}
}
},
{
"physicalLocation": {
"artifactLocation": {
"uri": "/Users/user/pmd/unhappy-soup/force-app/main/default/classes/ApexSharingViolations.cls"
},
"region": {
"startLine": 1,
"startColumn": 14,
"endLine": 1,
"endColumn": 34
}
}
}
]
},
{
"ruleId": "ApexDoc",
"ruleIndex": 1,
"message": {
"text": "Missing ApexDoc comment"
},
"locations": [
{
"physicalLocation": {
"artifactLocation": {
"uri": "/Users/user/pmd/unhappy-soup/force-app/main/default/classes/ApexSOQLInjection.cls"
},
"region": {
"startLine": 1,
"startColumn": 14,
"endLine": 6,
"endColumn": 1
}
}
},
{
"physicalLocation": {
"artifactLocation": {
"uri": "/Users/user/pmd/unhappy-soup/force-app/main/default/classes/ApexSOQLInjection.cls"
},
"region": {
"startLine": 3,
"startColumn": 17,
"endLine": 5,
"endColumn": 2
}
}
},
{
"physicalLocation": {
"artifactLocation": {
"uri": "/Users/user/pmd/unhappy-soup/force-app/main/default/classes/ApexSharingViolations.cls"
},
"region": {
"startLine": 1,
"startColumn": 14,
"endLine": 6,
"endColumn": 1
}
}
},
{
"physicalLocation": {
"artifactLocation": {
"uri": "/Users/user/pmd/unhappy-soup/force-app/main/default/classes/ApexSharingViolations.cls"
},
"region": {
"startLine": 3,
"startColumn": 14,
"endLine": 5,
"endColumn": 2
}
}
}
]
}
]
}
]
}
+1 -1
View File
@@ -8,7 +8,7 @@
<parent>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd</artifactId>
<version>6.30.0</version>
<version>6.33.0</version>
<relativePath>../</relativePath>
</parent>
Loaded 30 of 319 files, more files were not shown because too many files have changed in this diff. Show more