Buggy code:
public abstract class ClassUtils { public static final String ARRAY_SUFFIX = "[]" ; private static final String INTERNAL_ARRAY_PREFIX = "[" ; private static final String NON_PRIMITIVE_ARRAY_PREFIX = "[L" ; private static final char PACKAGE_SEPARATOR = '.' ; private static final char INNER_CLASS_SEPARATOR = '$' ; public static final String CGLIB_CLASS_SEPARATOR = "$$" ; public static final String CLASS_FILE_SUFFIX = ".class" ; private static final Map < Class , Class > primitiveWrapperTypeMap = new HashMap < Class , Class > ( 8 ) ; private static final Map < Class , Class > primitiveTypeToWrapperMap = new HashMap < Class , Class > ( 8 ) ; private static final Map < String , Class > primitiveTypeNameMap = new HashMap < String , Class > ( 16 ) ; private static final Map < String , Class > commonClassCache = new HashMap < String , Class > ( 32 ) ; private static void registerCommonClasses ( Class ... commonClasses ) { } public static ClassLoader getDefaultClassLoader ( ) { } public static ClassLoader overrideThreadContextClassLoader ( ClassLoader classLoaderToUse ) { } @ Deprecated public static Class forName ( String name ) throws ClassNotFoundException , LinkageError { } public static Class forName ( String name , ClassLoader classLoader ) throws ClassNotFoundException , LinkageError { } public static Class resolveClassName ( String className , ClassLoader classLoader ) throws IllegalArgumentException { } public static Class resolvePrimitiveClassName ( String name ) { } @ Deprecated public static boolean isPresent ( String className ) { } public static boolean isPresent ( String className , ClassLoader classLoader ) { } public static Class getUserClass ( Object instance ) { } public static Class getUserClass ( Class clazz ) { } public static boolean isCacheSafe ( Class clazz , ClassLoader classLoader ) { } public static String getShortName ( String className ) { } public static String getShortName ( Class clazz ) { } public static String getShortNameAsProperty ( Class clazz ) { } public static String getClassFileName ( Class clazz ) { } public static String getPackageName ( Class clazz ) { } public static String getQualifiedName ( Class clazz ) { } private static String getQualifiedNameForArray ( Class clazz ) { } public static String getQualifiedMethodName ( Method method ) { } public static String getDescriptiveType ( Object value ) { } public static boolean hasConstructor ( Class clazz , Class ... paramTypes ) { } public static Constructor getConstructorIfAvailable ( Class clazz , Class ... paramTypes ) { } public static boolean hasMethod ( Class clazz , String methodName , Class ... paramTypes ) { } public static Method getMethodIfAvailable ( Class clazz , String methodName , Class ... paramTypes ) { } public static int getMethodCountForName ( Class clazz , String methodName ) { } public static boolean hasAtLeastOneMethodWithName ( Class clazz , String methodName ) { } public static Method getMostSpecificMethod ( Method method , Class targetClass ) { } public static Method getStaticMethod ( Class clazz , String methodName , Class ... args ) { } public static boolean isPrimitiveWrapper ( Class clazz ) { } public static boolean isPrimitiveOrWrapper ( Class clazz ) { } public static boolean isPrimitiveArray ( Class clazz ) { } public static boolean isPrimitiveWrapperArray ( Class clazz ) { } public static Class resolvePrimitiveIfNecessary ( Class clazz ) { } public static boolean isAssignable ( Class lhsType , Class rhsType ) { } public static boolean isAssignableValue ( Class type , Object value ) { } public static String convertResourcePathToClassName ( String resourcePath ) { } public static String convertClassNameToResourcePath ( String className ) { } public static String addResourcePathToPackagePath ( Class clazz , String resourceName ) { } public static String classPackageAsResourcePath ( Class clazz ) { } public static String classNamesToString ( Class ... classes ) { } public static String classNamesToString ( Collection < Class > classes ) { } public static Class [ ] getAllInterfaces ( Object instance ) { } public static Class [ ] getAllInterfacesForClass ( Class clazz ) { } public static Class [ ] getAllInterfacesForClass ( Class clazz , ClassLoader classLoader ) { Assert . notNull ( clazz , "Class<seq2seq4repair_space>must<seq2seq4repair_space>not<seq2seq4repair_space>be<seq2seq4repair_space>null" ) ; if ( clazz . isInterface ( ) ) { return new Class [ ] { clazz } ; } List < Class > interfaces = new ArrayList < Class > ( ) ; while ( clazz != null ) { Class [ ] ifcs = clazz . getInterfaces ( ) ; for ( Class ifc : ifcs ) { <START_BUG> if ( ( ( ! ( interfaces . contains ( ifc ) ) ) && ( Modifier . isPublic ( ifc . getModifiers ( ) ) ) ) && ( ( classLoader == null ) || ( ClassUtils . isVisible ( ifc , classLoader ) ) ) ) { <END_BUG> interfaces . add ( ifc ) ; } } clazz = clazz . getSuperclass ( ) ; } return interfaces . toArray ( new Class [ interfaces . size ( ) ] ) ; } public static Set < Class > getAllInterfacesAsSet ( Object instance ) { } public static Set < Class > getAllInterfacesForClassAsSet ( Class clazz ) { } public static Set < Class > getAllInterfacesForClassAsSet ( Class clazz , ClassLoader classLoader ) { } public static Class createCompositeInterface ( Class [ ] interfaces , ClassLoader classLoader ) { } public static boolean isVisible ( Class clazz , ClassLoader classLoader ) { } }

Fix:
if ( ( ! ( interfaces . contains ( ifc ) ) ) && ( ( classLoader == null ) || ( ClassUtils . isVisible ( ifc , classLoader ) ) ) ) {