Peter spots the redundant read edges are added to dynamic module when creating 
a proxy class.   Proxy class does not access super interfaces of proxy 
interfaces.   I have verified this simple patch with all core tests and JCK api 
tests.

diff --git a/src/java.base/share/classes/java/lang/reflect/Proxy.java 
b/src/java.base/share/classes/java/lang/reflect/Proxy.java
--- a/src/java.base/share/classes/java/lang/reflect/Proxy.java
+++ b/src/java.base/share/classes/java/lang/reflect/Proxy.java
@@ -804,11 +804,6 @@
                     continue;
                 }
                 ensureAccess(target, c);
-
-                // add all superinterfaces
-                for (Class<?> intf : c.getInterfaces()) {
-                    deque.add(intf);
-                }
             }
 
             // set up proxy class access to types referenced in the method 
signature

Reply via email to