Java开发日常出现的特殊错误

错误一

错误描述:

Clock moved backwards. Refusing to generate id for 48257037 milliseconds

代码:
import com.baomidou.mybatisplus.core.toolkit.IdWorker;

Long blockId  = IdWorker.getId();
代码场景:

生成唯一ID,用于标识当前线程,日志跟踪 。

错误原因:

由于系统时间回拨产生此错误

IdWorker.getId() 是高效GUID产生算法(sequence),基于Snowflake算法实现64位自增ID

由于Snowflake算法依赖系统时间,它会将当前时间与最近一次调用此算法的存入内存的系统时间比较,若当前时间小于上次调用时间(具体原因看源码),则报错

解决方法:
  • 临时方法:重置系统时间;重启当前项目,清空内存。
  • 永久方法:更换生成唯一ID方式。如:UUID、redis生成ID等

错误二

错误描述:

IllegalArgumentException: Illegal base64 character 3a

错误原因:

由于base64 编码里存在 data:image/png;base64

解决方法

删除 data:image/png;base64, 即可


持续更新中……

你可能感兴趣的:(java)