Buggy code:
public abstract class AbstractTestContextBootstrapper implements TestContextBootstrapper { private final Log logger = LogFactory . getLog ( getClass ( ) ) ; private BootstrapContext bootstrapContext ; @ Override public void setBootstrapContext ( BootstrapContext bootstrapContext ) { } @ Override public BootstrapContext getBootstrapContext ( ) { } @ SuppressWarnings ( "unchecked" ) @ Override public final List < TestExecutionListener > getTestExecutionListeners ( ) { Class < ? > clazz = getBootstrapContext ( ) . getTestClass ( ) ; Class < TestExecutionListeners > annotationType = TestExecutionListeners . class ; List < Class < ? extends TestExecutionListener > > classesList = new ArrayList < Class < ? extends TestExecutionListener > > ( ) ; boolean usingDefaults = false ; AnnotationDescriptor < TestExecutionListeners > descriptor = MetaAnnotationUtils . findAnnotationDescriptor ( clazz , annotationType ) ; if ( descriptor == null ) { if ( logger . isDebugEnabled ( ) ) { logger . debug ( String . format ( "@TestExecutionListeners<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>present<seq2seq4repair_space>for<seq2seq4repair_space>class<seq2seq4repair_space>[%s]:<seq2seq4repair_space>using<seq2seq4repair_space>defaults." , clazz . getName ( ) ) ) ; } usingDefaults = true ; classesList . addAll ( getDefaultTestExecutionListenerClasses ( ) ) ; } else { while ( descriptor != null ) { Class < ? > declaringClass = descriptor . getDeclaringClass ( ) ; AnnotationAttributes annAttrs = descriptor . getAnnotationAttributes ( ) ; if ( logger . isTraceEnabled ( ) ) { logger . trace ( String . format ( "Retrieved<seq2seq4repair_space>@TestExecutionListeners<seq2seq4repair_space>attributes<seq2seq4repair_space>[%s]<seq2seq4repair_space>for<seq2seq4repair_space>declaring<seq2seq4repair_space>class<seq2seq4repair_space>[%s]." , annAttrs , declaringClass . getName ( ) ) ) ; } Class < ? extends TestExecutionListener > [ ] valueListenerClasses = ( ( Class < ? extends TestExecutionListener > [ ] ) ( annAttrs . getClassArray ( "value" ) ) ) ; Class < ? extends TestExecutionListener > [ ] listenerClasses = ( ( Class < ? extends TestExecutionListener > [ ] ) ( annAttrs . getClassArray ( "listeners" ) ) ) ; if ( ( ! ( ObjectUtils . isEmpty ( valueListenerClasses ) ) ) && ( ! ( ObjectUtils . isEmpty ( listenerClasses ) ) ) ) { throw new IllegalStateException ( String . format ( ( "Class<seq2seq4repair_space>[%s]<seq2seq4repair_space>configured<seq2seq4repair_space>with<seq2seq4repair_space>@TestExecutionListeners'<seq2seq4repair_space>" + "'value'<seq2seq4repair_space>[%s]<seq2seq4repair_space>and<seq2seq4repair_space>'listeners'<seq2seq4repair_space>[%s]<seq2seq4repair_space>attributes.<seq2seq4repair_space>Use<seq2seq4repair_space>one<seq2seq4repair_space>or<seq2seq4repair_space>the<seq2seq4repair_space>other,<seq2seq4repair_space>but<seq2seq4repair_space>not<seq2seq4repair_space>both." ) , declaringClass . getName ( ) , ObjectUtils . nullSafeToString ( valueListenerClasses ) , ObjectUtils . nullSafeToString ( listenerClasses ) ) ) ; } else if ( ! ( ObjectUtils . isEmpty ( valueListenerClasses ) ) ) { listenerClasses = valueListenerClasses ; } boolean inheritListeners = annAttrs . getBoolean ( "inheritListeners" ) ; AnnotationDescriptor < TestExecutionListeners > superDescriptor = MetaAnnotationUtils . findAnnotationDescriptor ( descriptor . getRootDeclaringClass ( ) . getSuperclass ( ) , annotationType ) ; if ( ( ( ! inheritListeners ) || ( superDescriptor == null ) ) && ( ( annAttrs . getEnum ( "mergeMode" ) ) == ( MergeMode . MERGE_WITH_DEFAULTS ) ) ) { if ( logger . isDebugEnabled ( ) ) { <START_BUG> logger . debug ( String . format ( "Merging<seq2seq4repair_space>default<seq2seq4repair_space>listeners<seq2seq4repair_space>with<seq2seq4repair_space>listeners<seq2seq4repair_space>configured<seq2seq4repair_space>via<seq2seq4repair_space>@TestExecutionListeners<seq2seq4repair_space>for<seq2seq4repair_space>class<seq2seq4repair_space>[%s]." , clazz . getName ( ) ) ) ; <END_BUG> } usingDefaults = true ; classesList . addAll ( getDefaultTestExecutionListenerClasses ( ) ) ; } classesList . addAll ( 0 , Arrays . < Class < ? extends TestExecutionListener > > asList ( listenerClasses ) ) ; descriptor = ( inheritListeners ) ? superDescriptor : null ; } } if ( usingDefaults ) { Set < Class < ? extends TestExecutionListener > > classesSet = new HashSet < Class < ? extends TestExecutionListener > > ( ) ; classesSet . addAll ( classesList ) ; classesList . clear ( ) ; classesList . addAll ( classesSet ) ; } List < TestExecutionListener > listeners = instantiateListeners ( classesList ) ; if ( usingDefaults ) { AnnotationAwareOrderComparator . sort ( listeners ) ; } if ( logger . isInfoEnabled ( ) ) { logger . info ( String . format ( "Using<seq2seq4repair_space>TestExecutionListeners:<seq2seq4repair_space>%s" , listeners ) ) ; } return listeners ; } private List < TestExecutionListener > instantiateListeners ( List < Class < ? extends TestExecutionListener > > classesList ) { } @ SuppressWarnings ( "unchecked" ) protected Set < Class < ? extends TestExecutionListener > > getDefaultTestExecutionListenerClasses ( ) { } protected List < String > getDefaultTestExecutionListenerClassNames ( ) { } @ SuppressWarnings ( "unchecked" ) @ Override public final MergedContextConfiguration buildMergedContextConfiguration ( ) { } private MergedContextConfiguration buildMergedContextConfiguration ( Class < ? > testClass , List < ContextConfigurationAttributes > configAttributesList , MergedContextConfiguration parentConfig , CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate ) { } private ContextLoader resolveContextLoader ( Class < ? > testClass , List < ContextConfigurationAttributes > configAttributesList ) { } private Class < ? extends ContextLoader > resolveExplicitContextLoaderClass ( List < ContextConfigurationAttributes > configAttributesList ) { } protected abstract Class < ? extends ContextLoader > getDefaultContextLoaderClass ( Class < ? > testClass ) { } protected MergedContextConfiguration processMergedContextConfiguration ( MergedContextConfiguration mergedConfig ) { } }

Fix:
logger . debug ( String . format ( "Merging<seq2seq4repair_space>default<seq2seq4repair_space>listeners<seq2seq4repair_space>with<seq2seq4repair_space>listeners<seq2seq4repair_space>configured<seq2seq4repair_space>via<seq2seq4repair_space>@TestExecutionListeners<seq2seq4repair_space>for<seq2seq4repair_space>class<seq2seq4repair_space>[%s]." , descriptor . getRootDeclaringClass ( ) . getName ( ) ) ) ;