/hg/icedtea7: Update to u40 b31.

andrew at icedtea.classpath.org andrew at icedtea.classpath.org
Fri Jul 12 03:40:31 PDT 2013


changeset cee33aed78b6 in /hg/icedtea7
details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=cee33aed78b6
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Fri Jul 12 11:40:21 2013 +0100

	Update to u40 b31.

	2013-07-12  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		* Makefile.am:
		(OPENJDK_VERSION): Bump to b31.
		(CORBA_CHANGESET): Update to current HEAD.
		(JAXP_CHANGESET): Likewise.
		(JAXWS_CHANGESET): Likewise.
		(JDK_CHANGESET): Likewise.
		(LANGTOOLS_CHANGESET): Likewise.
		(OPENJDK_CHANGESET): Likewise.
		(CORBA_SHA256SUM): Likewise.
		(JAXP_SHA256SUM): Likewise.
		(JAXWS_SHA256SUM): Likewise.
		(JDK_SHA256SUM): Likewise.
		(LANGTOOLS_SHA256SUM): Likewise.
		(OPENJDK_SHA256SUM): Likewise.
		* hotspot.map: Update default to current HEAD.

	2013-07-01  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		* patches/boot/ecj-diamond.patch,
		* patches/boot/ecj-multicatch.patch:
		Add new cases.
		* patches/boot/ecj-stringswitch.patch:
		Update MethodHandleNatives patch, including
		adding new case.
		* patches/boot/tobin.patch:
		Update following move from sun.awt.X11
		to sun.awt.
		* patches/rhino.patch,
		* patches/systemtap_gc.patch:
		Regenerated.


diffstat:

 ChangeLog                           |   33 +++
 Makefile.am                         |   26 +-
 hotspot.map                         |    2 +-
 patches/boot/ecj-diamond.patch      |   60 ++++++
 patches/boot/ecj-multicatch.patch   |   51 +++++
 patches/boot/ecj-stringswitch.patch |  345 ++++++++++++++++++++---------------
 patches/boot/tobin.patch            |   38 ++-
 patches/rhino.patch                 |   54 ++--
 patches/systemtap_gc.patch          |   54 ++--
 9 files changed, 426 insertions(+), 237 deletions(-)

diffs (truncated from 1028 to 500 lines):

diff -r 6b8afdb43912 -r cee33aed78b6 ChangeLog
--- a/ChangeLog	Mon Jul 08 18:02:07 2013 +0100
+++ b/ChangeLog	Fri Jul 12 11:40:21 2013 +0100
@@ -1,3 +1,36 @@
+2013-07-12  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	* Makefile.am:
+	(OPENJDK_VERSION): Bump to b31.
+	(CORBA_CHANGESET): Update to current HEAD.
+	(JAXP_CHANGESET): Likewise.
+	(JAXWS_CHANGESET): Likewise.
+	(JDK_CHANGESET): Likewise.
+	(LANGTOOLS_CHANGESET): Likewise.
+	(OPENJDK_CHANGESET): Likewise.
+	(CORBA_SHA256SUM): Likewise.
+	(JAXP_SHA256SUM): Likewise.
+	(JAXWS_SHA256SUM): Likewise.
+	(JDK_SHA256SUM): Likewise.
+	(LANGTOOLS_SHA256SUM): Likewise.
+	(OPENJDK_SHA256SUM): Likewise.
+	* hotspot.map: Update default to current HEAD.
+
+2013-07-01  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	* patches/boot/ecj-diamond.patch,
+	* patches/boot/ecj-multicatch.patch:
+	Add new cases.
+	* patches/boot/ecj-stringswitch.patch:
+	Update MethodHandleNatives patch, including
+	adding new case.
+	* patches/boot/tobin.patch:
+	Update following move from sun.awt.X11
+	to sun.awt.
+	* patches/rhino.patch,
+	* patches/systemtap_gc.patch:
+	Regenerated.
+
 2013-06-11  Andrew John Hughes  <gnu.andrew at member.fsf.org>
 
 	* NEWS: Add release notes for 2.1.9, 2.2.9,
diff -r 6b8afdb43912 -r cee33aed78b6 Makefile.am
--- a/Makefile.am	Mon Jul 08 18:02:07 2013 +0100
+++ b/Makefile.am	Fri Jul 12 11:40:21 2013 +0100
@@ -1,22 +1,22 @@
 # Dependencies
 
-OPENJDK_VERSION = b20
+OPENJDK_VERSION = b31
 JDK_UPDATE_VERSION = 40
 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION)
 
-CORBA_CHANGESET = fd00f67b65c4
-JAXP_CHANGESET = 7dc9a882c6f8
-JAXWS_CHANGESET = ea9a36dfd4ee
-JDK_CHANGESET = 3f1f89553b54
-LANGTOOLS_CHANGESET = 68c60cde94a7
-OPENJDK_CHANGESET = 78c6b2167b94
+CORBA_CHANGESET = 2abbbec3c03c
+JAXP_CHANGESET = 9ce0c87f3e87
+JAXWS_CHANGESET = 7278e9a73874
+JDK_CHANGESET = afaedb56b499
+LANGTOOLS_CHANGESET = c523dcea4ff3
+OPENJDK_CHANGESET = 424e7e279ef6
 
-CORBA_SHA256SUM = 57e71ca50c31456ef8a3086cfe81e6ff627ea207645bbd4dced1e73c51528c56
-JAXP_SHA256SUM = 293bcceac6557965c201437b123cef23c5855dbb22b25f487ba87ccdd1991355
-JAXWS_SHA256SUM = 814fc497356289efb153509837cd97d5a019c388f7f9b1ad98247cf445b9c11d
-JDK_SHA256SUM = ca8ff71beba0303d2593f97706a8638ea1948d8387a533a16fce70d6bb85bf88
-LANGTOOLS_SHA256SUM = 807e8d5301dee8e0f532096237987f4b812c472e3d9182d349c1b3371676ec59
-OPENJDK_SHA256SUM = 8de6db8e7b249577f8cfbd343de3a76068200af5ead43255e8f77de3ac34a38f
+CORBA_SHA256SUM = 659a2018c44ecc7bc3c287431bd92b5504270ccad81d22f3ff0bcc8aa92a1b75
+JAXP_SHA256SUM = 465110701521ee63e73fde3476c1254b3abdbbcf98a95d83d3ad6319b25cec95
+JAXWS_SHA256SUM = 8c41fcc880171b77e4cfed7a03655770776f4f69ba0c936c3baff5f394e87812
+JDK_SHA256SUM = 1f949d7ecf55cd580c2bba9c81cf3436640ead98a3ea17fcf60b9fdadbb1919b
+LANGTOOLS_SHA256SUM = 5ec38227964325397a649c0d1d12b9a64e2a81a35f69da4447708b48b3ad6fd7
+OPENJDK_SHA256SUM = 9fd129437c81a2d8da3b8b176d1dd2a58e656115e08547e4ad819996b5d136d9
 
 CACAO_VERSION = e215e36be9fc
 CACAO_SHA256SUM = 4966514c72ee7ed108b882d9b6e65c3adf8a8f9c2dccb029f971b3c8cb4870ab
diff -r 6b8afdb43912 -r cee33aed78b6 hotspot.map
--- a/hotspot.map	Mon Jul 08 18:02:07 2013 +0100
+++ b/hotspot.map	Fri Jul 12 11:40:21 2013 +0100
@@ -1,2 +1,2 @@
 # version url changeset sha256sum
-default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 25fe5bf8dee3 844c0c901bda689dd28f3e7846973431bf354bed1efc793d75b78844e21107ce
+default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 2efa7b70e843 332e1ccf4a3255a82cfbe962d3e5bee0fe7d3fe6b60bf11572c01262a7183adf
diff -r 6b8afdb43912 -r cee33aed78b6 patches/boot/ecj-diamond.patch
--- a/patches/boot/ecj-diamond.patch	Mon Jul 08 18:02:07 2013 +0100
+++ b/patches/boot/ecj-diamond.patch	Fri Jul 12 11:40:21 2013 +0100
@@ -6997,3 +6997,63 @@
          List<Thread> threads = new ArrayList<Thread>();
          for (int i = 0; i < threadCount; i++) {
              RandomCollector r = new RandomCollector();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectStreamClass.java openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectStreamClass.java	2013-06-27 16:06:42.289384018 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java	2013-06-27 16:07:06.489768521 +0100
+@@ -1164,7 +1164,7 @@
+             end = end.getSuperclass();
+         }
+ 
+-        HashSet<String> oscNames = new HashSet<>(3);
++        HashSet<String> oscNames = new HashSet<String>(3);
+ 
+         for (ObjectStreamClass d = this; d != null; d = d.superDesc) {
+             if (oscNames.contains(d.name)) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/font/CreatedFontTracker.java openjdk-boot/jdk/src/share/classes/sun/font/CreatedFontTracker.java
+--- openjdk-boot.orig/jdk/src/share/classes/sun/font/CreatedFontTracker.java	2013-06-27 16:06:53.297558922 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/font/CreatedFontTracker.java	2013-06-27 16:07:32.294178507 +0100
+@@ -106,7 +106,7 @@
+      * Note that this only applies to createFont() from an InputStream object.
+      */
+     private static class TempFileDeletionHook {
+-        private static HashMap<File, OutputStream> files = new HashMap<>();
++        private static HashMap<File, OutputStream> files = new HashMap<File, OutputStream>();
+ 
+         private static Thread t = null;
+         static void init() {
+diff --git a/src/share/classes/com/sun/media/sound/AbstractLine.java b/src/share/classes/com/sun/media/sound/AbstractLine.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java
+@@ -54,7 +54,7 @@
+      * Contains event dispatcher per thread group.
+      */
+     private static final Map<ThreadGroup, EventDispatcher> dispatchers =
+-            new WeakHashMap<>();
++      new WeakHashMap<ThreadGroup, EventDispatcher>();
+ 
+     /**
+      * Constructs a new AbstractLine.
+diff --git a/src/share/classes/com/sun/media/sound/RealTimeSequencer.java b/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
+@@ -59,7 +59,7 @@
+      * dispatcher instance with a factory in EventDispatcher
+      */
+     private static final Map<ThreadGroup, EventDispatcher> dispatchers =
+-            new WeakHashMap<>();
++      new WeakHashMap<ThreadGroup, EventDispatcher>();
+ 
+     /**
+      * All RealTimeSequencers share this info object.
+diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java
+--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java	2013-06-27 20:05:19.200970932 +0100
++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java	2013-06-27 20:05:33.857203747 +0100
+@@ -113,7 +113,7 @@
+             SocketAddress[] saa)
+     {
+          SecurityManager sm = System.getSecurityManager();
+-         Set<SocketAddress> set = new HashSet<>(saa.length);
++         Set<SocketAddress> set = new HashSet<SocketAddress>(saa.length);
+          for (SocketAddress sa : saa) {
+              set.add(getRevealedLocalAddress(sa, sm));
+          }
diff -r 6b8afdb43912 -r cee33aed78b6 patches/boot/ecj-multicatch.patch
--- a/patches/boot/ecj-multicatch.patch	Mon Jul 08 18:02:07 2013 +0100
+++ b/patches/boot/ecj-multicatch.patch	Fri Jul 12 11:40:21 2013 +0100
@@ -401,3 +401,54 @@
              throw new InternalError(e.toString());
          } catch (InvocationTargetException e) {
              Throwable t = e.getCause();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java	2013-06-27 15:56:57.456088537 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java	2013-06-27 16:02:12.857102777 +0100
+@@ -402,7 +402,13 @@
+                         try {
+                             ServerNotifForwarder.checkMBeanPermission(this.mBeanServer,
+                                                       candidate.getObjectName(),"addNotificationListener");
+-                        } catch (InstanceNotFoundException | SecurityException e) {
++                        } catch (InstanceNotFoundException e) {
++                            if (logger.debugOn()) {
++                                logger.debug("fetchNotifications", "candidate: " + candidate + " skipped. exception " + e);
++                            }
++                            ++nextSeq;
++                            continue;
++                        } catch (SecurityException e) {
+                             if (logger.debugOn()) {
+                                 logger.debug("fetchNotifications", "candidate: " + candidate + " skipped. exception " + e);
+                             }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java	2013-06-27 15:56:27.295609027 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java	2013-06-27 16:00:59.631938678 +0100
+@@ -1024,10 +1024,10 @@
+                                      dir,
+                                      redirects,
+                                      redirectErrorStream);
+-        } catch (IOException | IllegalArgumentException e) {
++        } catch (IOException e) {
+             String exceptionInfo = ": " + e.getMessage();
+             Throwable cause = e;
+-            if ((e instanceof IOException) && security != null) {
++            if (security != null) {
+                 // Can not disclose the fail reason for read-protected files.
+                 try {
+                     security.checkRead(prog);
+@@ -1039,6 +1039,16 @@
+             // It's much easier for us to create a high-quality error
+             // message than the low-level C code which found the problem.
+             throw new IOException(
++                "Cannot run program \"" + prog + "\""
++                + (dir == null ? "" : " (in directory \"" + dir + "\")")
++                + exceptionInfo,
++                cause);
++        } catch (IllegalArgumentException e) {
++            String exceptionInfo = ": " + e.getMessage();
++            Throwable cause = e;
++            // It's much easier for us to create a high-quality error
++            // message than the low-level C code which found the problem.
++            throw new IOException(
+                 "Cannot run program \"" + prog + "\""
+                 + (dir == null ? "" : " (in directory \"" + dir + "\")")
+                 + exceptionInfo,
diff -r 6b8afdb43912 -r cee33aed78b6 patches/boot/ecj-stringswitch.patch
--- a/patches/boot/ecj-stringswitch.patch	Mon Jul 08 18:02:07 2013 +0100
+++ b/patches/boot/ecj-stringswitch.patch	Fri Jul 12 11:40:21 2013 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-04-04 13:22:25.036506097 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	2013-07-02 03:38:10.090272900 +0100
 @@ -350,19 +350,16 @@
              if (attrCommands != null) {
                  Object lkey = Attribute.keyForLookup(ctype, name);
@@ -32,8 +32,8 @@
              // Find canonical instance of the requested attribute.
              Attribute a = Attribute.lookup(Package.attrDefs, ctype, name);
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-04-04 13:22:25.048506291 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java	2013-07-02 03:38:10.106273156 +0100
 @@ -73,16 +73,14 @@
          {
              // Non-standard, undocumented "--unpack" switch enables unpack mode.
@@ -91,8 +91,8 @@
  
          if (logFile != null && !logFile.equals("")) {
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-04-04 13:22:25.052506355 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java	2013-07-02 03:38:10.106273156 +0100
 @@ -1116,30 +1116,25 @@
          // what is one of { Debug, Compile, Constant, Exceptions, InnerClasses }
          if (verbose > 0)
@@ -144,8 +144,8 @@
      }
  
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-04-04 13:22:25.056506419 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java	2013-07-02 03:38:10.106273156 +0100
 @@ -64,17 +64,23 @@
  
      protected NTLM(String version) throws NTLMException {
@@ -182,9 +182,9 @@
              fac = SecretKeyFactory.getInstance ("DES");
              cipher = Cipher.getInstance ("DES/ECB/NoPadding");
 diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-04-04 13:32:45.886517863 +0100
-@@ -327,12 +327,11 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-07-01 15:22:10.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	2013-07-02 03:42:53.718781065 +0100
+@@ -328,12 +328,11 @@
                                       Object[] appendixResult) {
          try {
              if (defc == MethodHandle.class && refKind == REF_invokeVirtual) {
@@ -202,59 +202,24 @@
              }
          } catch (Throwable ex) {
              if (ex instanceof LinkageError)
-@@ -395,111 +394,106 @@
-     static boolean isCallerSensitive(MemberName mem) {
-         if (!mem.isInvocable())  return false;  // fields are not caller sensitive
-         Class<?> defc = mem.getDeclaringClass();
--        switch (mem.getName()) {
+@@ -403,122 +402,118 @@
+     // this method is also called by test/sun/reflect/CallerSensitiveFinder
+     // to validate the hand-maintained list
+     private static boolean isCallerSensitiveMethod(Class<?> defc, String method) {
+-        switch (method) {
 -        case "doPrivileged":
 -        case "doPrivilegedWithCombiner":
-+	String memName = mem.getName();
-+	if ("doPrivileged".equals(memName) ||
-+	    "doPrivilegedWithCombiner".equals(memName)) {
++	if ("doPrivileged".equals(method) ||
++	    "doPrivilegedWithCombiner".equals(method)) {
              return defc == java.security.AccessController.class;
 -        case "checkMemberAccess":
-+	} else if ("checkMemberAccess".equals(memName)) {
-             return canBeCalledVirtual(mem, java.lang.SecurityManager.class);
+-            return defc == java.lang.SecurityManager.class;
 -        case "getUnsafe":
 -            return defc == sun.misc.Unsafe.class;
 -        case "lookup":
-+        } else if ("getUnsafe".equals(memName)) {
-+             return defc == sun.misc.Unsafe.class;
-+	} else if ("lookup".equals(memName)) {
-             return defc == java.lang.invoke.MethodHandles.class;
--        case "findStatic":
--        case "findVirtual":
--        case "findConstructor":
--        case "findSpecial":
--        case "findGetter":
--        case "findSetter":
--        case "findStaticGetter":
--        case "findStaticSetter":
--        case "bind":
--        case "unreflect":
--        case "unreflectSpecial":
--        case "unreflectConstructor":
--        case "unreflectGetter":
--        case "unreflectSetter":
-+	} else if ("findStatic".equals(memName) ||
-+		   "findVirtual".equals(memName) || 
-+		   "findConstructor".equals(memName) ||
-+		   "findSpecial".equals(memName) ||
-+		   "findGetter".equals(memName) ||
-+		   "findSetter".equals(memName) ||
-+		   "findStaticGetter".equals(memName) ||
-+		   "findStaticSetter".equals(memName) ||
-+		   "bind".equals(memName) ||
-+		   "unreflect".equals(memName) ||
-+		   "unreflectSpecial".equals(memName) ||
-+		   "unreflectConstructor".equals(memName) ||
-+		   "unreflectGetter".equals(memName) ||
-+		   "unreflectSetter".equals(memName)) {
-             return defc == java.lang.invoke.MethodHandles.Lookup.class;
+-            return defc == java.lang.invoke.MethodHandles.class;
 -        case "invoke":
-+        } else if ("invoke".equals(memName)) {
-             return defc == java.lang.reflect.Method.class;
+-            return defc == java.lang.reflect.Method.class;
 -        case "get":
 -        case "getBoolean":
 -        case "getByte":
@@ -273,33 +238,17 @@
 -        case "setLong":
 -        case "setFloat":
 -        case "setDouble":
-+	} else if ("get".equals(memName) ||
-+		   "getBoolean".equals(memName) ||
-+		   "getByte".equals(memName) ||
-+		   "getChar".equals(memName) ||
-+		   "getShort".equals(memName) ||
-+		   "getInt".equals(memName) ||
-+		   "getFloat".equals(memName) ||
-+		   "getDouble".equals(memName) ||
-+		   "set".equals(memName) ||
-+		   "setBoolean".equals(memName) ||
-+		   "setByte".equals(memName) ||
-+		   "setChar".equals(memName) ||
-+		   "setShort".equals(memName) ||
-+		   "setInt".equals(memName) ||
-+		   "setLong".equals(memName) ||
-+		   "setFloat".equals(memName) ||
-+		   "setDouble".equals(memName)) {
-             return defc == java.lang.reflect.Field.class;
+-            return defc == java.lang.reflect.Field.class;
 -        case "newInstance":
-+	} else if ("newInstance".equals(memName)) {
-             if (defc == java.lang.reflect.Constructor.class)  return true;
-             if (defc == java.lang.Class.class)  return true;
+-            if (defc == java.lang.reflect.Constructor.class)  return true;
+-            if (defc == java.lang.Class.class)  return true;
 -            break;
+-        case "getFields":
+-            return defc == java.lang.Class.class ||
+-                   defc == javax.sql.rowset.serial.SerialJavaObject.class;
 -        case "forName":
 -        case "getClassLoader":
 -        case "getClasses":
--        case "getFields":
 -        case "getMethods":
 -        case "getConstructors":
 -        case "getDeclaredClasses":
@@ -312,88 +261,178 @@
 -        case "getDeclaredField":
 -        case "getDeclaredMethod":
 -        case "getDeclaredConstructor":
-+	} else if ("forName".equals(memName) ||
-+		   "getClassLoader".equals(memName) ||
-+		   "getClasses".equals(memName) ||
-+		   "getFields".equals(memName) ||
-+		   "getMethods".equals(memName) ||
-+		   "getConstructors".equals(memName) ||
-+		   "getDeclaredClasses".equals(memName) ||
-+		   "getDeclaredFields".equals(memName) ||
-+		   "getDeclaredMethods".equals(memName) ||
-+		   "getDeclaredConstructors".equals(memName) ||
-+		   "getField".equals(memName) ||
-+		   "getMethod".equals(memName) ||
-+		   "getConstructor".equals(memName) ||
-+		   "getDeclaredField".equals(memName) ||
-+		   "getDeclaredMethod".equals(memName) ||
-+		   "getDeclaredConstructor".equals(memName)) {
-             return defc == java.lang.Class.class;
+-        case "getEnclosingClass":
+-        case "getEnclosingMethod":
+-        case "getEnclosingConstructor":
+-            return defc == java.lang.Class.class;
 -        case "getConnection":
 -        case "getDriver":
 -        case "getDrivers":
 -        case "deregisterDriver":
-+	} else if ("getConnection".equals(memName) ||
-+		   "getDriver".equals(memName) ||
-+		   "getDrivers".equals(memName) ||
-+		   "deregisterDriver".equals(memName)) {
-             return defc == java.sql.DriverManager.class;
+-            return defc == java.sql.DriverManager.class;
 -        case "newUpdater":
-+        } else if ("newUpdater".equals(memName)) {
-             if (defc == java.util.concurrent.atomic.AtomicIntegerFieldUpdater.class)  return true;
-             if (defc == java.util.concurrent.atomic.AtomicLongFieldUpdater.class)  return true;
-             if (defc == java.util.concurrent.atomic.AtomicReferenceFieldUpdater.class)  return true;
+-            if (defc == java.util.concurrent.atomic.AtomicIntegerFieldUpdater.class)  return true;
+-            if (defc == java.util.concurrent.atomic.AtomicLongFieldUpdater.class)  return true;
+-            if (defc == java.util.concurrent.atomic.AtomicReferenceFieldUpdater.class)  return true;
 -            break;
 -        case "getContextClassLoader":
+-            return defc == java.lang.Thread.class;
+-        case "getPackage":
+-        case "getPackages":
+-            return defc == java.lang.Package.class;
+-        case "getParent":
+-        case "getSystemClassLoader":
+-            return defc == java.lang.ClassLoader.class;
+-        case "load":
+-        case "loadLibrary":
+-            if (defc == java.lang.Runtime.class)  return true;
+-            if (defc == java.lang.System.class)  return true;
+-            break;
+-        case "getCallerClass":
+-            if (defc == sun.reflect.Reflection.class)  return true;
+-            if (defc == java.lang.System.class)  return true;
+-            break;
+-        case "getCallerClassLoader":
+-            return defc == java.lang.ClassLoader.class;
+-        case "registerAsParallelCapable":
+-            return defc == java.lang.ClassLoader.class;
+-        case "getProxyClass":
+-        case "newProxyInstance":
+-            return defc == java.lang.reflect.Proxy.class;
+-        case "asInterfaceInstance":
+-            return defc == java.lang.invoke.MethodHandleProxies.class;
+-        case "getBundle":
+-        case "clearCache":
+-            return defc == java.util.ResourceBundle.class;
+-        case "getType":
+-            return defc == java.io.ObjectStreamField.class;
+-        case "forClass":
+-            return defc == java.io.ObjectStreamClass.class;
+-        case "getLogger":
+-            return defc == java.util.logging.Logger.class;
+-        case "getAnonymousLogger":
+-            return defc == java.util.logging.Logger.class;
+-        }
+-        return false;
++	} else if ("checkMemberAccess".equals(method)) {
++             return defc == java.lang.SecurityManager.class;
++        } else if ("getUnsafe".equals(method)) {
++             return defc == sun.misc.Unsafe.class;
++	} else if ("lookup".equals(method)) {
++             return defc == java.lang.invoke.MethodHandles.class;
++	} else if ("invoke".equals(method)) {
++             return defc == java.lang.reflect.Method.class;
++	} else if ("get".equals(method) ||
++		   "getBoolean".equals(method) ||
++		   "getByte".equals(method) ||
++		   "getChar".equals(method) ||
++		   "getShort".equals(method) ||
++		   "getInt".equals(method) ||
++		   "getLong".equals(method) ||
++		   "getFloat".equals(method) ||
++		   "getDouble".equals(method) ||
++		   "set".equals(method) ||
++		   "setBoolean".equals(method) ||
++		   "setByte".equals(method) ||
++		   "setChar".equals(method) ||
++		   "setShort".equals(method) ||
++		   "setInt".equals(method) ||
++		   "setLong".equals(method) ||
++		   "setFloat".equals(method) ||
++		   "setDouble".equals(method)) {
++             return defc == java.lang.reflect.Field.class;
++	} else if ("newInstance".equals(method)) {
++             if (defc == java.lang.reflect.Constructor.class)  return true;
++             if (defc == java.lang.Class.class)  return true;
++	} else if ("getFields".equals(method)) {
++             return defc == java.lang.Class.class ||
++                    defc == javax.sql.rowset.serial.SerialJavaObject.class;
++	} else if ("forName".equals(method) ||
++		   "getClassLoader".equals(method) ||
++		   "getClasses".equals(method) ||
++		   "getFields".equals(method) ||
++		   "getMethods".equals(method) ||



More information about the distro-pkg-dev mailing list