Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PMD causing extension host to crash. #129

Open
codefriar opened this issue Jun 20, 2023 · 1 comment
Open

PMD causing extension host to crash. #129

codefriar opened this issue Jun 20, 2023 · 1 comment

Comments

@codefriar
Copy link

Describe the bug
It's not clear to me exactly what's causing this to occur. I can give you a timeline and a stacktrace.

The timeline

  1. open a SFDX project in VSCode.
  2. make an edit to a .cls file
  3. save the file

At this point the plugin is kicking off PMD to scan the just-saved file and when that happens I get this in the extension host output:

2023-06-20 15:35:57.966 [error] TypeError: Cannot read properties of undefined (reading 'document')
    at /Users/kpoorman/.vscode/extensions/chuckjonas.apex-pmd-0.5.9/dist/extension.js:1:4269
    at b.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145)
    at deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2121)
    at n.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1729)
    at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:103:17303
    at b.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145)
    at deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2121)
    at n.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1729)
    at e.ExtHostDocumentsAndEditors.acceptDocumentsAndEditorsDelta (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:101:14003)
    at e.ExtHostDocumentsAndEditors.$acceptDocumentsAndEditorsDelta (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:101:12318)
    at s.N (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:111:11717)
    at s.M (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:111:11435)
    at s.H (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:111:10516)
    at s.G (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:111:9494)
    at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:111:8282
    at b.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145)
    at deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2121)
    at n.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1729)
    at p.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:73:14783)
    at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:127:32461
    at b.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145)
    at deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2121)
    at n.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1729)
    at p.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:73:14783)
    at MessagePortMain.<anonymous> (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:127:30587)
    at MessagePortMain.emit (node:events:513:28)
    at Object.MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:2:367)

Note the first line pointing a finger at this plugin.

Apex PMD Output

PMD Command: java -cp "/Users/kpoorman/.vscode/extensions/chuckjonas.apex-pmd-0.5.9/bin/pmd/lib/*:/Users/kpoorman/src/salesforce/*" net.sourceforge.pmd.PMD -f csv --cache "/Users/kpoorman/src/salesforce/.pmdCache" -d "/Users/kpoorman/src/salesforce/force-app/main/default/classes/ZipDBCalloutQueueableTests.cls" -R "/Users/kpoorman/src/salesforce/ruleset.xml"
stderr:Jun 20, 2023 3:45:24 PM net.sourceforge.pmd.RuleSetFactory parseRuleSetReferenceNode
WARNING: Unable to exclude rules [ApexUnitTestClassShouldHaveRunAs] from ruleset reference category/apex/bestpractices.xml; perhaps the rule name is misspelled or the rule doesn't exist anymore?

stderr:Jun 20, 2023 3:45:24 PM net.sourceforge.pmd.cache.FileAnalysisCache loadFromFile
INFO: Analysis cache loaded

stdout:"Problem","Package","File","Priority","Line","Description","Rule set","Rule"
"1","","/Users/kpoorman/src/salesforce/force-app/main/default/classes/ZipDBCalloutQueueableTests.cls","3","4","Apex unit tests should System.assert() or assertEquals() or assertNotEquals()","Best Practices","ApexUnitTestClassShouldHaveAsserts"
"2","","/Users/kpoorman/src/salesforce/force-app/main/default/classes/ZipDBCalloutQueueableTests.cls","3","25","Apex unit tests should System.assert() or assertEquals() or assertNotEquals()","Best Practices","ApexUnitTestClassShouldHaveAsserts"
"3","","/Users/kpoorman/src/salesforce/force-app/main/default/classes/ZipDBCalloutQueueableTests.cls","3","49","Apex unit tests should System.assert() or assertEquals() or assertNotEquals()","Best Practices","ApexUnitTestClassShouldHaveAsserts"
"4","","/Users/kpoorman/src/salesforce/force-app/main/default/classes/ZipDBCalloutQueueableTests.cls","3","64","Apex unit tests should System.assert() or assertEquals() or assertNotEquals()","Best Practices","ApexUnitTestClassShouldHaveAsserts"
"5","","/Users/kpoorman/src/salesforce/force-app/main/default/classes/ZipDBCalloutQueueableTests.cls","3","80","Avoid debug statements since they impact on performance","Performance","AvoidDebugStatements"
"6","","/Users/kpoorman/src/salesforce/force-app/main/default/classes/ZipDBCalloutQueueableTests.cls","3","80","Calls to System.debug should specify a logging level.","Best Practices","DebugsShouldUseLoggingLevel"

stderr:Jun 20, 2023 3:45:24 PM net.sourceforge.pmd.cache.FileAnalysisCache persist
INFO: Analysis cache updated

6 issue(s) found

Apex PMD Settings

image

  • pmdPath:
  • rulesetPath:
    /Users/kpoorman/src/salesforce/ruleset.xml

Apex File

Screenshots
If applicable, add screenshots to help explain your problem.

Versions (please complete the following information):

  • OS: Mac OS Ventura 13.4
  • vscode:
Version: 1.79.2
Commit: 695af097c7bd098fbf017ce3ac85e09bbc5dda06
Date: 2023-06-14T08:58:33.551Z
Electron: 22.5.7
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: 10.8.168.25-electron.0
OS: Darwin arm64 22.5.0
@ChuckJonas
Copy link
Owner

Guessing it's a change in the vscode API that results in the document being null...

Honesty, surprised this extension even still runs for anyone. It could probably use a full rewrite at this point (I think these were among the first lines of typescript I ever wrote).

Will try to take a look

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants