forcedotcom / forcedotcom/code-analyzer

[BUG][code-analyzer] The engine with name 'sfge' threw an unexpected error

Offen
#1,967 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
BUG P3
Vorherrschende Sprache
TypeScript
Sterne
240
Forks
52
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
5

Beschreibung

### Have you tried to resolve this issue yourself first?

- [x] I confirm I have gone through the above steps and still have an issue to report.

### Bug Description

When running the SFGE engine using

[code-scan-sfge.csv](https://github.com/user-attachments/files/24383801/code-scan-sfge.csv)

[code-analyzer-sfge.yml](https://github.com/user-attachments/files/24383828/code-analyzer-sfge.yml)

[sfca-2025_12_30_15_43_01_855.log](https://github.com/user-attachments/files/24383850/sfca-2025_12_30_15_43_01_855.log)

Related log specific for SFGE is below, which suggests that the following code is an issue

`for (Contact c : cList ?? new List()) {}`

Specifically i think it is the ?? within the for loop, since moving it out seems to stop this error happening.

Overall, it seems to be two things
1) Massive failures which make no sense unless really digging into issues
2) Issue with parsing (the AST tree?) to Apex class for something which is valid apex

### Output / Logs

```shell
2025-12-30 15:44:44 ERROR Sfge:159 - Unexpected exception while loading graph
com.salesforce.exception.UnexpectedException: vp[FirstChild->false], vp[BeginLine->313], vp[DefiningType_CaseSafe->APEXCLASSWITHISSUE...], vp[LastChild->false], vp[DefiningType->APEXCLASSWITHISSUE...], vp[EndLine->313], vp[childIdx->3], vp[BeginColumn->3]
at com.salesforce.graph.build.GremlinUtil.getChildren(GremlinUtil.java:60)
at com.salesforce.graph.build.MethodPathBuilderVisitor.visitForEachStatement(MethodPathBuilderVisitor.java:235)
at com.salesforce.graph.build.MethodPathBuilderVisitor._visit(MethodPathBuilderVisitor.java:130)
at com.salesforce.graph.build.MethodPathBuilderVisitor._visit(MethodPathBuilderVisitor.java:159)
at com.salesforce.graph.build.MethodPathBuilderVisitor.apply(MethodPathBuilderVisitor.java:97)
at com.salesforce.graph.build.AbstractApexVertexBuilder.afterInsert(AbstractApexVertexBuilder.java:169)
at com.salesforce.graph.build.AbstractApexVertexBuilder.buildVertices(AbstractApexVertexBuilder.java:153)
at com.salesforce.graph.build.AbstractApexVertexBuilder.buildVertices(AbstractApexVertexBuilder.java:125)
at com.salesforce.graph.build.AbstractApexVertexBuilder.buildVertices(AbstractApexVertexBuilder.java:35)
at com.salesforce.graph.build.CustomerApexVertexBuilder.build(CustomerApexVertexBuilder.java:21)
at com.salesforce.graph.build.Util.buildGraph(Util.java:39)
at com.salesforce.graph.ops.GraphUtil.loadSourceFilesAndFolders(GraphUtil.java:170)
at com.salesforce.Sfge$Dependencies.loadSourceFilesAndFoldersToGraph(Sfge.java:249)
at com.salesforce.Sfge.execute(Sfge.java:153)
at com.salesforce.Sfge.process(Sfge.java:103)
at com.salesforce.Sfge.main(Sfge.java:71)
```

### Steps To Reproduce

`sf code-analyzer run --config-file ./code-analyzer-sfge.yml --view detail -f codescan/code-scan-sfge.csv -r sfge -t app\classes\class.cls`

### Expected Behavior

If failing, then fail with a meaningful error, but in this case I don't believe an error is correct

### Operating System

Windows 11

### Salesforce CLI Version

@salesforce/cli/2.116.6 win32-x64 node-v24.8.0

### Code Analyzer Plugin (code-analyzer) Version

code-analyzer 5.7.1 (5.7.1)

### Node Version

v24.8.0

### Java Version

openjdk version 21.0.8

### Python Version

Python 3.13.7

### Additional Context (Screenshots, Files, etc)

_No response_

### Workaround

_No response_

### Urgency

Low

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Reproduziere den Fehler mit code-analyzer-sfge.yml, code-scan-sfge.csv und dem bereitgestellten CLI-Befehl. Untersuche anschließend GremlinUtil.java und MethodPathBuilderVisitor.java, insbesondere visitForEachStatement. Vergleiche die AST-Behandlung des fehlschlagenden Null-Koaleszenz-Ausdrucks mit der funktionierenden Umgehungslösung. Erledigt ist die Aufgabe, wenn gültiges Apex nicht mehr die unerwartete Ausnahme beim Laden des Graphen verursacht und eine Abdeckung für diesen Fall vorhanden ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
compilers, tooling
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
52/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.