False positive for java 21 switch case with null, default
- 主要語言
- CodeQL
- 星號
- 10.1k
- 分支
- 2.1k
- 平均合併
- 2 天 15 小時
- 30 天內合併 PR
- 141
描述
### 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
```java
static String f(Object x) {
return switch (x) {
case null, default -> "v";
};
}
貢獻指南
研究方向
使用最小的 Java 21 switch 範例和所參照的 PrintixService.java 案例,重現 CodeQL Java 擷取失敗。首先追蹤 Java extractor 對涉及 null 和 default 的 switch 標籤的解析。完成標準是:有效的 Java 21 原始碼能夠成功擷取,且 finalization 能夠在沒有報告的錯誤下處理 Java 程式碼。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- java
- 領域
- compilers
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 55/100