論文の概要: Scalable Thread-Safety Analysis of Java Classes with CodeQL
- arxiv url: http://arxiv.org/abs/2509.02022v1
- Date: Tue, 02 Sep 2025 07:11:18 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-09-04 15:17:03.93386
- Title: Scalable Thread-Safety Analysis of Java Classes with CodeQL
- Title(参考訳): CodeQLによるJavaクラスのスケーラブルスレッドセーフティ解析
- Authors: Bjørnar Haugstad Jåtten, Simon Boye Jørgensen, Rasmus Petersen, Raúl Pardo,
- Abstract要約: 本稿では,Javaクラスにおけるスレッドセーフ性を分析するための,高度にスケーラブルな手法を提案する。
私たちは、Javaメモリモデルの正確性原理に基づいて構築されたJavaクラスに対して、スレッドセーフティの定義を提供します。
静的解析ツールCodeQLにこれらのプロパティをエンコードして、Javaソースコードを自動的に解析します。
- 参考スコア(独自算出の注目度): 0.0
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: In object-oriented languages software developers rely on thread-safe classes to implement concurrent applications. However, determining whether a class is thread-safe is a challenging task. This paper presents a highly scalable method to analyze thread-safety in Java classes. We provide a definition of thread-safety for Java classes founded on the correctness principle of the Java memory model, data race freedom. We devise a set of properties for Java classes that are proven to ensure thread-safety. We encode these properties in the static analysis tool CodeQL to automatically analyze Java source code. We perform an evaluation on the top 1000 GitHub repositories. The evaluation comprises 3632865 Java classes; with 1992 classes annotated as @ThreadSafe from 71 repositories. These repositories include highly popular software such as Apache Flink (24.6k stars), Facebook Fresco (17.1k stars), PrestoDB (16.2k starts), and gRPC (11.6k starts). Our queries detected thousands of thread-safety errors. The running time of our queries is below 2 minutes for repositories up to 200k lines of code, 20k methods, 6000 fields, and 1200 classes. We have submitted a selection of detected concurrency errors as PRs, and developers positively reacted to these PRs. We have submitted our CodeQL queries to the main CodeQL repository, and they are currently in the process of becoming available as part of GitHub actions. The results demonstrate the applicability and scalability of our method to analyze thread-safety in real-world code bases.
- Abstract(参考訳): オブジェクト指向言語では、開発者は並列アプリケーションを実装するためにスレッドセーフクラスに依存する。
しかし、クラスがスレッドセーフかどうかを決定することは難しいタスクである。
本稿では,Javaクラスにおけるスレッドセーフ性を分析するための,高度にスケーラブルな手法を提案する。
我々は、Javaメモリモデルの正確性原則、データ競合の自由性に基づいて構築されたJavaクラスに対して、スレッドセーフティの定義を提供します。
スレッドセーフ性を保証することが証明されたJavaクラスのプロパティセットを考案しました。
これらのプロパティを静的解析ツールのCodeQLにエンコードして、Javaソースコードを自動的に解析します。
トップ1000のGitHubリポジトリで評価を行います。
評価は3632865のJavaクラスから成っており、1992年のクラスは71リポジトリから@ThreadSafeとしてアノテートされている。
これらのリポジトリには、Apache Flink (24.6k星)、Facebook Fresco (17.1k星)、PrestoDB (16.2k星)、gRPC (11.6k星)などの人気の高いソフトウェアが含まれている。
私たちのクエリは何千ものスレッドセーフティエラーを検出しました。
クエリの実行時間は、200k行までのコード、20kメソッド、6000フィールド、1200クラスのリポジトリで2分以下です。
我々は検出された同時実行エラーをPRとして提案し、開発者はこれらのPRに対して肯定的な反応を示した。
CodeQLのクエリをメインのCodeQLリポジトリに送信しました。
その結果,実世界のコードベースにおけるスレッド安全性を解析するために,本手法の適用性と拡張性を示した。
関連論文リスト
- SwingArena: Competitive Programming Arena for Long-context GitHub Issue Solving [90.32201622392137]
We present SwingArena, a competitive evaluation framework for Large Language Models (LLMs)。
従来の静的ベンチマークとは異なり、SwingArenaはLLMをイテレーションとして組み合わせて、テストケースを作成し、継続的インテグレーション(CI)パイプラインを通じてパッチを検証するパッチとレビュアーを生成することで、ソフトウェアのコラボレーションプロセスをモデル化する。
論文 参考訳(メタデータ) (2025-05-29T18:28:02Z) - CLOVER: A Test Case Generation Benchmark with Coverage, Long-Context, and Verification [71.34070740261072]
本稿では,テストケースの生成と完成におけるモデルの能力を評価するためのベンチマークCLOVERを提案する。
ベンチマークはタスク間でのコード実行のためにコンテナ化されています。
論文 参考訳(メタデータ) (2025-02-12T21:42:56Z) - Evaluating the Dependency Between Cyclomatic Complexity and Response For Class [0.0]
私たちは1,000のGitHubリポジトリから862,517のJavaクラスを分析しました。
以上の結果から, 累積的マッケイブ循環複雑度 (CC) とメソッド数との間には, ピアソンの相関関係が強いことが示唆された。
論文 参考訳(メタデータ) (2024-10-08T23:00:48Z) - JavaVFC: Java Vulnerability Fixing Commits from Open-source Software [5.351340307751831]
Javaの脆弱性修正コミット(VFC)の包括的なデータセットを提示する。
私たちのデータセットは、GitHub上の何千ものオープンソースプロジェクトから派生したもので、JavaVFCとJavaVFC拡張の2つのバリエーションで構成されています。
論文 参考訳(メタデータ) (2024-09-09T13:01:57Z) - CodeRAG-Bench: Can Retrieval Augment Code Generation? [78.37076502395699]
検索拡張生成を用いたコード生成の系統的,大規模な解析を行う。
まず、コード生成タスクの3つのカテゴリを含む総合的な評価ベンチマークであるCodeRAG-Benchをキュレートする。
CodeRAG-Bench上のトップパフォーマンスモデルについて、1つまたは複数のソースから検索したコンテキストを提供することにより検討する。
論文 参考訳(メタデータ) (2024-06-20T16:59:52Z) - Long Code Arena: a Set of Benchmarks for Long-Context Code Models [75.70507534322336]
Long Code Arenaは、プロジェクト全体のコンテキストを必要とするコード処理タスクのための6つのベンチマークスイートである。
これらのタスクは、ライブラリベースのコード生成、CIビルドの修復、プロジェクトレベルのコード補完、コミットメッセージ生成、バグローカライゼーション、モジュールの要約といった、コード処理のさまざまな側面をカバーする。
各タスクに対して、テスト用の手作業によるデータセット、評価スイート、オープンソースのベースラインソリューションを提供しています。
論文 参考訳(メタデータ) (2024-06-17T14:58:29Z) - JavaBench: A Benchmark of Object-Oriented Code Generation for Evaluating Large Language Models [22.95865189208591]
OOP機能を実行するプロジェクトレベルのJavaベンチマークであるJavaBenchを提案する。
106のJavaクラスに389のメソッドを持つ4つのJavaプロジェクトで構成されている。
282人の大学生が合格し、平均スコアは90.93/100である。
論文 参考訳(メタデータ) (2024-06-10T06:43:25Z) - A Language Model of Java Methods with Train/Test Deduplication [5.529795221640365]
このツールデモでは、Javaソースコードの言語モデルの研究ツールキットが紹介されている。
対象読者には、Javaのサブルーチン、ステートメント、変数の粒度レベルでの問題を研究する研究者も含まれる。
論文 参考訳(メタデータ) (2023-05-15T00:22:02Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。