疑难问题:JDK 1.8 java.lang.IllegalStateException信息排查

idea构建失败notnull问题:Module ‘day23‘ production: java.lang.IllegalStateException: @NotNull method..如何解决? 🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!    📌 特别说明: 文中部分技术问题来源于真实生产环境及网络公开案例,均经过精挑细选与系统化整理,并结合多位一线资深架构师和工程师多年实战经验沉淀,提 阅读详情

背景:生产环境有一个批量创建问文件夹的接口,接口逻辑一次传入多个文件夹名称,去发号器批量申请文件夹id

某个场景下前端入参的文件夹名称重复,导致服务端报错如下

代码:

public class MyTest {
    public static void main(String[] args) {
        List<mydto> mydtoList= new ArrayList<>(2);
        mydto a = new mydto();
        a.setId(100L);
        a.setName("a");

        mydto b = new mydto();
        b.setId(101L);
        b.setName("a");
        mydtoList.add(a);
        mydtoList.add(b);

        Map<String,Long> d =mydtoList.stream().collect(Collectors.toMap(mydto::getName,mydto::getId));
    }

}

class mydto {

    private String name;

    private Long id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

}

Exception in thread "main" java.lang.IllegalStateException: Duplicate key 100
	at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133)
	at java.util.HashMap.merge(HashMap.java:1256)
	at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320)
	at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
	at com.fancv.MyTest.main(MyTest.java:21)

神奇的报错信息

jdk 1.8 的报错信息有误导性性, Duplicate key 100,让人容易理解 id重复了,事实上是 name 重复了,可能是幸运女神眷顾,在整个业务场景下爆出这错,团队成员都误认为是id重复了,耽误了半天时间,后边证实是 name重复了

相比之下 jdk 11 的提示信息友好很多

Exception in thread "main" java.lang.IllegalStateException: Duplicate key a (attempted merging values 102 and 101)
	at java.base/java.util.stream.Collectors.duplicateKeyException(Collectors.java:133)
	at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180)
	at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at com.fancv.MyTest.main(MyTest.java:21)

排查问题的思考

jdk1.8 的报错信息已经定位到具体行数,根据上下文可以推理出不可能id重复,如果是其他业务场景和id没关系,追到这也就可以了
排查问题尽可能的还原现场,排除干扰, 有自己的判断,当然基础是自己技术扎实。

有条件的团队尽快升级jdk11,时间拖得越久,升级的成本越大。

ABAP内表数据导出Excel:OLE、ALV与GUI_DOWNLOAD方案全解析 在企业级应用开发中,数据导出是连接后台系统与前端业务分析的关键桥梁。其核心原理是将结构化数据转换为通用文件格式,以实现跨平台的数据交换与可视化。从技术价值看,一个健壮的导出功能能显著提升数据处理效率,减少人工干预,是衡量系统实用性的重要指标。常见的应用场景包括报表生成、数据交接和临时数据提取。本文聚焦于SAP ABAP开发领域,深入探讨如何将内表数据高效、稳定地导出至Excel,涵盖了OLE自动化、ALV标准导出以及基于CL_GUI_FRONTEND_SERVICES与GUI_DOWNLOAD的通用方案,并 阅读详情

相关推荐

宇树智能人形机器人模块化腿部动力系统技术拆解

o电机防摔防护板(3.1.5.1)→端盖总成(3.1.5.2)→电机外壳(3.1.5.4)的冲击力传递路径;o散热风扇(3.1.3.1)推动冷风→大腿基座腔体→散热片组(3.1.5.7)→中空大腿杆排出;o防御专利:覆盖“关节热管理风道接口标准”、“抗冲击结构身份编码”;o大腿杆腔体(3.1.3.4)内置反平行四边形机构,避免连杆外露。:力传感器(3.1.8.4.2)仅部署于足端,缺失关节力矩反馈。:更换行星减速器(3.1.5.5)需拆解整个电机模块;o热量传导路径:电机定子→外壳→散热片组。

weixin_50955533的博客 1232

java.lang.IllegalStateException异常:简单分析和简单解决方案

今天写java文件下载程序,完成后使用一切正常,但是总抛出java.lang.IllegalStateException异常,虽然并不影响正常使用,但看了总让人觉得很不舒服,检查代码并没有错,最后上网查了不少资料,终于发现原因之所在。 我们在做文件上传或者下载,或者过滤等操作时,可能要用到页面的输出流.例如在action中使用:    response.reset();    response....

自由时飞扬 搬家拉 http://www.meiriyouke.net 3425

【Ultrascale+ MPSOC学习记录】10、PS端以太网使用lwip

还是参考ALINX教程,学习PS端以太网如何使用,从教程中可以看到,开发板使用了一个xilinx默认不支持的phy JL2121,所以需要修改lwip的库源码。

ryo891012的博客 880

深入解析java.lang.IllegalStateException异常

