Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

parser/java: output instability

未关闭
#95 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
38/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
go, java
领域
compilers

调研方向

构建 abcoder,针对 testdata/java/4_full_maven_repo 运行这两个命令,并使用 script/diffjson.py 比较输出。首先跟踪涉及生成方法名的 parser/java 路径,并将报告的 InMemoryUserRepository 差异作为可复现案例。重复解析能够生成完全相同的 uniASTs 即表示完成。

由索引模型根据 Issue 内容生成。

描述

Describe the bug

The java parser generates different outputs for the same input.

To Reproduce

  1. clone main branch and build abcoder
  2. run abcoder on testdata/java/4_full_maven_repo twice
  3. compare the generated uniasts (using the smart diff script)

Expected behavior

For the same repo, abcoder should generate two identical uniASTs.

Screenshots

[~/Programs/test/arti/java/abcoder]   [main  =]   [05:43:56 PM]   zhenyang
$ git status
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

[~/Programs/test/arti/java/abcoder]   [main  =]   [05:43:57 PM]   zhenyang
$ go build

[~/Programs/test/arti/java/abcoder]   [main  =]   [05:44:02 PM]   zhenyang
$ ./abcoder parse java testdata/java/4_full_maven_repo -o java_1.json
2025/09/26 17:44:13 Using JDTLS_ROOT_PATH from environment: /home/zhenyang/O/data/Programs/bytedance/LanguageServers
[ERROR]17:44:13 client.go:264: LSP server stderr: OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
[ERROR]17:44:14 client.go:264: LSP server stderr: Sep 26, 2025 5:44:14 PM org.apache.aries.spifly.BaseActivator log
[ERROR]17:44:14 client.go:264: LSP server stderr: INFO: Registered provider ch.qos.logback.classic.servlet.LogbackServletContainerInitializer of service jakarta.servlet.ServletContainerInitializer in bundle ch.qos.logback.classic
[ERROR]17:44:14 client.go:264: LSP server stderr: Sep 26, 2025 5:44:14 PM org.apache.aries.spifly.BaseActivator log
[ERROR]17:44:14 client.go:264: LSP server stderr: INFO: Registered provider ch.qos.logback.classic.spi.LogbackServiceProvider of service org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic

[~/Programs/test/arti/java/abcoder]   [main =]   [05:44:47 PM]   zhenyang
$  ./abcoder parse java testdata/java/4_full_maven_repo -o java_2.json >/dev/null 2>&1

[~/Programs/test/arti/java/abcoder]   [main =]   [05:45:06 PM]   zhenyang
$ ./script/diffjson.py java_1.json java_2.json 2>&1 | head

Differences found between 'java_1.json' and 'java_2.json':

Value Changed at: root['Modules']['com.example.test:core-module:1.0.0-SNAPSHOT']['Packages']['com.example.core.repository']['Types']['InMemoryUserRepository']['Methods']['findAll()']['Name']
  - old: 'findAll()'
  + new: 'InMemoryUserRepository.findAll()'
--------------------
Value Changed at: root['Modules']['com.example.test:core-module:1.0.0-SNAPSHOT']['Packages']['com.example.core.repository']['Types']['InMemoryUserRepository']['Methods']['save(User)']['Name']
  - old: 'InMemoryUserRepository.save(User)'
  + new: 'save(User)'
--------------------

Version:

main branch

Environment:

The output of go env.

Additional context

Add any other context about the problem here.

主要语言
Go
星标
391
派生
58
平均合并
2 天 21 小时
30 天内合并 PR
1

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

cloudwego/abcoder 的其他 Issue

查看 cloudwego/abcoder 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。