/hg/release/icedtea7-2.2: 3 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Thu Jun 27 18:49:24 PDT 2013
changeset 04d2a30a17cf in /hg/release/icedtea7-2.2
details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=04d2a30a17cf
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Fri Jun 28 02:33:43 2013 +0100
Include latest security patches.
2013-06-27 Andrew John Hughes <gnu.andrew at member.fsf.org>
* Makefile.am,
(HOTSPOT_CHANGESET): Update to IcedTea7 2.2.9 tag,
bringing in latest security patches.
(CORBA_CHANGESET): Likewise.
(JAXP_CHANGESET): Likewise.
(JAXWS_CHANGESET): Likewise.
(JDK_CHANGESET): Likewise.
(LANGTOOLS_CHANGESET): Likewise.
(OPENJDK_CHANGESET): Likewise.
(HOTSPOT_SHA256SUM): Likewise.
(CORBA_SHA256SUM): Likewise.
(JAXP_SHA256SUM): Likewise.
(JAXWS_SHA256SUM): Likewise.
(JDK_SHA256SUM): Likewise.
(LANGTOOLS_SHA256SUM): Likewise.
(OPENJDK_SHA256SUM): Likewise.
* 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.
changeset ad1e410826c5 in /hg/release/icedtea7-2.2
details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=ad1e410826c5
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Fri Jun 28 02:45:55 2013 +0100
Update NEWS with security fixes & updates from 7u25.
2013-06-27 Andrew John Hughes <gnu.andrew at member.fsf.org>
* NEWS: Add latest security fixes and other
changes found in 7u25.
changeset c8f337eac826 in /hg/release/icedtea7-2.2
details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=c8f337eac826
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Fri Jun 28 02:49:03 2013 +0100
Add Red Hat bugzilla references.
2013-06-25 Andrew John Hughes <gnu.andrew at member.fsf.org>
* NEWS: Add Red Hat bugzilla references.
diffstat:
ChangeLog | 37 ++++++
Makefile.am | 28 ++--
NEWS | 126 +++++++++++++++++++++
patches/boot/ecj-diamond.patch | 60 ++++++++++
patches/boot/ecj-multicatch.patch | 51 ++++++++
patches/boot/ecj-stringswitch.patch | 212 ++++++++++++++++++-----------------
patches/boot/tobin.patch | 38 +++--
7 files changed, 421 insertions(+), 131 deletions(-)
diffs (truncated from 698 to 500 lines):
diff -r 2f50c50bc1d0 -r c8f337eac826 ChangeLog
--- a/ChangeLog Wed May 01 00:04:40 2013 +0100
+++ b/ChangeLog Fri Jun 28 02:49:03 2013 +0100
@@ -1,3 +1,40 @@
+2013-06-25 Andrew John Hughes <gnu.andrew at member.fsf.org>
+
+ * NEWS: Add Red Hat bugzilla references.
+
+2013-06-27 Andrew John Hughes <gnu.andrew at member.fsf.org>
+
+ * NEWS: Add latest security fixes and other
+ changes found in 7u25.
+
+2013-06-27 Andrew John Hughes <gnu.andrew at member.fsf.org>
+
+ * Makefile.am,
+ (HOTSPOT_CHANGESET): Update to IcedTea7 2.2.9 tag,
+ bringing in latest security patches.
+ (CORBA_CHANGESET): Likewise.
+ (JAXP_CHANGESET): Likewise.
+ (JAXWS_CHANGESET): Likewise.
+ (JDK_CHANGESET): Likewise.
+ (LANGTOOLS_CHANGESET): Likewise.
+ (OPENJDK_CHANGESET): Likewise.
+ (HOTSPOT_SHA256SUM): Likewise.
+ (CORBA_SHA256SUM): Likewise.
+ (JAXP_SHA256SUM): Likewise.
+ (JAXWS_SHA256SUM): Likewise.
+ (JDK_SHA256SUM): Likewise.
+ (LANGTOOLS_SHA256SUM): Likewise.
+ (OPENJDK_SHA256SUM): Likewise.
+ * 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.
+
2013-05-01 Andrew John Hughes <gnu.andrew at member.fsf.org>
* configure.ac: Bump to 2.2.9pre.
diff -r 2f50c50bc1d0 -r c8f337eac826 Makefile.am
--- a/Makefile.am Wed May 01 00:04:40 2013 +0100
+++ b/Makefile.am Fri Jun 28 02:49:03 2013 +0100
@@ -4,21 +4,21 @@
JDK_UPDATE_VERSION = 05
COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION)
-HOTSPOT_CHANGESET = 168d05b42b89
-CORBA_CHANGESET = 529355376925
-JAXP_CHANGESET = 839055d03a54
-JAXWS_CHANGESET = c7ac0744f92f
-JDK_CHANGESET = 1a455d17b871
-LANGTOOLS_CHANGESET = ae5ba074188d
-OPENJDK_CHANGESET = 1a406488fe33
+HOTSPOT_CHANGESET = 89a7d38e2e31
+CORBA_CHANGESET = 4fdf74f61b48
+JAXP_CHANGESET = 5ce90e84aa21
+JAXWS_CHANGESET = 5942fdde2af6
+JDK_CHANGESET = 25f39684638a
+LANGTOOLS_CHANGESET = 1c14c3a8ea14
+OPENJDK_CHANGESET = 0cc24300e6de
-HOTSPOT_SHA256SUM = 873651a61cffe2e37f16bf6e6558e2d72fd7a9a50319fd83e3854710ba9eea65
-CORBA_SHA256SUM = b4f0eca0f37b581ace14f24b5aea2db99321e027c4bc2a044b9c796d45804a07
-JAXP_SHA256SUM = cb1007e7c9bdfc1a12d85dbc31adc2fb33ef4f6e0e36efda95ad3ba80556289b
-JAXWS_SHA256SUM = b12a65e8793065da0f4243f2b1029e9e1c6c15611612aeb5d8c45f1e58a91875
-JDK_SHA256SUM = 829ed69c856e7eb344a15f3f3d06166bc6627a6eb5ceec0ccef6ae742ec3d9e6
-LANGTOOLS_SHA256SUM = 8193a0309874143e10e8002d8c5fcf10aefc012af74d8a3bb4416611dfe9fb7f
-OPENJDK_SHA256SUM = 196845c4edcf0d82ed72661b381c83f2d0e6e0d4b8952e002decd3483280388e
+HOTSPOT_SHA256SUM = 895802e8e5d3661ef9ed7f8530a595c899f056faf73b4cfa7d603777ba8f28f0
+CORBA_SHA256SUM = 01da9cb128138afa48f9d17e800f90d1fea54db876551fe10145f4aaac01b0b3
+JAXP_SHA256SUM = 479516db3d57f1cf6ec67c26229fb70f59499a6794b90cbabb4c47d930d13229
+JAXWS_SHA256SUM = 535c443eb71aead164a9e790f368c8424a51190d25027847820a6705bee3ff72
+JDK_SHA256SUM = 858fa92c115de0aa917622d2e173604f53c3c8bd75119622d1711485c695f430
+LANGTOOLS_SHA256SUM = b6b53a5f89c046abd8f38d0b4626611ca688c1de7cbdc2e52790d9aebd7dacf3
+OPENJDK_SHA256SUM = 070c32f4126887949b2363a4379a367d7fc7f1c0ffa4d782f430c3e39a2961e9
CACAO_VERSION = a567bcb7f589
CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9
diff -r 2f50c50bc1d0 -r c8f337eac826 NEWS
--- a/NEWS Wed May 01 00:04:40 2013 +0100
+++ b/NEWS Fri Jun 28 02:49:03 2013 +0100
@@ -12,6 +12,132 @@
New in release 2.2.9 (2013-06-XX):
+* New features
+ - PR1378: Add AArch64 support to Zero
+* Security fixes
+ - S6741606, CVE-2013-2407: Integrate Apache Santuario
+ - S7158805, CVE-2013-2445: Better rewriting of nested subroutine calls
+ - S7170730, CVE-2013-2451: Improve Windows network stack support.
+ - S8000638, CVE-2013-2450: Improve deserialization
+ - S8000642, CVE-2013-2446: Better handling of objects for transportation
+ - S8001032: Restrict object access
+ - S8001033, CVE-2013-2452: Refactor network address handling in virtual machine identifiers
+ - S8001034, CVE-2013-1500: Memory management improvements
+ - S8001038, CVE-2013-2444: Resourcefully handle resources
+ - S8001043: Clarify definition restrictions
+ - S8001308: Update display of applet windows
+ - S8001309: Better handling of annotation interfaces
+ - S8001318, CVE-2013-2447: Socket.getLocalAddress not consistent with InetAddress.getLocalHost
+ - S8001330, CVE-2013-2443: Improve on checking order
+ - S8003703, CVE-2013-2412: Update RMI connection dialog box
+ - S8004288, CVE-2013-2449: (fs) Files.probeContentType problems
+ - S8004584: Augment applet contextualization
+ - S8005007: Better glyph processing
+ - S8006328, CVE-2013-2448: Improve robustness of sound classes
+ - S8006611: Improve scripting
+ - S8007467: Improve robustness of JMX internal APIs
+ - S8007471: Improve MBean notifications
+ - S8007812, CVE-2013-2455: (reflect) Class.getEnclosingMethod problematic for some classes
+ - S8007925: Improve cmsStageAllocLabV2ToV4curves
+ - S8007926: Improve cmsPipelineDup
+ - S8007927: Improve cmsAllocProfileSequenceDescription
+ - S8007929: Improve CurvesAlloc
+ - S8008120, CVE-2013-2457: Improve JMX class checking
+ - S8008124, CVE-2013-2453: Better compliance testing
+ - S8008128: Better API coherence for JMX
+ - S8008132, CVE-2013-2456: Better serialization support
+ - S8008585: Better JMX data handling
+ - S8008593: Better URLClassLoader resource management
+ - S8008603: Improve provision of JMX providers
+ - S8008607: Better input checking in JMX
+ - S8008611: Better handling of annotations in JMX
+ - S8008615: Improve robustness of JMX internal APIs
+ - S8008623: Better handling of MBeanServers
+ - S8008744, CVE-2013-2407: Rework part of fix for JDK-6741606
+ - S8008982: Adjust JMX for underlying interface changes
+ - S8009004: Better implementation of RMI connections
+ - S8009008: Better manage management-api
+ - S8009013: Better handling of T2K glyphs
+ - S8009034: Improve resulting notifications in JMX
+ - S8009038: Improve JMX notification support
+ - S8009057, CVE-2013-2448: Improve MIDI event handling
+ - S8009067: Improve storing keys in KeyStore
+ - S8009071, CVE-2013-2459: Improve shape handling
+ - S8009235: Improve handling of TSA data
+ - S8009424, CVE-2013-2458: Adapt Nashorn to JSR-292 implementation change
+ - S8009554, CVE-2013-2454: Improve SerialJavaObject.getFields
+ - S8009654: Improve stability of cmsnamed
+ - S8010209, CVE-2013-2460: Better provision of factories
+ - S8011243, CVE-2013-2470: Improve ImagingLib
+ - S8011248, CVE-2013-2471: Better Component Rasters
+ - S8011253, CVE-2013-2472: Better Short Component Rasters
+ - S8011257, CVE-2013-2473: Better Byte Component Rasters
+ - S8012375, CVE-2013-1571: Improve Javadoc framing
+ - S8012421: Better positioning of PairPositioning
+ - S8012438, CVE-2013-2463: Better image validation
+ - S8012597, CVE-2013-2465: Better image channel verification
+ - S8012601, CVE-2013-2469: Better validation of image layouts
+ - S8014281, CVE-2013-2461: Better checking of XML signature
+ - S8015997: Additional improvement in Javadoc framing
+* Bug fixes
+ - S7053526: Upgrade JDK 8 to use Little CMS 2.4
+ - S7124347: [macosx] java.lang.InternalError: not implemented yet on call Graphics2D.drawRenderedImage
+ - S7142091: [macosx] RFE: Refactoring of peer initialization/disposing
+ - S7142596: RMI JPRT tests are failing
+ - S7150345: [macosx] Can't type into applets
+ - S7151434, RH969884: java -jar -XX crashes java launcher
+ - S7156191: [macosx] Can't type into applet demos in Pivot
+ - S7156194: [macosx] Can't type non-ASCII characters into applets
+ - S7171223: Building ExtensionSubtables.cpp should use -fno-strict-aliasing
+ - S7174718: [macosx] Regression in 7u6 b12: PopupFactory leaks DefaultFrames.
+ - S7188114: (launcher) need an alternate command line parser for Windows
+ - S7195301: XML Signature DOM implementation should not use instanceof to determine type of Node
+ - S7198570: (tz) Support tzdata2012f
+ - S7199143: RFE: OCSP revocation checker should provide possibility to specify connection timeout
+ - S8001161: mac: EmbeddedFrame doesn't become active window
+ - S8002070: Remove the stack search for a resource bundle for Logger to use
+ - S8002225: (tz) Support tzdata2012i
+ - S8005932: Java 7 on mac os x only provides text clipboard formats
+ - S8006120: Provide "Server JRE" for 7u train
+ - S8006417: JComboBox.showPopup(), hidePopup() fails in JRE 1.7 on OS X
+ - S8006536: [launcher] removes trailing slashes on arguments
+ - S8009165: Fix for 8006435 needs revision
+ - S8009217: REGRESSION: test com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java fails to compile since 7u21b03
+ - S8009463: Regression test test\java\lang\Runtime\exec\ArgWithSpaceAndFinalBackslash.java failing.
+ - S8009610: Blacklist certificate used with malware.
+ - S8009987: (tz) Support tzdata2013b
+ - S8009996: tests javax/management/mxbean/MiscTest.java and javax/management/mxbean/StandardMBeanOverrideTest.java fail
+ - S8010009: [macosx] Unable type into online word games on MacOSX
+ - S8010118: Annotate jdk caller sensitive methods with @sun.reflect.CallerSensitive
+ - S8010213: Some api/javax_net/SocketFactory tests fail in 7u25 nightly build
+ - S8010714: XML DSig API allows a RetrievalMethod to reference another RetrievalMethod
+ - S8010727: WLS fails to add a logger with "" in its own LogManager subclass instance
+ - S8010939: Deadlock in LogManager
+ - S8011139: (reflect) Revise checking in getEnclosingClass
+ - S8011154: java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java failed since 7u25b03 on windows
+ - S8011313: OCSP timeout set to wrong value if com.sun.security.ocsp.timeout not defined
+ - S8011557: Improve reflection utility classes
+ - S8011806: 7u25-b05 hotspot fastdebug build failure
+ - S8011990: TEST_BUG: java/util/logging/bundlesearch/ResourceBundleSearchTest.java fails on Windows
+ - S8011992: java/awt/image/mlib/MlibOpsTest.java failed since jdk7u25b05
+ - S8012112: java/awt/image/mlib/MlibOpsTest.java fails on sparc solaris
+ - S8012243: about 30% regression on specjvm2008.serial on 7u25 comparing 7u21
+ - S8012330: [macosx] Sometimes the applet showing the modal dialog itself loses the ability to gain focus
+ - S8012453: (process) Runtime.exec(String) fails if command contains spaces [win]
+ - S8012617: ArrayIndexOutOfBoundsException with some fonts using LineBreakMeasurer
+ - S8012933: Test closed/java/awt/Dialog/DialogAnotherThread/JaWSTest.java fails since jdk 7u25 b07
+ - S8013196: TimeZone.getDefault() throws NPE due to sun.awt.AppContext.getAppContext()
+ - S8013228: Create new system properties to control allowable OCSP clock skew and CRL connection timeout
+ - S8013380: Removal of stack walk to find resource bundle breaks Glassfish startup
+ - S8014205: Most of the Swing dialogs are blank on one win7 MUI
+ - S8014423: [macosx] The scrollbar's block increment performs incorrectly
+ - S8014427: REGRESSION: closed/javax/imageio/plugins/bmp/Write3ByteBgrTest.java fails since 7u25 b09
+ - S8014618, RH868136: Need to strip leading zeros in TlsPremasterSecret of DHKeyAgreement
+ - S8014676: Java debugger may fail to run
+ - S8014718: Netbeans IDE begins to throw a lot exceptions since 7u25 b10
+ - S8014745: Provide a switch to allow stack walk search of resource bundle
+ - S8014968: OCSP and CRL connection timeout is set to four hours by default
+
New in release 2.2.8 (2013-04-30):
* Security fixes
diff -r 2f50c50bc1d0 -r c8f337eac826 patches/boot/ecj-diamond.patch
--- a/patches/boot/ecj-diamond.patch Wed May 01 00:04:40 2013 +0100
+++ b/patches/boot/ecj-diamond.patch Fri Jun 28 02:49:03 2013 +0100
@@ -6215,3 +6215,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 2f50c50bc1d0 -r c8f337eac826 patches/boot/ecj-multicatch.patch
--- a/patches/boot/ecj-multicatch.patch Wed May 01 00:04:40 2013 +0100
+++ b/patches/boot/ecj-multicatch.patch Fri Jun 28 02:49:03 2013 +0100
@@ -205,3 +205,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 2f50c50bc1d0 -r c8f337eac826 patches/boot/ecj-stringswitch.patch
--- a/patches/boot/ecj-stringswitch.patch Wed May 01 00:04:40 2013 +0100
+++ b/patches/boot/ecj-stringswitch.patch Fri Jun 28 02:49:03 2013 +0100
@@ -302,59 +302,29 @@
throw new IllegalArgumentException(
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-01-14 22:25:02.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-01-15 02:19:34.315049222 +0000
-@@ -411,111 +411,106 @@
- static boolean isCallerSensitive(MemberName mem) {
- if (!mem.isInvocable()) return false; // fields are not caller sensitive
- Class<?> defc = mem.getDeclaringClass();
-- switch (mem.getName()) {
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-06-21 21:46:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-06-26 02:23:21.025257579 +0100
+@@ -421,110 +421,105 @@
+ // 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);
++ } else if ("checkMemberAccess".equals(method)) {
+ return defc == java.lang.SecurityManager.class;
- case "getUnsafe":
-+ } else if ("getUnsafe".equals(memName)) {
++ } else if ("getUnsafe".equals(method)) {
return defc == sun.misc.Unsafe.class;
- case "lookup":
-+ } else if ("lookup".equals(memName)) {
++ } else if ("lookup".equals(method)) {
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;
- case "invoke":
-+ } else if ("invoke".equals(memName)) {
++ } else if ("invoke".equals(method)) {
return defc == java.lang.reflect.Method.class;
- case "get":
- case "getBoolean":
@@ -374,33 +344,37 @@
- 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)) {
++ } 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;
- case "newInstance":
-+ } else if ("newInstance".equals(memName)) {
++ } else if ("newInstance".equals(method)) {
if (defc == java.lang.reflect.Constructor.class) return true;
if (defc == java.lang.Class.class) return true;
- break;
+- case "getFields":
++ } else if ("getFields".equals(method)) {
+ 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":
@@ -413,81 +387,117 @@
- 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)) {
+- case "getEnclosingClass":
+- case "getEnclosingMethod":
More information about the distro-pkg-dev
mailing list