Buggy code:
public class ConfigurationClassPostProcessor implements BeanClassLoaderAware , BeanFactoryPostProcessor { private static final String CONFIGURATION_CLASS_ATTRIBUTE = Conventions . getQualifiedAttributeName ( ConfigurationClassPostProcessor . class , "configurationClass" ) ; private static final String CONFIGURATION_CLASS_FULL = "full" ; private static final String CONFIGURATION_CLASS_LITE = "lite" ; private static final boolean cglibAvailable = ClassUtils . isPresent ( "net.sf.cglib.proxy.Enhancer" , ConfigurationClassPostProcessor . class . getClassLoader ( ) ) ; private final Log logger = LogFactory . getLog ( getClass ( ) ) ; private SourceExtractor sourceExtractor = new PassThroughSourceExtractor ( ) ; private ProblemReporter problemReporter = new FailFastProblemReporter ( ) ; private ClassLoader beanClassLoader = ClassUtils . getDefaultClassLoader ( ) ; private MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory ( ) ; private boolean setMetadataReaderFactoryCalled = false ; public void setSourceExtractor ( SourceExtractor sourceExtractor ) { } public void setProblemReporter ( ProblemReporter problemReporter ) { } public void setMetadataReaderFactory ( MetadataReaderFactory metadataReaderFactory ) { } public void setBeanClassLoader ( ClassLoader beanClassLoader ) { } public int getOrder ( ) { } public void postProcessBeanFactory ( ConfigurableListableBeanFactory beanFactory ) { } public void processConfigBeanDefinitions ( BeanDefinitionRegistry registry ) { Set < BeanDefinitionHolder > configCandidates = new LinkedHashSet < BeanDefinitionHolder > ( ) ; for ( String beanName : registry . getBeanDefinitionNames ( ) ) { BeanDefinition beanDef = registry . getBeanDefinition ( beanName ) ; if ( checkConfigurationClassCandidate ( beanDef ) ) { configCandidates . add ( new BeanDefinitionHolder ( beanDef , beanName ) ) ; } } if ( configCandidates . isEmpty ( ) ) { return ; } ConfigurationClassParser parser = new ConfigurationClassParser ( this . metadataReaderFactory , this . problemReporter ) ; for ( BeanDefinitionHolder holder : configCandidates ) { BeanDefinition bd = holder . getBeanDefinition ( ) ; try { if ( ( bd instanceof AbstractBeanDefinition ) && ( ( ( AbstractBeanDefinition ) ( bd ) ) . hasBeanClass ( ) ) ) { parser . parse ( ( ( AbstractBeanDefinition ) ( bd ) ) . getBeanClass ( ) , holder . getBeanName ( ) ) ; } else { parser . parse ( bd . getBeanClassName ( ) , holder . getBeanName ( ) ) ; } } catch ( IOException ex ) { throw new org . springframework . beans . factory . BeanDefinitionStoreException ( ( "Failed<seq2seq4repair_space>to<seq2seq4repair_space>load<seq2seq4repair_space>bean<seq2seq4repair_space>class:<seq2seq4repair_space>" + ( bd . getBeanClassName ( ) ) ) , ex ) ; } } parser . validate ( ) ; <START_BUG> new ConfigurationClassBeanDefinitionReader ( registry , this . sourceExtractor ) . loadBeanDefinitions ( parser . getModel ( ) ) ; <END_BUG> } protected boolean checkConfigurationClassCandidate ( BeanDefinition beanDef ) { } public void enhanceConfigurationClasses ( ConfigurableListableBeanFactory beanFactory ) { } }

Fix:
new ConfigurationClassBeanDefinitionReader ( registry , this . sourceExtractor ) . loadBeanDefinitions ( parser . getConfigurationClasses ( ) ) ;