Junit因java.lang.StackOverflower错误而失败

Junit因java.lang.StackOverflower错误而失败,junit,slf4j,aem-6,Junit,Slf4j,Aem 6,我已经将我的uber jar从6.2.0-SP1更新为6.4.0。在那之后,我的Junit全部失败,出现以下错误 如果我从类中删除记录器,那么问题就不会出现。Junit正在工作 错误消息1:java.lang.StackOverflower错误:在 ConcurrentHashMap.get(ConcurrentHashMap.java:936) 在 org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:39

我已经将我的uber jar从6.2.0-SP1更新为6.4.0。在那之后,我的Junit全部失败,出现以下错误

如果我从类中删除记录器,那么问题就不会出现。Junit正在工作

错误消息1:java.lang.StackOverflower错误:在 ConcurrentHashMap.get(ConcurrentHashMap.java:936) 在 org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:39

错误消息2:java.lang.StackOverflower错误:在 org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:39) 位于org.apache.log4j.LogManager.getLogger(LogManager.java:45)

完整日志跟踪:

java.lang.StackOverflowError: null
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
    at org.apache.log4j.Category.<init>(Category.java:57)
    at org.apache.log4j.Logger.<init>(Logger.java:37)
    at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)
    at org.apache.log4j.LogManager.getLogger(LogManager.java:45)
    at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
    at org.apache.log4j.Category.<init>(Category.java:57)
    at org.apache.log4j.Logger.<init>(Logger.java:37)
    at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)
java.lang.StackOverflower错误:null
位于org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
位于org.apache.log4j.Category(Category.java:57)
登录org.apache.log4j.Logger(Logger.java:37)
位于org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)
位于org.apache.log4j.LogManager.getLogger(LogManager.java:45)
位于org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
位于org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
位于org.apache.log4j.Category(Category.java:57)
登录org.apache.log4j.Logger(Logger.java:37)
位于org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)

根据您提供给我们的罕见信息,我猜由于您所做的更新(可能较新版本需要更多配置),您没有正确设置记录器。 (想将此作为评论发布,但我的声誉太低,sry:)


由于您提供的改进信息,看起来您真的没有任何问题。可能getLogger方法试图找到一个导致StackOverflower错误的递归记录器。

我已经解决了这个问题,将slf4j-log4j12从一个自定义jar中引用的包中排除。现在,slf4j api和slf4j-log4j12之间没有循环调用。

我认为这里没有足够的细节,任何人都无法帮助您。你有完整的堆栈跟踪吗?你的JUnit测试看起来像什么?@RobMcDougall:我已经添加了堆栈跟踪日志。我在uber 6.4中发现jar有org.apache.log4j和org.slf4j.log4j.*包,但这些包在uber 6.2中不可用,后者添加了单独的依赖项slf4j api。当我使用uber 6.4时,我已经删除了“slf4j api”依赖项,但仍然是同一个问题。添加了更多信息我没有关于这个问题的其他信息。刚刚更新了uber jar版本,它造成了这个问题。