草庐IT

bug-tracking

全部标签

bug处理记录:com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 9)): has to be escaped using backslash to be included in string value at [Source:

1.报错:com.fasterxml.jackson.core.JsonParseException:Illegalunquotedcharacter((CTRL-CHAR,code9)):hastobeescapedusingbackslashtobeincludedinstringvalueat[Source:(PushbackInputStream);line:2,column:21]2.导致原因:测试时是使用swagger测试接口的,下面的bin字段的值是复制过来的,bin的值表面上看是有空格的存在,其实是一些特殊字符,删除掉特殊字符就可以解决报错了。向接口中传递json如下{"bin

bug处理记录:com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 9)): has to be escaped using backslash to be included in string value at [Source:

1.报错:com.fasterxml.jackson.core.JsonParseException:Illegalunquotedcharacter((CTRL-CHAR,code9)):hastobeescapedusingbackslashtobeincludedinstringvalueat[Source:(PushbackInputStream);line:2,column:21]2.导致原因:测试时是使用swagger测试接口的,下面的bin字段的值是复制过来的,bin的值表面上看是有空格的存在,其实是一些特殊字符,删除掉特殊字符就可以解决报错了。向接口中传递json如下{"bin

线程池中的一个 BUG,注意了!!

来源:https://segmentfault.com/a/1190000021109130问题描述前几天在帮同事排查生产一个线上偶发的线程池错误逻辑很简单,线程池执行了一个带结果的异步任务。但是最近有偶发的报错:java.util.concurrent.RejectedExecutionException:Taskjava.util.concurrent.FutureTask@a5acd19rejectedfromjava.util.concurrent.ThreadPoolExecutor@30890a38[Terminated,poolsize=0,activethreads=0,que

线程池中的一个 BUG,注意了!!

来源:https://segmentfault.com/a/1190000021109130问题描述前几天在帮同事排查生产一个线上偶发的线程池错误逻辑很简单,线程池执行了一个带结果的异步任务。但是最近有偶发的报错:java.util.concurrent.RejectedExecutionException:Taskjava.util.concurrent.FutureTask@a5acd19rejectedfromjava.util.concurrent.ThreadPoolExecutor@30890a38[Terminated,poolsize=0,activethreads=0,que

带你认识JDK8中超nice的Native Memory Tracking

摘要:从OpenJDK8起有了一个很nice的虚拟机内部功能:NativeMemoryTracking(NMT)。本文分享自华为云社区《NativeMemoryTracking详解(1):基础介绍》,作者:毕昇小助手。0.引言我们经常会好奇,我启动了一个JVM,他到底会占据多大的内存?他的内存都消耗在哪里?为什么JVM使用的内存比我设置的-Xmx大这么多?我的内存设置参数是否合理?为什么我的JVM内存一直缓慢增长?为什么我的JVM会被OOMKiller等等,这都涉及到JAVA虚拟机对内存的一个使用情况,不如让我们来一探其中究竟。1.简介除去大家都熟悉的可以使用-Xms、-Xmx等参数设置的堆(

带你认识JDK8中超nice的Native Memory Tracking

摘要:从OpenJDK8起有了一个很nice的虚拟机内部功能:NativeMemoryTracking(NMT)。本文分享自华为云社区《NativeMemoryTracking详解(1):基础介绍》,作者:毕昇小助手。0.引言我们经常会好奇,我启动了一个JVM,他到底会占据多大的内存?他的内存都消耗在哪里?为什么JVM使用的内存比我设置的-Xmx大这么多?我的内存设置参数是否合理?为什么我的JVM内存一直缓慢增长?为什么我的JVM会被OOMKiller等等,这都涉及到JAVA虚拟机对内存的一个使用情况,不如让我们来一探其中究竟。1.简介除去大家都熟悉的可以使用-Xms、-Xmx等参数设置的堆(

【Java并发入门】01 并发编程Bug的源头

一、根本原因「CPU、内存、磁盘之间的速度差异」为了能同时执行多个任务,CPU发展出时间片轮转、多核等CPU要从内存中读数据太慢了,所以给自己设置了缓存CPU读磁盘更慢了,所以可以让该线程阻塞二、直接原因缓存导致的可见性问题CPU把要处理的数据加载到自己的缓存中,处理完了放回自己的缓存。另一个CPU同样的处理,就导致可能看不到上一个CPU处理的结果。线程切换带来的原子性问题程序中的一行代码往往不是一条CPU指令。线程切换的时候,可能会在一个代码执行的中间地方切换。编译优化带来的有序性问题优化会为了更高效的利用CPU缓存,将代码指令重排。这个重排的过程会导致看似没问题的代码,多线程出现逻辑问题。

【Java并发入门】01 并发编程Bug的源头

一、根本原因「CPU、内存、磁盘之间的速度差异」为了能同时执行多个任务,CPU发展出时间片轮转、多核等CPU要从内存中读数据太慢了,所以给自己设置了缓存CPU读磁盘更慢了,所以可以让该线程阻塞二、直接原因缓存导致的可见性问题CPU把要处理的数据加载到自己的缓存中,处理完了放回自己的缓存。另一个CPU同样的处理,就导致可能看不到上一个CPU处理的结果。线程切换带来的原子性问题程序中的一行代码往往不是一条CPU指令。线程切换的时候,可能会在一个代码执行的中间地方切换。编译优化带来的有序性问题优化会为了更高效的利用CPU缓存,将代码指令重排。这个重排的过程会导致看似没问题的代码,多线程出现逻辑问题。

同事写了一个责任链模式,bug 无数...

背景最近,我让团队内一位成员写了一个导入功能。他使用了责任链模式,代码堆的非常多,bug也多,没有达到我预期的效果。实际上,针对导入功能,我认为模版方法更合适!为此,隔壁团队也拿出我们的案例,进行了集体codereview。学好设计模式,且不要为了练习,强行使用!让原本100行就能实现的功能,写了3000行!对错暂且不论,我们先一起看看责任链设计模式吧!什么是责任链责任链模式是一种行为设计模式,允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。使用场景责任链的使用场景还是比较多的:多条件流程判断:权限控制ERP系统流程审批:总经理、人事经

同事写了一个责任链模式,bug 无数...

背景最近,我让团队内一位成员写了一个导入功能。他使用了责任链模式,代码堆的非常多,bug也多,没有达到我预期的效果。实际上,针对导入功能,我认为模版方法更合适!为此,隔壁团队也拿出我们的案例,进行了集体codereview。学好设计模式,且不要为了练习,强行使用!让原本100行就能实现的功能,写了3000行!对错暂且不论,我们先一起看看责任链设计模式吧!什么是责任链责任链模式是一种行为设计模式,允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。使用场景责任链的使用场景还是比较多的:多条件流程判断:权限控制ERP系统流程审批:总经理、人事经