是Java中的一个非受检异常,它表示在不适当的时间或状态下调用方法。日志记录工具:如Log4j、Logback等,可以记录异常信息和错误日志,方便排查和分析问题。断言工具:如Assert类,可以在程序中添加断言语句,用于验证代码中的假设条件是否满足,帮助我们在开发和测试阶段快速发现问题。异常处理框架:如Spring框架中的异常处理机制,可以统一处理应用程序中的异常,提供统一的异常处理逻辑和错误信息返回。异常是程序中常见的错误和异常情况,合理处理异常对于保证程序的正确性和稳定性非常重要。

博客 4万+

COMSOL报错调试总结(不定期更新)

COMSOL报错调试总结1. 可定位错误1.1 除零错误1.2 未定义变量值1.3 边界条件/材料属性等缺失2. 难定位错误2.1. 装配期间内存不足 官方给的案例总是非常完美,运行流畅,结果完美。但是自己做模型时候就总是报错,而且不像自己coding的程序那样可以明确定位哪里出了bug。这里把我碰到的一些报错问题以及调试方法记录下来~ 部分来源于以下参考来源: http://wap.sciencenet.cn/blog-1467490-1118453.html?mobile=1 1. 可定位错误 以下错误

jessica0307的博客 8万+

统信UOS系统盘扩容保姆级教程:用GParten-分区编辑器5分钟搞定

本文提供统信UOS系统盘扩容的详细图形化教程。针对系统盘空间不足问题,重点介绍如何使用系统自带的GParten-分区编辑器,在5-10分钟内安全、直观地完成扩容操作,无需记忆复杂命令,适合所有用户快速解决存储空间告急的困扰。

e3f4g5的博客 640

java.lang.IllegalStateException异常产生的原因及解决办法

问题描述: 错误类型大致为以下几种: java.lang.IllegalStateException:Cannot   forward   a   response   that   is   already   committed  IllegalStateException:response already commited  IllegalStateException

冷月宫主的专栏 1万+

采购订单定价策略 超详细

‘需求’字段里填写的是一个例程编号(例程是一段判断程序),如果我们在需求中维护了例程编号,那只有这个例程条件被满足时,这个条件表才会被系统自动读取。一部分的条件表只有在凭证项目满足一定的条件时才会被读取。 ‘排斥的’字段如果别勾中的话,那表明如果这个条件表被系统成功读取到数据后,系统将停止这个存取顺序的执行,否则,系统将继续执行下去。 注意:a、如果我们给某个条件类型设定了有效期的话,那我们必须给这个条件类型分配一个存取顺序。 b、不能给一个抬头条件分配存取顺序。 是...

竹大的博客 1万+

org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method [manageApp]

这是一个低级的错误,越想越气。 错误原因:粗心 出现的具体bug描述 21-Dec-2019 20:52:44.741 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method [manageApp] java.lang.I...

@起风了的博客 5417

CVE-2017-7921漏洞深度剖析:从身份验证绕过到实战复现与防御

身份验证是Web应用安全的核心防线,其逻辑缺陷可能导致严重的未授权访问。身份验证绕过漏洞的原理在于,应用程序对特定请求路径或API接口的访问控制策略存在疏漏,未能执行有效的会话或令牌校验。这类漏洞的技术价值在于,攻击者无需凭证即可直接访问受保护的后端资源,从而获取敏感信息或执行未授权操作,对系统机密性、完整性构成直接威胁。在物联网和安防监控领域,大量网络摄像头、录像机等设备暴露于公网,其Web管理界面便成为常见攻击面。本文聚焦于安防设备中一个经典的CVE-2017-7921身份验证绕过漏洞,通过剖析其技术原

WGH100817的博客 469

C#怼倍福TwinCAT3:ADS协议封装实战(附完整读写源码+避坑清单)

变量名大小写敏感:PLC里定义的是GVL.bStart,你写GVL.BStart绝对读不到;数组访问格式:PLC数组是,C#里读单个元素要写,读整个数组不用写索引;句柄要释放:用创建的句柄,一定要用using包起来,否则会占着资源;PLC必须运行:哪怕变量定义对了,PLC没Run(只是Login)也读不到数据;路由配置:如果上位机和PLC不在一个网段,要在TwinCAT3里添加路由(Router→Edit Routes)。倍福ADS通信其实不难,核心就是“配置对+变量名写对+数据类型匹配”。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 948

java.lang.IllegalStateException问题的发现与解决

以上的报错信息挨个查找,分别汇总为以下可能情况 1、tomcat 自启动问题 ,将server.xml重新配置为 reload=false ,依旧没有解决问题 2、内存溢出,将Tomact的内存设置变大以后,依旧没有解决的问题 3、类丢失,尝试重新加载JAR包,包括项目和Tomact的,依旧没有解决的问题 解决方案: 上面的报错信息看上去特别像是没有找到类,但是实

SinsiWoo的博客 3万+

conda install出现CondaValueError: Malformed version string invalid character(s)解决方案

本文主要介绍了conda install出现Solving environment:failed、CondaValueError: Malformed version string invalid character(s),希望能对新手有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 步骤一 2.2 步骤二 2.3 步骤三

