Example usage for org.springframework.beans.factory BeanCreationException contains

List of usage examples for org.springframework.beans.factory BeanCreationException contains

Introduction

In this page you can find the example usage for org.springframework.beans.factory BeanCreationException contains.

Prototype

@Override
    public boolean contains(@Nullable Class<?> exClass) 

Source Link

Usage

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));
    }
}