List of usage examples for org.springframework.beans.factory BeanCreationException contains
@Override public boolean contains(@Nullable Class<?> exClass)
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testPrototypeCircleLeadsToException() { DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("kerry.(class)", TestBean.class.getName()); p.setProperty("kerry.(singleton)", "false"); p.setProperty("kerry.age", "35"); p.setProperty("kerry.spouse", "*rod"); p.setProperty("rod.(class)", TestBean.class.getName()); p.setProperty("rod.(singleton)", "false"); p.setProperty("rod.age", "34"); p.setProperty("rod.spouse", "*kerry"); (new PropertiesBeanDefinitionReader(lbf)).registerBeanDefinitions(p); try {//from w w w . j ava 2s .c o m lbf.getBean("kerry"); fail("Should have thrown BeanCreationException"); } catch (BeanCreationException ex) { // expected assertTrue(ex.contains(BeanCurrentlyInCreationException.class)); } }
From source file:org.springframework.beans.factory.support.AbstractBeanFactory.java
public Class getType(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); try {//from ww w .jav a2 s.co m Class beanClass = null; // Check manually registered singletons. Object beanInstance = null; synchronized (this.singletonCache) { beanInstance = this.singletonCache.get(beanName); } if (beanInstance != null) { beanClass = beanInstance.getClass(); } else { // No singleton instance found -> check bean definition. if (getParentBeanFactory() != null && !containsBeanDefinition(beanName)) { // No bean definition found in this factory -> delegate to parent. return getParentBeanFactory().getType(name); } RootBeanDefinition mergedBeanDefinition = getMergedBeanDefinition(beanName, false); // Delegate to getTypeForFactoryMethod in case of factory method. if (mergedBeanDefinition.getFactoryMethodName() != null) { return getTypeForFactoryMethod(name, mergedBeanDefinition); } // Return "undeterminable" for beans without class. if (!mergedBeanDefinition.hasBeanClass()) { return null; } beanClass = mergedBeanDefinition.getBeanClass(); } // Check bean class whether we're dealing with a FactoryBean. if (FactoryBean.class.isAssignableFrom(beanClass) && !isFactoryDereference(name)) { // If it's a FactoryBean, we want to look at what it creates, not the factory class. FactoryBean factoryBean = (FactoryBean) getBean(FACTORY_BEAN_PREFIX + beanName); return factoryBean.getObjectType(); } return beanClass; } catch (BeanCreationException ex) { if (ex.contains(BeanCurrentlyInCreationException.class) || ex.contains(FactoryBeanNotInitializedException.class)) { // Can only happen when checking a FactoryBean. logger.debug("Ignoring BeanCreationException on FactoryBean type check", ex); return null; } throw ex; } }
From source file:org.springframework.beans.factory.xml.XmlBeanFactoryTests.java
@Test public void testCircularReferencesWithNotAllowed() { DefaultListableBeanFactory xbf = new DefaultListableBeanFactory(); xbf.setAllowCircularReferences(false); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(xbf); reader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_NONE); reader.loadBeanDefinitions(REFTYPES_CONTEXT); try {//ww w .ja v a 2s.co m xbf.getBean("jenny"); fail("Should have thrown BeanCreationException"); } catch (BeanCreationException ex) { assertTrue(ex.contains(BeanCurrentlyInCreationException.class)); } }
From source file:org.springframework.beans.factory.xml.XmlBeanFactoryTests.java
@Test public void testCircularReferencesWithWrapping() { DefaultListableBeanFactory xbf = new DefaultListableBeanFactory(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(xbf); reader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_NONE); reader.loadBeanDefinitions(REFTYPES_CONTEXT); xbf.addBeanPostProcessor(new WrappingPostProcessor()); try {// w ww .j av a 2 s .c o m xbf.getBean("jenny"); fail("Should have thrown BeanCreationException"); } catch (BeanCreationException ex) { assertTrue(ex.contains(BeanCurrentlyInCreationException.class)); } }