weixin_43178406的博客 6万+

使用Servlet3.0 java.lang.IllegalStateException: !asyncSupported

使用Servlet3.0 java.lang.IllegalStateException: !asyncSupported

timebusker 1484

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Caused by: java.lang.IllegalStateException: 由于StackOverflower错误,无法完成

Caused by: java.lang.IllegalStateException: 由于StackOverflower错误,无法完成

阿宣的博客 6507

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

代码环境无更改,报:java.lang.IllegalStateException 错误

昨天下午项目突然报错java.lang.IllegalStateException,代码环境没有任何变动,网上搜索各种答案,大多数解决方案说本地代码没有问题,删除tomcat,项目从新部署,都试了,没有用,自己尝试重新拉取git代码运行,依然报错,直到一天后同事对我说 Ken,你本地启不来吗? ​[3:30 PM] eac连接的SQLSERVER数据库升级了按这个方式改一下。JDK用1.8的 ​[3:30 PM] eac升级, 操作如下 : 1,context.xml按上面说的加个select 1 2,

qq_45311792的博客 309

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IDEA 项目启动异常java.lang.IllegalStateException

昨天下午更新完代码之后,项目就跑不起来,出现下面这异常, java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [net.sf.cglib.proxy.MethodProxy$FastClassInfo]. Th...

Daisy丶墨言的博客 5284

java.lang.IllegalStateException: Failed to load ApplicationContext

java.lang.IllegalStateException: Failed to load ApplicationContext

m0_63615119的博客 270

java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before

前几天发布服务,结果发现了这么一堆堆问题。 ERROR [localhost-startStop-1] support.DefaultListableBeanFactory.destroyBean:581 - Destroy method on bean with name 'org.springframework.context.annotation.internalScheduledAnno...

cherry_chenrui的博客 2868

处理eclipse启动时报java.lang.IllegalStateException

这是我写的第一篇博客,博客我来了; 我是好学的人,希望在这上面遇到志同道合的人,对技术有更高追求的人; 重启eclipse的时候报出来 An error has occurred, See the log file 日记地址 我看日记看到最后报错信息是java.lang.IllegalStateException: Unable to acquire appl

y15201653575的博客 1万+

java.lang.IllegalStateException: 启动子级时出错

适用于新手的 Web 部署时的 java.lang.IllegalStateException 错误

qq_56335560的博客 2万+

java.lang.IllegalStateException 启动子级时出错

本章是存放我遇到该异常子类的文章,但凡是涉及此异常都会放在里面, 所以会多次更新,如果有遇到其他困难可以告诉我,我可能碰到过有帮助就帮忙给个赞或者关注吧!!!!!【鞠躬】 1.2、详解: 前提: 行动: 原因: 更改前:更改后:仍然提示: 正确形式:...

fwdwqdwq的博客 1407

解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错

解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错 问题复现:   笔者将一个在Tomcat安装目录下的文件夹webapps部署成功且运行正常的Web应用,改成使用IntelliJ IDEA工程中的文件夹webapp来部署。这之中,笔者没有改动原Web应用文件夹内的任何文件,但却在IntelliJ IDEA中运行时直接报错。 笔者报错时的运行环境: JDK 13.0.2 MySQL 8.0.21 Hi

暗诺星刻的博客 1万+

java.net.ConnectException: Connection refused: no further information,zookeeper连接不上问题解决

项目场景: 连接linux虚拟机(32位centos)上的zookeeper时一直连接不上并报错。 问题描述: 报错信息: java.lang.IllegalStateException: zookeeper not connected java.net.ConnectException: Connection refused: no further information 原因分析: 报错信息里面也写的比较明白了: zookeeper not connected:zookeeper没连上 Conn

qq_45794049的博客 1万+

Spring Boot与Log4j2集成之java.lang.IllegalStateException: Logback configuration error detected:

引言: 一个问题的分析与解决过程是表与里的过程,是一个大胆猜测与小心求证的过程,spring boot与log4j2的集成过程中,我将描述一下分析这个问题的思路和过程。 我一直强调一点: 重要的不是解决问题的结论,而是解决问题的思路和方法,即使在解决完问题之后,依然需要回过头复盘,在问题分析过程中的走过的弯路。1 项目情况介绍Spring Boot 1.5.7 , JDK 1.8, Log4j2.

木小鱼的笔记 6万+

java servlet not supported_使用Servlet3.0新特性asyncSupported=true时抛异常java.lang.IllegalStateException: N...

最近在运用Servlet3.0新特性:异步处理功能的时候出现以下了2个问题:运行时会抛出以下两种异常:一月 19, 2014 3:07:07下午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service()for servlet [servletTest.AsyncServlet] in context with...

weixin_36310376的博客 161
上一篇: IDEA for mac index 分析解决
下一篇: Spring Security 注解AuthenticationPrincipal 失效排查
hamish-wu
博客等级 码龄15年 2814粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值