Skip to content

[BUG] Inconsistent Java points-to graph and grammar conventions across 21 datasets #136

Description

@homka122

Describe the bug

The 21 Java datasets contain 42 java_points_to*.cnf files, but fall into two groups:

Datasets Grammar templates Downloaded graphs
14: avrora, batik, eclipse, fop, h2, jython, luindex, lusearch, pmd, sunflow, tomcat, tradebeans, tradesoap, xalan Use load/store and unindexed intermediate nonterminals Indexed forward edges; no reverse edges
7: commons_io, commons_lang3, gson, guava, jackson, junit5, mockito Use _i for indexed terminals and intermediate nonterminals Indexed forward edges and already-added reverse edges

The documentation assigns reverse-edge augmentation to the user. The absence of reverse edges in the first group is expected. Their presence in the second group means that applying cfpq_data.add_reverse_edges() also reverses edges that are already reverse edges. For example, a graph containing load_2 and load_r_2 gains load_2_r and load_r_2_r.

To Reproduce

  1. With CFPQ_Data 5.0.0, download avrora and gson using cfpq_data.download(...).
  2. Inspect their graph labels and both supplied java_points_to*.cnf files.
  3. Observe that avrora has only forward edges, while gson already has reverse edges such as load_r_2.
  4. Apply cfpq_data.add_reverse_edges() to the gson graph and inspect the resulting labels.

Expected behavior

Synchronize the Java graph archives, grammar conventions, and documentation. If users are expected to add reverse edges, downloaded graphs should consistently contain only forward edges, so augmentation is applied exactly once. Document how both grammar-template notations are materialized and which reverse-label naming convention should be used.

Desktop

  • OS: Fedora Linux 44 (Sway), x86_64
  • CPU: AMD Ryzen 5 5500U
  • RAM: 14 GiB
  • CFPQ_Data: 5.0.0
  • Python in project .venv: 3.13.13

Screenshots

Image

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions