REVIEW 2 major objections 7 minor 34 references
On Java, the train-test split is a first-class property of any vulnerability-detection score: moving from random to project-disjoint drops F1 by double digits, so project-disjoint should be the default headline split.
Reviewed by Pith at T0; open to challenge. T0 means a machine referee read the full paper against a public rubric. the ladder, T0–T4 →
T0 review · grok-4.5
2026-07-12 06:47 UTC pith:K4B6HJJW
load-bearing objection Useful Java vuln-detection infrastructure: the package (splits + harness + contamination audit) is the real product, and the random→project F1 drop is cleanly shown. the 2 major comments →
JavaVulBench: A Java Vulnerability Benchmark with Realistic Splits, a Unified Multi-Backend Harness, and a Leakage-Aware Evaluation Mode
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
On Java, split strategy is a first-class property of any reported vulnerability-detection number. Switching from a random split to a project-disjoint split reproduces the large F1 drops seen on C/C++ (for example UniXcoder falls from 0.446 to 0.298 and GraphCodeBERT from 0.343 to 0.256), so project-disjoint should be treated as the default headline split and users should also quote clean-subset F1 after a pre-training contamination audit.
What carries the argument
JavaVulBench: a CVE-grounded corpus of about 30,600 labeled Java methods with five shipped splits (random, project-disjoint, temporal, deduplicated, unseen CWE-family), a unified LlmPrediction harness spanning encoder, Ollama, and OpenRouter backends, and a per-model contamination audit that partitions each test set into risky (pre-cutoff) and clean (post-cutoff) CVEs.
Load-bearing premise
The labels taken from developer fix commits (after filtering test, format, and refactor noise) correctly mark the vulnerable methods and lines, and the constructed same-file and same-project negatives are truly free of unlabeled bugs.
What would settle it
Have security experts re-label the project-disjoint test set independently; if the large F1 drop from random to project-disjoint disappears once fix-line approximation errors and contaminated negatives are corrected, the claim that split strategy alone drives the gap fails.
If this is right
- Project-disjoint, not random, becomes the default headline split for any Java vulnerability detector.
- Papers reporting high Java F1 must also quote clean-subset F1 from a contamination audit so memorization is not mistaken for generalization.
- New detectors can be dropped into the single-command harness and compared against the twelve reference baselines under identical sample IDs and metrics.
- Temporal and CWE-family splits become standard stress tests for whether models transfer across time and vulnerability families.
- Cross-language claims about leakage inflation can now be checked on enterprise Java as well as on C/C++.
Where Pith is reading between the lines
- If fix-line labels systematically miss semantic vulnerability sites, part of the measured F1 gap may be label noise rather than pure leakage; re-labeling with static-analysis oracles would separate the two.
- The same risky-versus-clean audit discipline could be required for any LLM security benchmark whose test CVEs predate model cutoffs.
- Stronger cross-project near-duplicate removal beyond Jaccard 0.8 might further enlarge the random-to-project gap and tighten the case against random splits.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The manuscript introduces JavaVulBench, a Java-focused vulnerability-detection benchmark of ~30,600 methods from 1,740 CVEs across 700+ projects, with method- and line-level labels, CVE publication dates, and five shipped split strategies (random, project-disjoint, temporal, deduplicated, CWE-family). It also contributes a unified multi-backend evaluation harness (HuggingFace encoders, Ollama local generative models, OpenRouter API LLMs) under a single LlmPrediction schema, twelve reference detectors, and a per-model pre-training contamination audit that partitions test CVEs into risky vs. clean subsets. Three validation studies support the central methodological claim that, on Java, split strategy is a first-class property of reported detection numbers: Table 1 shows large F1 drops from random to project-disjoint (e.g., UniXcoder 0.446→0.298; GraphCodeBERT 0.343→0.256; CodeBERT collapse), Tables 2–3 give full-set encoder and cost-matched API baselines, and Table 4 reports leakage-aware F1. Data, code, checkpoints, and a Dockerised reproduction pipeline are archived on Zenodo.
Significance. If the results hold, this is a practically useful infrastructure contribution for Java vulnerability detection research. Existing Java resources (Vul4J, VJBench, CWE-Bench-Java, CVEfixes-Java) do not jointly provide explicit negatives, line labels, multiple realistic splits, a multi-backend harness, and contamination auditing; Table 5 makes that gap concrete. Reproducing Chakraborty et al.’s random-vs-project leakage effect on Java is an important empirical service to the community and justifies treating project-disjoint as the default headline split. Strengths that should be credited explicitly include: the self-contained Zenodo artifact with fine-tuned checkpoints and one-command reproduction; the unified LlmPrediction interface that makes cross-backend comparison under identical sample_ids feasible; the shipped contamination audit with clean-subset reporting expectations; and the transparent cost-control design (200-sample stratified API probe). These are the right kind of deliverables for a benchmark/artifact paper.
major comments (2)
- [§2 Splits / §6 Limitations] §2 (Splits) and §6 (Limitations): one of the five advertised “realistic split strategies” is the deduplicated split, but the Limitations section states it is “currently equivalent to random at Jaccard 0.8.” That undercuts contribution (i) as written. Either strengthen near-duplicate detection (e.g., cross-project clone/AST/embedding-based filters) so the split is meaningfully distinct, or reframe the contribution as four primary realistic splits plus a near-duplicate diagnostic, and move the Jaccard-0.8 result into the main validation narrative rather than only the limitations.
- [§4.1 Table 1 / §4.2 Tables 2–3] §4.1 Table 1 and §4.2 Tables 2–3: the headline random→project F1 gaps and the API ranking rest on single-point estimates without uncertainty (no bootstrap CIs, no multi-seed fine-tunes, no probe resampling). CodeBERT’s F1=0.000 at the default 0.5 threshold is explained as majority-class collapse, and PR-AUC is correctly noted as still informative, but the paper’s recommendation that “project-disjoint should be the default headline split” would be more robust if the authors reported (i) threshold-swept or PR-AUC-selected operating points for the collapsed encoder and (ii) at least interval estimates for the 200-sample API probe. Without that, small absolute differences among API models (e.g., GPT-4o 0.419 vs Claude 0.416) cannot be interpreted as stable rankings.
minor comments (7)
- [Abstract] Abstract and title block: the YouTube demonstration URL is duplicated (once with escaped underscore and once plain). Clean to a single canonical link.
- [§3 Metrics] §3 Metrics: ECE is cited as “ECE [?]” with a missing bibliography entry. Add the standard Expected Calibration Error reference and complete the citation.
- [§2 Labelling] §2 Labelling: the negative-sampling ratios (same-file 3:1, same-project 2:1, random-project 1:1) are free design choices. A short sensitivity note (or appendix table) showing that the random→project F1 gap direction is stable under alternate ratios would help readers who worry that negatives drive the gap.
- [Table 1] Table 1: DeepSeek-Coder-1.3B has “–” for CWE-family while other models report numbers. State explicitly whether the model was not evaluated on that split or whether the run failed, so the table is self-contained.
- [Table 4] Table 4: several API models have “—” for Risky/Clean counts while still reporting F1 all / F1 clean. Either fill the partition counts for the probe or clarify that those rows are probe-only without full-split audit counts.
- [§6 / Table 5] §6 Positioning: the comparison table is helpful; a one-sentence note on whether JavaVulBench methods overlap with Vul4J/VJBench CVE sets would help users who want to combine repair and detection benchmarks.
- [Table 1 caption] Minor prose: “are distributed with the artifact” in the Table 1 caption is slightly awkward; “shipped with the artifact” matches the rest of the paper’s wording.
Circularity Check
No significant circularity: empirical artifact paper whose metrics and split-impact claims are measured on held-out data, not reduced to inputs by construction.
full rationale
JavaVulBench is a dataset-and-harness release, not a first-principles derivation. The load-bearing claim (project-disjoint vs random F1 drop on Java, Tables 1–2) is an empirical measurement of standard classification metrics (F1, MCC, PR-AUC, ECE, Brier) on held-out splits constructed from external CVE/fix-commit sources; the same labelling pipeline is applied uniformly, so the ranking is not forced by definition. The contamination audit partitions by external CVE publication dates versus stated model cutoffs and reports clean-subset F1 without redefining success. Citations to Chakraborty et al. [5] supply an external C/C++ precedent that is independently falsifiable; the authors’ own Zenodo archive [31] is the artifact itself, not a load-bearing uniqueness theorem or ansatz. No self-definitional loop, fitted-parameter-as-prediction, or renaming of a known result appears in the derivation chain. Score 0 is therefore the correct outcome.
Axiom & Free-Parameter Ledger
free parameters (5)
- Jaccard near-duplicate threshold =
0.8
- Negative sampling ratios =
3:1 / 2:1 / 1:1
- Temporal split cutoff =
train <2023; test ≥2023-07
- API evaluation probe size and seed =
N=200, seed=42
- Default classification threshold =
0.5
axioms (5)
- domain assumption CVE records merged from NVD, GitHub Advisories, and CVEfixes, resolved to fix commits, correctly identify security-relevant vulnerable methods after noise filtering of test/format/refactor commits.
- domain assumption Developer-edited lines in fix commits are a sufficient approximation of vulnerable lines for localization metrics.
- domain assumption Constructed negatives (same file/project/random project) are non-vulnerable for binary detection evaluation.
- domain assumption Model pre-training cutoffs used in the contamination audit correctly separate potentially memorized vs post-cutoff CVEs.
- standard math Standard classification and calibration metrics (F1, MCC, PR-AUC, ECE, Brier) are appropriate summaries under class imbalance for comparing detectors.
invented entities (3)
-
JavaVulBench corpus + five shipped split strategies
independent evidence
-
Unified LlmPrediction multi-backend harness
independent evidence
-
Per-model risky/clean contamination partition
independent evidence
read the original abstract
We release \textsc{JavaVulBench}, a benchmark dataset and evaluation harness for Java vulnerability detection. The dataset contains $\sim$30{,}600 Java methods spanning 1{,}740 CVEs and 700+ projects, labelled at both method and line granularity, with per-CVE publication dates and five realistic split strategies: random, project-disjoint, temporal, deduplicated, and unseen CWE-family. The harness provides a single \texttt{LlmPrediction} schema across three backend families (encoder classifiers, local generative models served by Ollama, and API-served LLMs routed through OpenRouter) so that twelve reference detectors CodeBERT, GraphCodeBERT, UniXcoder, DeepSeek-Coder-1.3B, and eight API/open-weight LLMs (GPT-4o, GPT-4.1-mini, Claude Sonnet~4, DeepSeek-v3, DeepSeek-Coder-v2, Qwen-2.5-Coder-14B/7B, CodeLlama-13B) are evaluated under identical conditions from a single command. A pre-training contamination audit is shipped alongside every model so users can separate genuinely unseen test CVEs from potentially memorised ones. Data, code, and fine-tuned checkpoints are archived on Zenodo [31] and short demonstration video is available on YouTube (https://www.youtube.com/watch?v=nMTX\_hqkuoM) https://www.youtube.com/watch?v=nMTX_hqkuoM.
Reference graph
Works this paper leans on
-
[1]
Guru Bhandari, Amara Naseer, and Leon Moonen. 2021. CVEfixes: Automated Collection of Vulnerabilities and Their Fixes from Open-Source Software. In 17th International Conference on Predictive Models and Data Analytics in Software Engineering (PROMISE). ACM, 30–39. doi:10.1145/3475960.3475985
-
[2]
Glenn W. Brier. 1950. Verification of Forecasts Expressed in Terms of Probability. Monthly Weather Review78, 1 (1950), 1–3
1950
-
[3]
Max Brunsfeld. 2018. Tree-sitter: An Incremental Parsing System for Program- ming Tools. InStrange Loop Conference. https://tree-sitter.github.io/tree-sitter/
2018
-
[4]
Quang-Cuong Bui, Riccardo Scandariato, and Nicolás E. Díaz Ferreyra. 2022. Vul4J: A Dataset of Reproducible Java Vulnerabilities Geared Towards the Study of Program Repair Techniques. In19th International Conference on Mining Software Repositories (MSR). ACM, 464–468. doi:10.1145/3524842.3528482
-
[5]
Saikat Chakraborty, Rahul Krishna, Yangruibo Ding, and Baishakhi Ray. 2022. Deep Learning Based Vulnerability Detection: Are We There Yet?IEEE Trans- actions on Software Engineering48, 9 (2022), 3280–3296. doi:10.1109/TSE.2021. 3087402
doi:10.1109/tse.2021 2022
-
[6]
Gordon V. Cormack, Charles L. A. Clarke, and Stefan Büttcher. 2009. Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods. In32nd International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR). ACM, 758–759. doi:10.1145/1571941.1572114
-
[7]
DeepSeek-AI. 2024. DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence.arXiv preprint arXiv:2406.11931(2024)
Pith/arXiv arXiv 2024
-
[8]
DeepSeek-AI. 2024. DeepSeek-V3 Technical Report.arXiv preprint arXiv:2412.19437(2024)
Pith/arXiv arXiv 2024
-
[9]
Jiahao Fan, Yi Li, Shaohua Wang, and Tien N. Nguyen. 2020. A C/C++ Code Vulnerability Dataset with Code Changes and CVE Summaries. In17th In- ternational Conference on Mining Software Repositories (MSR). ACM, 508–512. doi:10.1145/3379597.3387501
-
[10]
Zhangyin Feng, Daya Guo, Duyu Tang, Nan Duan, Xiaocheng Feng, Ming Gong, Linjun Shou, Bing Qin, Ting Liu, Daxin Jiang, and Ming Zhou. 2020. CodeBERT: A Pre-Trained Model for Programming and Natural Languages. InFindings of the Association for Computational Linguistics: EMNLP 2020. ACL, 1536–1547. doi:10.18653/v1/2020.findings-emnlp.139
-
[11]
Timnit Gebru, Jamie Morgenstern, Briana Vecchione, Jennifer Wortman Vaughan, Hanna Wallach, Hal Daumé III, and Kate Crawford. 2021. Datasheets for Datasets. Commun. ACM64, 12 (2021), 86–92. doi:10.1145/3458723
doi:10.1145/3458723 2021
-
[12]
GitHub. 2024. GitHub Security Advisories Database. https://github.com/ advisories
2024
-
[13]
Daya Guo, Shuai Lu, Nan Duan, Yanlin Wang, Ming Zhou, and Jian Yin. 2022. UniXcoder: Unified Cross-Modal Pre-training for Code Representation. In60th Annual Meeting of the Association for Computational Linguistics (ACL). ACL, 7212–7225. doi:10.18653/v1/2022.acl-long.499
-
[14]
Daya Guo, Shuo Ren, Shuai Lu, Zhangyin Feng, Duyu Tang, Shujie Liu, Long Zhou, Nan Duan, Alexey Svyatkovskiy, Shengyu Fu, Michele Tufano, Shao Kun Deng, Colin Clement, Dawn Drain, Neel Sundaresan, Jian Yin, Daxin Jiang, and Ming Zhou. 2021. GraphCodeBERT: Pre-training Code Representations with Data Flow. InInternational Conference on Learning Representati...
2021
-
[15]
Daya Guo, Qihao Zhu, Dejian Yang, Zhenda Xie, Kai Dong, Wentao Zhang, Guant- ing Chen, Xiao Bi, Y. Wu, Y. K. Li, Fuli Luo, Yingfei Xiong, and Wenfeng Liang
-
[16]
DeepSeek-Coder: When the Large Language Model Meets Programming – The Rise of Code Intelligence.arXiv preprint arXiv:2401.14196(2024)
Pith/arXiv arXiv 2024
-
[17]
Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, and Weizhu Chen
Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, and Weizhu Chen. 2022. LoRA: Low-Rank Adaptation of Large Language Models. InInternational Conference on Learning Representations (ICLR)
2022
-
[18]
Binyuan Hui, Jian Yang, Zeyu Cui, Jiaxi Yang, Dayiheng Liu, Lei Zhang, Tianyu Liu, Jiajun Zhang, Bowen Yu, Keming Lu, Kai Dang, Yang Fan, Yichang Zhang, An Yang, Rui Men, Fei Huang, Bo Zheng, Yibo Miao, Shanghaoran Quan, Yunlong Feng, Xingzhang Ren, Xuancheng Ren, Jingren Zhou, and Junyang Lin. 2024. Qwen2.5-Coder Technical Report.arXiv preprint arXiv:240...
Pith/arXiv arXiv 2024
-
[19]
Jeff Johnson, Matthijs Douze, and Hervé Jégou. 2021. Billion-scale Similarity Search with GPUs. InIEEE Transactions on Big Data, Vol. 7. IEEE, 535–547. doi:10. 1109/TBDATA.2019.2921572
arXiv 2021
-
[20]
Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, Sebastian Riedel, and Douwe Kiela. 2020. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. InAdvances in Neural Information Processing Systems (NeurIPS)
2020
-
[21]
Ziyang Li, Saikat Dutta, and Mayur Naik. 2024. IRIS: LLM-Assisted Static Analysis for Detecting Security Vulnerabilities.arXiv preprint arXiv:2405.17238(2024)
Pith/arXiv arXiv 2024
-
[22]
Zhongxin Liu, Zhijie Tang, Junwei Zhang, Xin Xia, and Xiaohu Yang. 2024. Pre- training by Predicting Program Dependencies for Vulnerability Analysis Tasks. In46th IEEE/ACM International Conference on Software Engineering (ICSE). ACM, 1–13. doi:10.1145/3597503.3639142
-
[23]
B. W. Matthews. 1975. Comparison of the Predicted and Observed Secondary Structure of T4 Phage Lysozyme.Biochimica et Biophysica Acta (BBA) - Protein Structure405, 2 (1975), 442–451. doi:10.1016/0005-2795(75)90109-9
-
[24]
National Institute of Standards and Technology. 2024. National Vulnerability Database. (2024). https://nvd.nist.gov/
2024
-
[25]
Ollama. 2024. Ollama: Run Large Language Models Locally. https://ollama.com/
2024
-
[26]
OpenAI. 2024. GPT-4o System Card.arXiv preprint arXiv:2410.21276(2024)
Pith/arXiv arXiv 2024
-
[27]
OpenRouter. 2024. OpenRouter: A Unified Interface for LLMs. https://openrouter. ai/
2024
-
[28]
OWASP Foundation. 2021. OWASP Top 10:2021 — The Ten Most Critical Web Application Security Risks. https://owasp.org/Top10/
2021
-
[29]
Nils Reimers and Iryna Gurevych. 2019. Sentence-BERT: Sentence Embeddings Using Siamese BERT-Networks. In2019 Conference on Empirical Methods in Natural Language Processing (EMNLP). ACL, 3982–3992. doi:10.18653/v1/D19- 1410
doi:10.18653/v1/d19- 2019
-
[30]
Stephen Robertson and Hugo Zaragoza. 2009. The Probabilistic Relevance Frame- work: BM25 and Beyond.Foundations and Trends in Information Retrieval3, 4 (2009), 333–389. doi:10.1561/1500000019
-
[31]
Baptiste Rozière, Jonas Gehring, Fabian Gloeckle, Sten Sootla, Itamar Gat, Xi- aoqing Ellen Tan, Yossi Adi, Jingyu Liu, Tal Remez, Jérémy Rapin, Artyom Kozhevnikov, Ivan Evtimov, Joanna Bitton, Manish Bhatt, Cristian Canton Ferrer, Aaron Grattafiori, Wenhan Xiong, Alexandre Défossez, Jade Copet, Faisal Azhar, Hugo Touvron, Louis Martin, Nicolas Usunier, T...
Pith/arXiv arXiv 2023
-
[32]
Norbert Sándor Szolnoki and Gábor Antal. 2026.JavaVulBench: A Java Vulner- ability Benchmark with Realistic Splits, a Unified Multi-Backend Harness, and a Leakage-A ware Evaluation Mode. doi:10.5281/zenodo.20110174
-
[33]
Yi Wu, Nan Jiang, Hung Viet Pham, Thibaud Lutellier, Jordan Davis, Lin Tan, Petr Babkin, and Saheed Shah. 2023. How Effective Are Neural Networks for Fixing Security Vulnerabilities. In32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA). ACM, 1282–1294. doi:10.1145/3597926. 3598135
doi:10.1145/3597926 2023
-
[34]
Yaqin Zhou, Shangqing Liu, Jingkai Siow, Xiaoning Du, and Yang Liu. 2019. Devign: Effective Vulnerability Identification by Learning Comprehensive Pro- gram Semantics via Graph Neural Networks. InAdvances in Neural Information Processing Systems (NeurIPS). 10197–10207
2019
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.