首页 > 编程语言 >IDEA Rebuild项目错误:Information:java: java.lang.AssertionError: Value of x -1

IDEA Rebuild项目错误:Information:java: java.lang.AssertionError: Value of x -1

时间:2023-03-25 11:33:23浏览次数:38  
标签:lang Information java javac sun tools com

模仿lombok工具,我的enumgen工具写完了。

IDEA Rebuild项目错误:Information:java: java.lang.AssertionError: Value of x -1_Java

 

 

公司的项目emax-rpcapi-list依赖了enumgen后,IDEARebuild Project时,或者maven package/install的时候,出现报错→Information:java: java.lang.AssertionError: Value of x -1

这个错误让我有点摸不着头脑。因为我自己的demo项目在依赖了enumgen是可以正常使用的。

仔细分析错误堆栈,注意到 visitClassDef、visitMethodDef 这些关键字。由于emax-rpcapi-list和我的demo项目同时也都依赖了lombok,直觉分析是enumgen与lombok产生冲突。我去修改我的注解处理器实现逻辑,去尝试解决,未能修复。中间排查过程相当曲折。最后在比对emax-rpcapi-list和我的demo工程时,才有了转机。

各种排查、各种试错,最后的解决办法有2个。

  • 第一个是调整maven dependencies依赖顺序。我的要在lombok的前面先行依赖enumgen。
  • 第二个是lombok版本兼容性。lombok版本1.18.20是有问题的,升级lombok的版本到1.18.24,就可以了。

此问题网上资料较少,在sun平台有提问,但是没有结果。

 

下面贴出来build时关于这个错误的详细信息:

Information:java: 编译器 (1.8.0_241) 中出现异常错误。如果在 Bug Database (http://bugs.java.com) 中没有找到该错误, 请通过 Java Bug 报告页 (http://bugreport.java.com) 建立该 Java 编译器 Bug。请在报告中附上您的程序和以下诊断信息。谢谢。
Information:java: java.lang.AssertionError: Value of x -1
Information:java:     at com.sun.tools.javac.util.Assert.error(Assert.java:133)
Information:java:     at com.sun.tools.javac.util.Assert.check(Assert.java:94)
Information:java:     at com.sun.tools.javac.util.Bits.incl(Bits.java:186)
Information:java:     at com.sun.tools.javac.comp.Flow$AssignAnalyzer.initParam(Flow.java:1858)
Information:java:     at com.sun.tools.javac.comp.Flow$AssignAnalyzer.visitMethodDef(Flow.java:1807)
Information:java:     at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
Information:java:     at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
Information:java:     at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:404)
Information:java:     at com.sun.tools.javac.comp.Flow$AssignAnalyzer.scan(Flow.java:1382)
Information:java:     at com.sun.tools.javac.comp.Flow$AssignAnalyzer.visitClassDef(Flow.java:1749)
Information:java:     at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)
Information:java:     at com.sun.tools.javac.comp.Flow$AssignAnalyzer.analyzeTree(Flow.java:2446)
Information:java:     at com.sun.tools.javac.comp.Flow$AssignAnalyzer.analyzeTree(Flow.java:2429)
Information:java:     at com.sun.tools.javac.comp.Flow.analyzeTree(Flow.java:211)
Information:java:     at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1327)
Information:java:     at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1296)
Information:java:     at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)
Information:java:     at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)
Information:java:     at com.sun.tools.javac.main.Main.compile(Main.java:523)
Information:java:     at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
Information:java:     at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
Information:java:     at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:207)
Information:java:     at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:493)
Information:java:     at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:345)
Information:java:     at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:270)
Information:java:     at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:223)
Information:java:     at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1414)
Information:java:     at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1092)
Information:java:     at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1159)
Information:java:     at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1053)
Information:java:     at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:882)
Information:java:     at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:449)
Information:java:     at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:190)
Information:java:     at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138)
Information:java:     at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:297)
Information:java:     at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:130)
Information:java:     at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:218)
Information:java:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
Information:java:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
Information:java:     at java.lang.Thread.run(Thread.java:748)
Information:java: Errors occurred while compiling module 'zhenghe-rpcapistyle'
Information:javac 1.8.0_241 was used to compile java sources
Information:2023/3/20 20:57 - Build completed with 1 error and 0 warnings in 5 s 993 ms
Error:java: Compilation failed: internal java compiler error

 


当看到一些不好的代码时,会发现我还算优秀;当看到优秀的代码时,也才意识到持续学习的重要!




标签:lang,Information,java,javac,sun,tools,com
From: https://blog.51cto.com/u_15708799/6149003

相关文章

  • Java环境变量了解及配置
    1.JDK这个是首先要了解的知识JDK:Java开发工具包,是学习java必须安装的的软件JDK包括Java开发工具和JRE(Java运行环境)JRE又包括基础类库和JVM虚拟机正是有各种操作系统......
  • CentOS 7.8配置Java环境
    一、安装CentOS7.8关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld关闭SELINUXsetenforce0vi/etc/selinux/config将SELINUX=enforcing改为......
  • SAP UI5 本地开发如何实现 XML 和 JavaScript 代码的自动完成和嵌入式 API 文档自动显
    文章目录本文写作动机XML视图元素的文档显示控制器里JavaScript代码的API文档JavaScript控制器代码里方法的自动提示和补全功能UI5ExplorerXML视图里元素名称的自......
  • Visual Studio Code UI5 Language Assistant 扩展介绍
    VisualStudioCodeUI5LanguageAssistant的功能有哪些?打开/编辑相关SAPUI5源文件时,此扩展的功能会自动启用。对于SAPUI5XML视图,这意味着:*.view.xml或*.fragme......
  • Jmeter压测报错java.net.BindException: Address already in use: connect
    压力测试并发较高时候,可能会出现Addressalreadyinuse异常java.net.BindException:Addressalreadyinuse:connect atjava.base/java.net.PlainSocketImpl.connect......
  • Java 原子类
    Java内部提供了两种方式来解决线程安全问题,一种是加入synchronized关键字,另一种则是使用Lock锁。虽然说这两种方式都能解决掉线程安全的问题,但是在某些场景下会稍微有......
  • 学习 React 需要具备的 JavaScript 知识
    学习React需要具备的JavaScript知识为什么要学习React?React可以与任何其他库或框架无缝集成,因为React是一个仅视图库(它是ModelViewControlerMVC架构UI......
  • 读Java性能权威指南(第2版)笔记27_线程和同步性能上
    1. 线程和硬件1.1. 给CPU增加超线程并不能使应用程序性能翻倍2. 线程池2.1. 任务被提交到一个队列(可能有不止一个队列),然后一定数量的线程会从队列中取出任务并执行......
  • Java书城项目Sevelet基本逻辑介绍(增删改查)
    书城项目登录dao接口:UserDaoUserslogin(Stringusername,Stringpassword);实现:UserDaoImplQueryRunnerqueryrunner=newQueryRunner();Connectionconnection......
  • 闭关学java第三天
    包机制包机制语法格式为:packagepkg1[.pak2[.pak3...]]一般利用公司域名倒置作为包名;为了能够使用某个包的成员,我们需要再java程序中明确导入该包,使用“import......