fastjson2
fastjson2 copied to clipboard
[BUG] apt-codegen 生成Writer失败
问题描述
@Getter
@Setter
@JSONCompiled
public class GroupRes2DTO implements Serializable {
@JSONField(name = "group_create_time", format = "unixtime")
private Date name;
}
目前发现只要类中包含这个注解@JSONField(name = "group_create_time")
就无法正常生成相关的FASTJSONReader
和FASTJSONWriter
,测试项目:example-graalvm-native
环境信息
请填写以下信息:
- OS信息: MacOS 14.4.1 M3 Pro
- JDK信息: Oracle GraalVM 21.0.3+7.1 (build 21.0.3+7-LTS-jvmci-23.1-b37)
- 版本信息: FastJSON2 2.0.51
相关日志输出
编译器 (21.0.3) 中出现异常错误。如果在 Bug Database (https://bugs.java.com) 中没有找到有关该错误的 Java 编译器 Bug,请通过 Java Bug 报告页 (https://bugreport.java.com) 提交 Java 编译器 Bug。请在报告中附上您的程序、以下诊断信息以及传递到 Java 编译器的参数。谢谢。
java.lang.NullPointerException: Cannot invoke "com.sun.tools.javac.tree.JCTree.accept(com.sun.tools.javac.tree.JCTree$Visitor)" because "tree" is null
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:662)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:736)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStats(Attr.java:755)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1439)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1092)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:662)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:736)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitIf(Attr.java:2249)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1572)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:662)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:736)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitIf(Attr.java:2261)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1572)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:662)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:736)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStats(Attr.java:755)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1439)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1092)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:662)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:736)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1229)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:916)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:662)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:736)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:5655)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5543)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5367)
at jdk.compiler/com.sun.tools.javac.comp.Attr.visitClassDef(Attr.java:970)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:814)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:662)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:736)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:5655)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5543)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5367)
at jdk.compiler/com.sun.tools.javac.comp.Attr.attrib(Attr.java:5306)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1359)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:976)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:136)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:183)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1140)
at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:193)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:193)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:180)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
[INFO] 由于在类路径中发现了一个或多个处理程序,因此启用了
批注处理。未来发行版的 javac 可能会禁用批注处理,
除非至少按名称指定了一个处理程序 (-processor),
或指定了搜索路径 (--processor-path, --processor-module-path),
或显式启用了批注处理 (-proc:only, -proc:full)。
可使用 -Xlint:-options 隐藏此消息。
可使用 -proc:none 禁用批注处理。
[INFO] /Users/tyler/workspace/Native Image/graalvm-test/src/main/java/cyou/wssy001/TestDTO.java: 某些输入文件使用了未经检查或不安全的操作。
[INFO] /Users/tyler/workspace/Native Image/graalvm-test/src/main/java/cyou/wssy001/TestDTO.java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
[INFO] -------------------------------------------------------------
[WARNING] COMPILATION WARNING :
[INFO] -------------------------------------------------------------
[WARNING] 来自批注处理程序 'com.alibaba.fastjson2.internal.processor.JSONBaseAnnotationProcessor' 的受支持 source 版本 'RELEASE_8' 低于 -source '21'
[WARNING] 来自批注处理程序 'com.alibaba.fastjson2.internal.processor.JSONCompiledAnnotationProcessor' 的受支持 source 版本 'RELEASE_8' 低于 -source '21'