类静态代码块初始化报错

Posted by Mr.Cai on June 2, 2020

时隔多年,重回github,之前在印象笔记里记录了一些奇奇怪怪的问题,现在开始也都会慢慢迁移到github上,供大家浏览。

0x01 问题背景

某一个神秘的服务启动的时候出现StackOverFlowException。

0x02 排查过程

  • 应该是引入了某个不可描述的依赖,导致了栈溢出。发现了这样的一个异常
java.lang.NoClassDefFoundError: Could not initialize class com.xxx.infra.framework.jedis.LettuceByZooKeeperEx$LazyHolder

百思不得其解,后来经过同事指教才了解到StackOverFlow异常发生后,所有的类都不会自动加载了。

根因在这

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '***' defined in ***: Bean instantiation via factory method failed; nested exception is org.springframework.be
ans.BeanInstantiationException: Failed to instantiate [***]: Factory method '***' threw exception; nested exception is java.lang.StackOverflowError
        at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:627)