Buggy code:
public final class Injector < T > { private static final Map < Class < ? > , Producer < ? > > injectors = Maps . newConcurrentMap ( ) ; private final Class < T > clazz ; private Injector ( Class < T > clazz ) { } public static < T > Injector < T > inject ( Class < T > clazz ) { } public void with ( Producer < T > producer ) { } public void with ( final T instance ) { } public static void staticInject ( Class < ? > clazz ) { } public static < T > T newObject ( Class < T > clazz , Object ... args ) { for ( Map . Entry < Constructor , Class < ? > [ ] > entry : Injector . findConstructors ( clazz ) . entrySet ( ) ) { List < Object > arguments = Lists . newArrayList ( ) ; Constructor constructor = entry . getKey ( ) ; Class < ? > [ ] constructorParameters = entry . getValue ( ) ; PeekingIterator < Object > iterator = Iterators . peekingIterator ( Iterators . forArray ( args ) ) ; if ( ! ( Injector . checkArray ( args , constructorParameters ) ) ) continue ; for ( Class < ? > c : constructorParameters ) { Producer < ? > producer = Injector . injectors . get ( c ) ; <START_BUG> Inject inject = constructor . getDeclaredAnnotation ( Inject . class ) ; <END_BUG> if ( iterator . hasNext ( ) ) { if ( ( iterator . peek ( ) . getClass ( ) ) == c ) { arguments . add ( iterator . next ( ) ) ; continue ; } } if ( producer == null ) { if ( iterator . hasNext ( ) ) { if ( ( iterator . peek ( ) . getClass ( ) ) == c ) { arguments . add ( iterator . next ( ) ) ; continue ; } } TridentLogger . error ( new IllegalArgumentException ( ( ( ( ( ( ( "Constructor<seq2seq4repair_space>" + ( clazz . getName ( ) ) ) + "(" ) + ( Arrays . toString ( constructorParameters ) . replaceAll ( "class<seq2seq4repair_space>" , "" ) . replaceAll ( "\\[" , "" ) . replaceAll ( "\\]" , "" ) ) ) + ")<seq2seq4repair_space>" ) + "does<seq2seq4repair_space>not<seq2seq4repair_space>provide<seq2seq4repair_space>or<seq2seq4repair_space>registered<seq2seq4repair_space>parameter<seq2seq4repair_space>" ) + ( c . getName ( ) ) ) ) ) ; return null ; } else { if ( ( inject . meta ( ) ) == ( Class . class ) ) { arguments . add ( producer . produce ( ) ) ; } else { arguments . add ( producer . produce ( inject . meta ( ) ) ) ; } } } try { T t = ( ( T ) ( constructor . newInstance ( arguments . toArray ( ) ) ) ) ; for ( Field field : Injector . findFields ( clazz ) ) { Injector . setField ( t , field ) ; } return t ; } catch ( InstantiationException | IllegalAccessException | InvocationTargetException e ) { TridentLogger . error ( e ) ; return null ; } } try { T t = clazz . newInstance ( ) ; for ( Field field : Injector . findFields ( clazz ) ) { Injector . setField ( t , field ) ; } return t ; } catch ( InstantiationException | IllegalAccessException e ) { TridentLogger . error ( e ) ; return null ; } } public static void injectAll ( Object instance ) { } private static void setField ( Object instance , Field field ) { } private static List < Field > findFields ( Class < ? > c ) { } private static Map < Constructor , Class < ? > [ ] > findConstructors ( Class < ? > c ) { } private static boolean checkArray ( Object [ ] args , Class < ? > [ ] params ) { } No newline ; at end ; of file ; }

Fix:
Inject inject = ( ( Inject ) ( constructor . getAnnotation ( Inject . class ) ) ) ;