False positive for java 21 switch case with null, default
還沒有人認領這個 Issue。
評估
研究方向
使用最小的 Java 21 switch 範例和所參照的 PrintixService.java 案例,重現 CodeQL Java 擷取失敗。首先追蹤 Java extractor 對涉及 null 和 default 的 switch 標籤的解析。完成標準是:有效的 Java 21 原始碼能夠成功擷取,且 finalization 能夠在沒有報告的錯誤下處理 Java 程式碼。
由索引模型根據 Issue 內容生成。
描述
Version
CodeQL CLI: 2.25.6
github/codeql-action: v3
JDK: 21
OS: ubuntu-latest
What happened?
CodeQL Java extraction fails on valid Java 21 switch syntax.
Error:
- Unable to parse source file:
.../PrintixService.java - Parse error at line 84 column 23: Syntax error on token "default", invalid Expression
Then finalize fails with:
- "CodeQL detected code written in Java/Kotlin but could not process any of it."
- exit code 32
Minimal reproducible example
static String f(Object x) {
return switch (x) {
case null, default -> "v";
};
}
- 主要語言
- CodeQL
- 星號
- 10.1k
- 分支
- 2.1k
- 平均合併
- 2 天 16 小時
- 30 天內合併 PR
- 143
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
github/codeql 的其他 Issue
-
agentic-workflows
難度 2/5 1-3 小時 新手友好度 70/100
-
false-positive javascript
難度 2/5 1-3 小時 新手友好度 84/100
-
難度 2/5 1-3 小時 新手友好度 82/100
-
難度 2/5 1-3 小時 新手友好度 78/100
-
false-positive
難度 2/5 1-3 小時 新手友好度 70/100
相似的 Issue
-
flang:fir-hlfir
難度 2/5 1-3 小時 新手友好度 70/100
llvm/llvm-project#225935 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
objectionary/eo#8923 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
-
難度 2/5 1-3 小時 新手友好度 75/100
-
Coarray integration tests carry no LABELS, so run_tests.py silently skips them under every backend 未關閉coarray
難度 2/5 1-3 小時 新手友好度 70/100