Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

query find calls --class with a dotted Java FQCN returns nothing; slash form matches

Open Beginner friendly
#2,408 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
70/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
java, typescript
Domain
cli

Research direction

Start in packages/cli/src/cmds/query/lib/scope.ts, reading parseClassRef and classFilterClauses, where the dotted name is kept whole and the defined_class fallback is gated on code_object_id IS NULL. Run the two repro commands against a spring-petclinic appmap directory to confirm the dotted form returns no rows. Done means the dotted FQCN returns the same rows as the slash form, and an empty result prints the same diagnostic.hint the MCP tool gives.

Written by the indexing model from the issue text.

Description

Summary

appmap query find calls --class <dotted Java FQCN> returns an empty table for a class that is in the index; the slash-separated form returns rows. For a coverage question, silently answering "never reached" for reached code is the worst available failure, and it is the form Java/Python users will type.

CLI 3.203.0, index of spring-petclinic recordings (Java agent 1.30.1).

Repro

appmap query find calls --appmap-dir tmp/appmap \
  --class org.springframework.samples.petclinic.owner.OwnerRepository
# -> header only

appmap query find calls --appmap-dir tmp/appmap \
  --class org/springframework/samples/petclinic/owner/OwnerRepository
# -> 17 rows, e.g. org/.../owner/OwnerRepository#findById

Cause

In packages/cli/src/cmds/query/lib/scope.ts, parseClassRef treats input without / as short form and keeps dots whole ("Java/Python dot-form class names match the defined_class fallback"). But in classFilterClauses that fallback is gated on code_object_id IS NULL. Java rows are linked to code objects, so matching runs against the normalized columns, where leaf_class is OwnerRepository and the package is slash-separated; the dotted FQCN equals neither and the LIKE '%…%' on leaf_class cannot match it either.

Expected

Normalize . to / for inputs that look like a package path, or let the defined_class fallback run for linked rows. The MCP tool already handles the empty case with suggestSimilarFunctionIds and a diagnostic.hint; the CLI should print the same hint.

Written by Devin

Dominant language
TypeScript
Stars
55
Forks
18
Avg merge
4d 8h
Merged PRs (30d)
3

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from getappmap/appmap-js

All issues in getappmap/appmap-js

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.