记录一个spring 相关的问题

记录一个spring 相关的问题

这个两天写个小demo,写test的时候发现个问题,形如如下代码执行多次可能会抛出异常,不一定出现。

@Test
@Commit
public void test1(){
	logger.info("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
	User user = new User();
	user.setStatus(Status.ENABLE);
	user.setUserName("test");
	user.setPasswd("xxxxxxxxx");
	user.setModifyDate(new Date());
	user.setCreateDate(new Date());
	userDao.updateUserStatus(user);
}

详细代码见git异常代码

抛出如下异常

org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'sqlSessionFactory': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:216)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201)
at org.springframework.context.event.AbstractApplicationEventMulticaster$ListenerRetriever.getApplicationListeners(AbstractApplicationEventMulticaster.java:345)
at org.springframework.context.event.AbstractApplicationEventMulticaster.getApplicationListeners(AbstractApplicationEventMulticaster.java:171)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:125)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:380)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:386)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:961)
at org.springframework.context.support.AbstractApplicationContext$1.run(AbstractApplicationContext.java:895)
2016-09-27 14:01:22 [com.alibaba.druid.pool.DruidDataSource]-[INFO]-[Thread-3] {dataSource-1} closed

这是在销毁applicationContext 时候push的事件,这个是子applicationContext 调用父 applicationContext push event 时候抛出的异常。

查看源代码感觉不可能出现这个异常。先记录下来。。

posted on 2016-09-27 16:08  liaozq  阅读(276)  评论(0编辑  收藏  举报