You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
at com.ctrip.framework.apollo.spring.annotation.SpringValueProcessor.processField(SpringValueProcessor.java:105) at com.ctrip.framework.apollo.spring.annotation.ApolloProcessor.postProcessBeforeInitialization(ApolloProcessor.java:39) at com.ctrip.framework.apollo.spring.annotation.SpringValueProcessor.postProcessBeforeInitialization(SpringValueProcessor.java:83) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:353) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154)
java.lang.IllegalArgumentException: negative size: -83 at com.google.common.base.Preconditions.badPositionIndex(Preconditions.java:1409) at com.google.common.base.Preconditions.checkPositionIndex(Preconditions.java:1400) at com.google.common.base.Preconditions.checkPositionIndex(Preconditions.java:1382) at com.google.common.collect.LinkedListMultimap$NodeIterator.<init>(LinkedListMultimap.java:334) at com.google.common.collect.LinkedListMultimap$1EntriesImpl.listIterator(LinkedListMultimap.java:836) at java.base/java.util.AbstractList.listIterator(AbstractList.java:311) at java.base/java.util.AbstractSequentialList.iterator(AbstractSequentialList.java:238) at com.google.common.collect.Synchronized$SynchronizedCollection.iterator(Synchronized.java:179) at com.ctrip.framework.apollo.spring.property.SpringValueRegistry.scanAndClean(SpringValueRegistry.java:87) at com.ctrip.framework.apollo.spring.property.SpringValueRegistry.access$000(SpringValueRegistry.java:36) at com.ctrip.framework.apollo.spring.property.SpringValueRegistry$1.run(SpringValueRegistry.java:75) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833)
期望
简介明了地描述你希望正常情况下应该发生什么
截图
如果可以,附上截图来描述你的问题
额外的细节和日志
版本:
错误日志
配置:
平台和操作系统
The text was updated successfully, but these errors were encountered:
描述bug
这里已经有相关描述 #4356
我这里一下细节,Apoll 1.9.2 Guava-31.1-jre,这个很重要,因为SpringValueRegistry在Apoll 2.1之后删了,Guava在比较低的版本没办法重现问题
复现
因为比较难复现,所以来求助社区看看有没有办法复现出来,如上描述的情形。
这里给一个触发场景大致是这样的,一般项目都会封装一个SpringBeanAwareUtil,然后getBean,多线程进行getBean中,会走这段逻辑
at com.ctrip.framework.apollo.spring.annotation.SpringValueProcessor.processField(SpringValueProcessor.java:105) at com.ctrip.framework.apollo.spring.annotation.ApolloProcessor.postProcessBeforeInitialization(ApolloProcessor.java:39) at com.ctrip.framework.apollo.spring.annotation.SpringValueProcessor.postProcessBeforeInitialization(SpringValueProcessor.java:83) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:353) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154)
这样就形成了,多线程在register中put,然后另外线程scanAndClean remove,最后触发
java.lang.IllegalArgumentException: negative size: -83 at com.google.common.base.Preconditions.badPositionIndex(Preconditions.java:1409) at com.google.common.base.Preconditions.checkPositionIndex(Preconditions.java:1400) at com.google.common.base.Preconditions.checkPositionIndex(Preconditions.java:1382) at com.google.common.collect.LinkedListMultimap$NodeIterator.<init>(LinkedListMultimap.java:334) at com.google.common.collect.LinkedListMultimap$1EntriesImpl.listIterator(LinkedListMultimap.java:836) at java.base/java.util.AbstractList.listIterator(AbstractList.java:311) at java.base/java.util.AbstractSequentialList.iterator(AbstractSequentialList.java:238) at com.google.common.collect.Synchronized$SynchronizedCollection.iterator(Synchronized.java:179) at com.ctrip.framework.apollo.spring.property.SpringValueRegistry.scanAndClean(SpringValueRegistry.java:87) at com.ctrip.framework.apollo.spring.property.SpringValueRegistry.access$000(SpringValueRegistry.java:36) at com.ctrip.framework.apollo.spring.property.SpringValueRegistry$1.run(SpringValueRegistry.java:75) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833)
期望
简介明了地描述你希望正常情况下应该发生什么
截图
如果可以,附上截图来描述你的问题
额外的细节和日志
The text was updated successfully, but these errors were encountered: