Buggy code:
public class ReflectivePropertyResolver implements PropertyAccessor { protected final Map < ReflectivePropertyResolver . CacheKey , Member > readerCache = new ConcurrentHashMap < ReflectivePropertyResolver . CacheKey , Member > ( ) ; protected final Map < ReflectivePropertyResolver . CacheKey , Member > writerCache = new ConcurrentHashMap < ReflectivePropertyResolver . CacheKey , Member > ( ) ; protected final Map < ReflectivePropertyResolver . CacheKey , TypeDescriptor > typeDescriptorCache = new ConcurrentHashMap < ReflectivePropertyResolver . CacheKey , TypeDescriptor > ( ) ; public Class < ? > [ ] getSpecificTargetClasses ( ) { } public boolean canRead ( EvaluationContext context , Object target , String name ) throws AccessException { } public TypedValue read ( EvaluationContext context , Object target , String name ) throws AccessException { if ( target == null ) { <START_BUG> return null ; <END_BUG> } Class < ? > type = ( target instanceof Class ) ? ( ( Class < ? > ) ( target ) ) : target . getClass ( ) ; if ( ( type . isArray ( ) ) && ( name . equals ( "length" ) ) ) { if ( target instanceof Class ) { throw new AccessException ( "Cannot<seq2seq4repair_space>access<seq2seq4repair_space>length<seq2seq4repair_space>on<seq2seq4repair_space>array<seq2seq4repair_space>class<seq2seq4repair_space>itself" ) ; } return new TypedValue ( Array . getLength ( target ) , TypeDescriptor . valueOf ( Integer . TYPE ) ) ; } ReflectivePropertyResolver . CacheKey cacheKey = new ReflectivePropertyResolver . CacheKey ( type , name ) ; Member cachedMember = this . readerCache . get ( cacheKey ) ; if ( ( cachedMember == null ) || ( cachedMember instanceof Method ) ) { Method method = ( ( Method ) ( cachedMember ) ) ; if ( method == null ) { method = findGetterForProperty ( name , type , ( target instanceof Class ) ) ; if ( method != null ) { cachedMember = method ; this . readerCache . put ( cacheKey , cachedMember ) ; } } if ( method != null ) { try { ReflectionUtils . makeAccessible ( method ) ; TypeDescriptor resultTypeDescriptor = new TypeDescriptor ( new MethodParameter ( method , ( - 1 ) ) ) ; return new TypedValue ( method . invoke ( target ) , resultTypeDescriptor ) ; } catch ( Exception ex ) { throw new AccessException ( ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>access<seq2seq4repair_space>property<seq2seq4repair_space>'" + name ) + "'<seq2seq4repair_space>through<seq2seq4repair_space>getter" ) , ex ) ; } } } if ( ( cachedMember == null ) || ( cachedMember instanceof Field ) ) { Field field = ( ( Field ) ( cachedMember ) ) ; if ( field == null ) { field = findField ( name , type , ( target instanceof Class ) ) ; if ( field != null ) { cachedMember = field ; this . readerCache . put ( cacheKey , cachedMember ) ; } } if ( field != null ) { try { ReflectionUtils . makeAccessible ( field ) ; return new TypedValue ( field . get ( target ) , new TypeDescriptor ( field ) ) ; } catch ( Exception ex ) { throw new AccessException ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>access<seq2seq4repair_space>field:<seq2seq4repair_space>" + name ) , ex ) ; } } } throw new AccessException ( ( ( "Neither<seq2seq4repair_space>getter<seq2seq4repair_space>nor<seq2seq4repair_space>field<seq2seq4repair_space>found<seq2seq4repair_space>for<seq2seq4repair_space>property<seq2seq4repair_space>'" + name ) + "'" ) ) ; } public boolean canWrite ( EvaluationContext context , Object target , String name ) throws AccessException { } public void write ( EvaluationContext context , Object target , String name , Object newValue ) throws AccessException { } private TypeDescriptor getTypeDescriptor ( EvaluationContext context , Object target , String name ) { } protected Method findGetterForProperty ( String propertyName , Class < ? > clazz , boolean mustBeStatic ) { } protected Method findSetterForProperty ( String propertyName , Class < ? > clazz , boolean mustBeStatic ) { } protected Field findField ( String name , Class < ? > clazz , boolean mustBeStatic ) { } private static class CacheKey { private final Class clazz ; private final String name ; public CacheKey ( Class clazz , String name ) { } @ Override public boolean equals ( Object other ) { } @ Override public int hashCode ( ) { } } }

Fix:
throw new AccessException ( "Cannot<seq2seq4repair_space>read<seq2seq4repair_space>property<seq2seq4repair_space>of<seq2seq4repair_space>null<seq2seq4repair_space>target" ) ;