965 966 Set<Class<?>> classes = new HashSet<>(); 967 classes.add(StackWalker.class); 968 classes.add(StackStreamFactory.class); 969 classes.add(AbstractStackWalker.class); 970 return classes; 971 } 972 973 private static boolean filterStackWalkImpl(Class<?> c) { 974 return stackWalkImplClasses.contains(c) || 975 c.getName().startsWith("java.util.stream."); 976 } 977 978 // MethodHandle frames are not hidden and CallerClassFinder has 979 // to filter them out 980 private static boolean isMethodHandleFrame(Class<?> c) { 981 return c.getName().startsWith("java.lang.invoke."); 982 } 983 984 private static boolean isReflectionFrame(Class<?> c) { 985 if (c.getName().startsWith("jdk.internal.reflect") && 986 !MethodAccessor.class.isAssignableFrom(c) && 987 !ConstructorAccessor.class.isAssignableFrom(c)) { 988 throw new InternalError("Not jdk.internal.reflect.MethodAccessor" 989 + " or jdk.internal.reflect.ConstructorAccessor: " 990 + c.toString()); 991 } 992 // ## should filter all @Hidden frames? 993 return c == Method.class || 994 c == Constructor.class || 995 MethodAccessor.class.isAssignableFrom(c) || 996 ConstructorAccessor.class.isAssignableFrom(c) || 997 c.getName().startsWith("java.lang.invoke.LambdaForm"); 998 } 999 1000 } | 965 966 Set<Class<?>> classes = new HashSet<>(); 967 classes.add(StackWalker.class); 968 classes.add(StackStreamFactory.class); 969 classes.add(AbstractStackWalker.class); 970 return classes; 971 } 972 973 private static boolean filterStackWalkImpl(Class<?> c) { 974 return stackWalkImplClasses.contains(c) || 975 c.getName().startsWith("java.util.stream."); 976 } 977 978 // MethodHandle frames are not hidden and CallerClassFinder has 979 // to filter them out 980 private static boolean isMethodHandleFrame(Class<?> c) { 981 return c.getName().startsWith("java.lang.invoke."); 982 } 983 984 private static boolean isReflectionFrame(Class<?> c) { 985 // ## should filter all @Hidden frames? 986 return c == Method.class || 987 c == Constructor.class || 988 MethodAccessor.class.isAssignableFrom(c) || 989 ConstructorAccessor.class.isAssignableFrom(c) || 990 c.getName().startsWith("java.lang.invoke.LambdaForm"); 991 } 992 993 } |