diff options
author | Guido Günther <agx@sigxcpu.org> | 2013-05-08 12:52:58 +0200 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2013-05-08 12:52:58 +0200 |
commit | 9a8e56049ebf9f0878c7fe3efc0921df8aa6a0ba (patch) | |
tree | 7d61a00fa8d6ec4667663370cc42b04be03ec569 /patches/boot |
Imported Upstream version 7u21-2.3.9upstream/7u21-2.3.9upstream
Diffstat (limited to 'patches/boot')
49 files changed, 10290 insertions, 0 deletions
diff --git a/patches/boot/ant-javac.patch b/patches/boot/ant-javac.patch new file mode 100644 index 0000000..5ac6354 --- /dev/null +++ b/patches/boot/ant-javac.patch @@ -0,0 +1,26 @@ +diff -Nru openjdk-boot.orig/jaxp/build.xml openjdk-boot/jaxp/build.xml +--- openjdk-boot.orig/jaxp/build.xml 2012-02-21 23:55:29.000000000 +0000 ++++ openjdk-boot/jaxp/build.xml 2012-03-18 22:26:49.382089457 +0000 +@@ -123,7 +123,8 @@ + memoryMaximumSize="${javac.memoryMaximumSize}" + source="${javac.source}" + debug="${javac.debug}" +- target="${javac.target}"> ++ target="${javac.target}" ++ executable="${jdk.home}/bin/javac"> + <compilerarg value="-J-Xbootclasspath/p:${javac.jar}"/> + <compilerarg line="${javac.version.opt} ${javac.lint.opts} ${javac.no.jdk.warnings}"/> + </javac> +diff -Nru openjdk-boot.orig/jaxws/build.xml openjdk-boot/jaxws/build.xml +--- openjdk-boot.orig/jaxws/build.xml 2012-02-15 17:08:44.000000000 +0000 ++++ openjdk-boot/jaxws/build.xml 2012-03-18 22:26:49.382089457 +0000 +@@ -123,7 +123,8 @@ + memoryMaximumSize="${javac.memoryMaximumSize}" + source="${javac.source}" + debug="${javac.debug}" +- target="${javac.target}"> ++ target="${javac.target}" ++ executable="${jdk.home}/bin/javac"> + <compilerarg value="-J-Xbootclasspath/p:${javac.jar}"/> + <compilerarg line="${javac.version.opt} ${javac.lint.opts} ${javac.no.jdk.warnings}"/> + <src refid="src.dir.id"/> diff --git a/patches/boot/break-processbuilder-dependency.patch b/patches/boot/break-processbuilder-dependency.patch new file mode 100644 index 0000000..ce30f88 --- /dev/null +++ b/patches/boot/break-processbuilder-dependency.patch @@ -0,0 +1,136 @@ +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux openjdk-boot/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux +--- openjdk-boot.orig/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux 2010-09-01 22:21:08.815402468 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux 2010-09-01 22:23:19.572081778 +0100 +@@ -62,6 +62,32 @@ + private /* final */ InputStream stdout; + private /* final */ InputStream stderr; + ++ /** ++ * Required package-private classes taken from ++ * Oracle's java.lang.ProcessBuilder for bootstrapping. ++ */ ++ ++ /** ++ * Implements a <a href="#redirect-output">null input stream</a>. ++ */ ++ static class NullInputStream extends InputStream { ++ static final NullInputStream INSTANCE = new NullInputStream(); ++ private NullInputStream() {} ++ public int read() { return -1; } ++ public int available() { return 0; } ++ } ++ ++ /** ++ * Implements a <a href="#redirect-input">null output stream</a>. ++ */ ++ static class NullOutputStream extends OutputStream { ++ static final NullOutputStream INSTANCE = new NullOutputStream(); ++ private NullOutputStream() {} ++ public void write(int b) throws IOException { ++ throw new IOException("Stream closed"); ++ } ++ } ++ + /* this is for the reaping thread */ + private native int waitForProcessExit(int pid); + +@@ -155,15 +181,15 @@ + + void initStreams(int[] fds) throws IOException { + stdin = (fds[0] == -1) ? +- ProcessBuilder.NullOutputStream.INSTANCE : ++ NullOutputStream.INSTANCE : + new ProcessPipeOutputStream(fds[0]); + + stdout = (fds[1] == -1) ? +- ProcessBuilder.NullInputStream.INSTANCE : ++ NullInputStream.INSTANCE : + new ProcessPipeInputStream(fds[1]); + + stderr = (fds[2] == -1) ? +- ProcessBuilder.NullInputStream.INSTANCE : ++ NullInputStream.INSTANCE : + new ProcessPipeInputStream(fds[2]); + + processReaperExecutor.execute(new Runnable() { +@@ -275,7 +301,7 @@ + byte[] stragglers = drainInputStream(in); + in.close(); + this.in = (stragglers == null) ? +- ProcessBuilder.NullInputStream.INSTANCE : ++ NullInputStream.INSTANCE : + new ByteArrayInputStream(stragglers); + if (buf == null) // asynchronous close()? + this.in = null; +@@ -306,7 +332,7 @@ + // We know of no reason to get an IOException, but if + // we do, there's nothing else to do but carry on. + } +- this.out = ProcessBuilder.NullOutputStream.INSTANCE; ++ this.out = NullOutputStream.INSTANCE; + } + } + } +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/lang/UNIXProcess.java.solaris openjdk-boot/jdk/src/solaris/classes/java/lang/UNIXProcess.java.solaris +--- openjdk-boot.orig/jdk/src/solaris/classes/java/lang/UNIXProcess.java.solaris 2010-09-01 22:21:08.815402468 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/java/lang/UNIXProcess.java.solaris 2010-09-01 22:22:33.204096111 +0100 +@@ -45,6 +45,32 @@ + private DeferredCloseInputStream stdout_inner_stream; + private InputStream stderr_stream; + ++ /** ++ * Required package-private classes taken from ++ * Oracle's java.lang.ProcessBuilder for bootstrapping. ++ */ ++ ++ /** ++ * Implements a <a href="#redirect-output">null input stream</a>. ++ */ ++ static class NullInputStream extends InputStream { ++ static final NullInputStream INSTANCE = new NullInputStream(); ++ private NullInputStream() {} ++ public int read() { return -1; } ++ public int available() { return 0; } ++ } ++ ++ /** ++ * Implements a <a href="#redirect-input">null output stream</a>. ++ */ ++ static class NullOutputStream extends OutputStream { ++ static final NullOutputStream INSTANCE = new NullOutputStream(); ++ private NullOutputStream() {} ++ public void write(int b) throws IOException { ++ throw new IOException("Stream closed"); ++ } ++ } ++ + /* this is for the reaping thread */ + private native int waitForProcessExit(int pid); + +@@ -86,7 +112,7 @@ + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction<Void>() { public Void run() { + if (std_fds[0] == -1) +- stdin_stream = ProcessBuilder.NullOutputStream.INSTANCE; ++ stdin_stream = NullOutputStream.INSTANCE; + else { + FileDescriptor stdin_fd = new FileDescriptor(); + fdAccess.set(stdin_fd, std_fds[0]); +@@ -95,7 +121,7 @@ + } + + if (std_fds[1] == -1) +- stdout_stream = ProcessBuilder.NullInputStream.INSTANCE; ++ stdout_stream = NullInputStream.INSTANCE; + else { + FileDescriptor stdout_fd = new FileDescriptor(); + fdAccess.set(stdout_fd, std_fds[1]); +@@ -104,7 +130,7 @@ + } + + if (std_fds[2] == -1) +- stderr_stream = ProcessBuilder.NullInputStream.INSTANCE; ++ stderr_stream = NullInputStream.INSTANCE; + else { + FileDescriptor stderr_fd = new FileDescriptor(); + fdAccess.set(stderr_fd, std_fds[2]); diff --git a/patches/boot/compile-for-7-cacao-mem.patch b/patches/boot/compile-for-7-cacao-mem.patch new file mode 100644 index 0000000..fa18655 --- /dev/null +++ b/patches/boot/compile-for-7-cacao-mem.patch @@ -0,0 +1,42 @@ +diff -Nru openjdk-boot.orig/hotspot/make/linux/makefiles/rules.make openjdk-boot/hotspot/make/linux/makefiles/rules.make +--- openjdk-boot.orig/hotspot/make/linux/makefiles/rules.make 2012-06-13 03:40:41.009311243 +0100 ++++ openjdk-boot/hotspot/make/linux/makefiles/rules.make 2012-06-13 03:48:41.838257784 +0100 +@@ -139,8 +139,8 @@ + RUN.JAR$(MAKE_VERBOSE) += >/dev/null + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION = 6 +-BOOT_TARGET_CLASS_VERSION = 6 ++BOOT_SOURCE_LANGUAGE_VERSION = 7 ++BOOT_TARGET_CLASS_VERSION = 7 + JAVAC_FLAGS = -g -encoding ascii -J-Xmx256m + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + +diff -Nru openjdk-boot.orig/hotspot/make/solaris/makefiles/rules.make openjdk-boot/hotspot/make/solaris/makefiles/rules.make +--- openjdk-boot.orig/hotspot/make/solaris/makefiles/rules.make 2012-06-13 03:40:41.009311243 +0100 ++++ openjdk-boot/hotspot/make/solaris/makefiles/rules.make 2012-06-13 11:36:03.057522188 +0100 +@@ -131,8 +131,8 @@ + RUN.JAR$(MAKE_VERBOSE) += >/dev/null + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION = 6 +-BOOT_TARGET_CLASS_VERSION = 6 ++BOOT_SOURCE_LANGUAGE_VERSION = 7 ++BOOT_TARGET_CLASS_VERSION = 7 + JAVAC_FLAGS = -g -encoding ascii -J-Xmx256m + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + +diff -Nru openjdk-boot.orig/hotspot/make/windows/makefiles/rules.make openjdk-boot/hotspot/make/windows/makefiles/rules.make +--- openjdk-boot.orig/hotspot/make/windows/makefiles/rules.make 2012-06-13 03:40:41.009311243 +0100 ++++ openjdk-boot/hotspot/make/windows/makefiles/rules.make 2012-06-13 11:36:19.537797380 +0100 +@@ -43,8 +43,8 @@ + !endif + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION=6 +-BOOT_TARGET_CLASS_VERSION=6 ++BOOT_SOURCE_LANGUAGE_VERSION=7 ++BOOT_TARGET_CLASS_VERSION=7 + JAVAC_FLAGS=-g -encoding ascii -J-Xmx256m + BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + diff --git a/patches/boot/compile-for-7.patch b/patches/boot/compile-for-7.patch new file mode 100644 index 0000000..b7a6e63 --- /dev/null +++ b/patches/boot/compile-for-7.patch @@ -0,0 +1,42 @@ +diff -r f7e8b10f51c6 make/linux/makefiles/rules.make +--- openjdk-boot/hotspot/make/linux/makefiles/rules.make Tue Jun 28 00:25:25 2011 +0100 ++++ openjdk-boot/hotspot/make/linux/makefiles/rules.make Tue Jul 05 11:59:08 2011 +0100 +@@ -139,8 +139,8 @@ + RUN.JAR$(MAKE_VERBOSE) += >/dev/null + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION = 6 +-BOOT_TARGET_CLASS_VERSION = 6 ++BOOT_SOURCE_LANGUAGE_VERSION = 7 ++BOOT_TARGET_CLASS_VERSION = 7 + JAVAC_FLAGS = -g -encoding ascii + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + +diff -r f7e8b10f51c6 make/solaris/makefiles/rules.make +--- openjdk-boot/hotspot/make/solaris/makefiles/rules.make Tue Jun 28 00:25:25 2011 +0100 ++++ openjdk-boot/hotspot/make/solaris/makefiles/rules.make Tue Jul 05 11:59:08 2011 +0100 +@@ -131,8 +131,8 @@ + RUN.JAR$(MAKE_VERBOSE) += >/dev/null + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION = 6 +-BOOT_TARGET_CLASS_VERSION = 6 ++BOOT_SOURCE_LANGUAGE_VERSION = 7 ++BOOT_TARGET_CLASS_VERSION = 7 + JAVAC_FLAGS = -g -encoding ascii + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + +diff -r f7e8b10f51c6 make/windows/makefiles/rules.make +--- openjdk-boot/hotspot/make/windows/makefiles/rules.make Tue Jun 28 00:25:25 2011 +0100 ++++ openjdk-boot/hotspot/make/windows/makefiles/rules.make Tue Jul 05 11:59:08 2011 +0100 +@@ -43,8 +43,8 @@ + !endif + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION=6 +-BOOT_TARGET_CLASS_VERSION=6 ++BOOT_SOURCE_LANGUAGE_VERSION=7 ++BOOT_TARGET_CLASS_VERSION=7 + JAVAC_FLAGS=-g -encoding ascii + BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + diff --git a/patches/boot/corba-dependencies.patch b/patches/boot/corba-dependencies.patch new file mode 100644 index 0000000..0007651 --- /dev/null +++ b/patches/boot/corba-dependencies.patch @@ -0,0 +1,14 @@ +diff --git a/make/common/Rules.gmk b/make/common/Rules.gmk +--- openjdk-boot/corba/make/common/Rules.gmk ++++ openjdk-boot/corba/make/common/Rules.gmk +@@ -184,7 +184,9 @@ + @$(MKDIR) -p $(CLASSDESTDIR) + if [ -s $(JAVA_SOURCE_LIST) ] ; then \ + $(CAT) $(JAVA_SOURCE_LIST); \ +- $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ ++ $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) \ ++ -sourcepath "$(SOURCEPATH):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes" \ ++ -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ + fi + @$(java-vm-cleanup) + diff --git a/patches/boot/corba-idlj.patch b/patches/boot/corba-idlj.patch new file mode 100644 index 0000000..5cbe867 --- /dev/null +++ b/patches/boot/corba-idlj.patch @@ -0,0 +1,98 @@ +diff -Nru ../openjdk.orig/openjdk-boot/corba/make/org/omg/sources/Makefile openjdk-boot/corba/make/org/omg/sources/Makefile +--- ../openjdk.orig/openjdk-boot/corba/make/org/omg/sources/Makefile 2009-03-30 17:13:01.000000000 +0100 ++++ openjdk-boot/corba/make/org/omg/sources/Makefile 2009-10-30 16:59:16.000000000 +0000 +@@ -93,8 +93,6 @@ + POAHELHOLFILES = $(POA_GENERATED_HELP_HOL_java:%=$(GENSRCDIR)/%) + + $(POAGENERATEDFILES):: $(POA.IDL) +- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableServer" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -corba 3.0 -fall -pkgPrefix PortableServer org.omg $(POA.IDL) +- $(RM) -r $(POAHELHOLFILES) + + poa.compile: $(POAGENERATEDFILES) + +@@ -110,10 +108,6 @@ + + # Generating and deleting unused files to reduce images size + $(DYNANYFILES): $(DYNAMIC_ANY.IDL) +- $(IDLJ) -td "$(GENSRCDIR)" $(DYNANY_IDLJ_FLAGS) $(DYNAMIC_ANY.IDL) +- $(RM) $(DYNANY_DIR)/*POA* +- $(RM) $(DYNANY_DIR)/*Holder* +- $(RM) $(DYNANYDELETEFILES) + + dynany.compile: $(DYNANYFILES) + +@@ -125,12 +119,6 @@ + TR_IDLJ_FLAGS =-i "$(SRC_DIR)/org/omg/PortableInterceptor" -i "$(SRC_DIR)/org/omg/PortableServer" -i "$(SRC_DIR)/org/omg/CosTransactions" + + $(TRGENERATEDFILES):: $(COSTRANSACTIONS.IDL) $(COSTSINTEROP.IDL) +- $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fall -pkgPrefix CORBA org.omg -pkgPrefix CosTransactions org.omg $(COSTRANSACTIONS.IDL) +- $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fall -pkgPrefix CORBA org.omg -pkgPrefix CosTSInteroperation org.omg $(COSTSINTEROP.IDL) +-# $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fall -pkgPrefix CORBA org.omg $(TRANSACTIONS.IDL) +-# $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fallTIE -pkgPrefix CORBA org.omg $(TRANSACTIONS.IDL) +-# $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fall -pkgPrefix CORBA org.omg $(TRANSACTIONS.IDL) +-# $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fallTIE -pkgPrefix CORBA org.omg $(TRANSACTIONS.IDL) + + tr.compile: $(TRGENERATEDFILES) + +@@ -144,7 +132,6 @@ + # _NamingContextImplBase.java and _BindingIteratorImplBase.java files + # to GENSRC directory. Note that these two classes are deprecated. + $(NSGENERATEDFILES): $(NAMESERVICE.IDL) +- $(IDLJ) -td "$(GENSRCDIR)" -i $(NAMESERVICEDIR) -fall -pkgPrefix CosNaming org.omg $(NAMESERVICE.IDL) + + ns.compile: $(NSGENERATEDFILES) + +@@ -156,8 +143,6 @@ + IOPDELETEFILES = $(IOP_TO_DELETE_FILES:%=$(GENSRCDIR)/%) + + $(IOPGENERATEDFILES):: $(IOP.IDL) +- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -i $(CORBA_IDL_DIR) -fall -corba 3.0 -D CORBA3 -pkgPrefix IOP org.omg $(IOP.IDL) +- $(RM) -r $(IOPDELETEFILES) + + iop.compile: $(IOPGENERATEDFILES) + +@@ -169,8 +154,6 @@ + CORBAXDUPLICATEFILES = $(CORBA_DUPLICATE_java:%=$(GENSRCDIR)/%) + + $(CORBAXGENERATEDFILES):: $(CORBAX.IDL) +- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -i $(CORBA_IDL_DIR) -fall -corba 3.0 $(CORBAX.IDL) +- $(RM) $(CORBAXDUPLICATEFILES) + + corbax.compile: $(CORBAXGENERATEDFILES) + +@@ -181,7 +164,6 @@ + MESSAGINGGENERATEDFILES = $(Messaging_java:%=$(GENSRCDIR)/%) + + $(MESSAGINGGENERATEDFILES):: $(MESSAGING.IDL) +- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -i $(CORBA_IDL_DIR) -fall -corba 3.0 -pkgPrefix Messaging org.omg $(MESSAGING.IDL) + + messaging.compile: $(MESSAGINGGENERATEDFILES) + +@@ -195,8 +177,6 @@ + PIHELHOLFILES = $(PI_GENERATED_HELP_HOL_java:%=$(GENSRCDIR)/%) + + $(PIGENERATEDFILES):: $(INTERCEPTORS.IDL) +- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -i $(CORBA_IDL_DIR) -fall -pkgPrefix PortableInterceptor org.omg -pkgPrefix Dynamic org.omg -pkgPrefix IOP org.omg -corba 3.0 -D CORBA3 $(INTERCEPTORS.IDL) +- $(RM) $(PIHELHOLFILES) + + pi.compile: $(PIGENERATEDFILES) + +diff -Nru ../openjdk.orig/openjdk-boot/corba/make/sun/rmi/corbalogsources/Makefile openjdk-boot/corba/make/sun/rmi/corbalogsources/Makefile +--- ../openjdk.orig/openjdk-boot/corba/make/sun/rmi/corbalogsources/Makefile 2009-03-30 23:07:09.000000000 +0100 ++++ openjdk-boot/corba/make/sun/rmi/corbalogsources/Makefile 2009-10-30 16:59:16.000000000 +0000 +@@ -172,7 +172,6 @@ + ACTIVATIONFILES = $(com_sun_corba_se_spi_activation_java:%=$(GENSRCDIR)/%) + + $(ACTIVATIONFILES): $(ACTIVATION.IDL) +- $(IDLJ) -td $(GENSRCDIR) -i $(ACTIVATIONFILEDIR) -fall -oldImplBase -pkgPrefix activation com.sun.corba.se.spi $(ACTIVATION.IDL) + + activation.idl.compile: $(ACTIVATIONFILES) + +@@ -195,7 +194,6 @@ + + # REVISIT: remove -oldImplBase + $(PORTABLEACTIVATIONFILES): $(PORTABLEACTIVATION.IDL) +- $(IDLJ) -td $(GENSRCDIR) $(PORTABLEACTIVATION_INCLUDES) $(PORTABLEACTIVATION_PKG_PREFIXES) -fall -oldImplBase -corba 3.0 -D CORBA3 $(PORTABLEACTIVATION.IDL) + + portableactivation.idl.compile: $(PORTABLEACTIVATIONFILES) + diff --git a/patches/boot/corba-no-gen.patch b/patches/boot/corba-no-gen.patch new file mode 100644 index 0000000..aaacc14 --- /dev/null +++ b/patches/boot/corba-no-gen.patch @@ -0,0 +1,12 @@ +diff -Nru ../openjdk.orig/openjdk-boot/corba/make/com/sun/corba/se/Makefile openjdk-boot/corba/make/com/sun/corba/se/Makefile +--- ../openjdk.orig/openjdk-boot/corba/make/com/sun/corba/se/Makefile 2009-03-30 17:13:01.000000000 +0100 ++++ openjdk-boot/corba/make/com/sun/corba/se/Makefile 2009-10-30 16:59:16.000000000 +0000 +@@ -42,7 +42,7 @@ + # the rmic iiop backend needs some classes that are part of the impl/util + # package. These classes use log wrappers, so they must be built after + # pept and before rmi. +-SUBDIRS = sources pept corespi core spi impl rmi ++SUBDIRS = org pept corespi core spi impl rmi + all build clean clobber:: + $(SUBDIRS-loop) + diff --git a/patches/boot/corba-orb.patch b/patches/boot/corba-orb.patch new file mode 100644 index 0000000..f6aab98 --- /dev/null +++ b/patches/boot/corba-orb.patch @@ -0,0 +1,42 @@ +diff -Nru ../openjdk.orig/openjdk-boot/corba/make/com/sun/corba/se/org/Makefile openjdk-boot/corba/make/com/sun/corba/se/org/Makefile +--- ../openjdk.orig/openjdk-boot/corba/make/com/sun/corba/se/org/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ openjdk-boot/corba/make/com/sun/corba/se/org/Makefile 2009-10-30 16:59:16.000000000 +0000 +@@ -0,0 +1,38 @@ ++# ++# Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. Sun designates this ++# particular file as subject to the "Classpath" exception as provided ++# by Sun in the LICENSE file that accompanied this code. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++# CA 95054 USA or visit www.sun.com if you need additional information or ++# have any questions. ++# ++ ++BUILDDIR = ../../../../.. ++PACKAGE = com.sun.corba.se ++PRODUCT = org ++ ++include $(BUILDDIR)/common/Defs.gmk ++ ++FILES_java=\ ++ com/sun/corba/se/org/omg/CORBA/ORB.java ++ ++# ++# Include ++# ++include $(BUILDDIR)/common/Classes.gmk diff --git a/patches/boot/demos.patch b/patches/boot/demos.patch new file mode 100644 index 0000000..8809a5c --- /dev/null +++ b/patches/boot/demos.patch @@ -0,0 +1,32 @@ +diff -Nru openjdk.orig/jdk/make/common/Release.gmk openjdk/jdk/make/common/Release.gmk +--- openjdk-boot.orig/jdk/make/common/Release.gmk 2012-06-11 14:24:46.531375308 +0100 ++++ openjdk-boot/jdk/make/common/Release.gmk 2012-06-11 14:28:47.215136389 +0100 +@@ -1104,16 +1104,6 @@ + $(CP) $(FILES_launcher) $(JDK_IMAGE_DIR)/src/launcher + $(CD) $(JDK_IMAGE_DIR)/src && $(ZIPEXE) -qr ../src.zip * + $(RM) -r $(JDK_IMAGE_DIR)/src +- @# +- @# demo, include +- @# +- $(CP) -r -f $(DEMODIR) $(JDK_IMAGE_DIR) +- $(CP) -r -f $(SAMPLEDIR) $(JDK_IMAGE_DIR) +- $(CP) -r $(INCLUDEDIR) $(JDK_IMAGE_DIR) +- @# +- @# Swing BeanInfo generation +- @# +- $(CD) javax/swing/beaninfo && $(MAKE) swing-1.2-beans + ifneq ($(PLATFORM), windows) + $(call copy-man-pages,$(JDK_IMAGE_DIR),$(JDK_MAN_PAGES)) + endif # !windows +diff -Nru openjdk.orig/jdk/make/Makefile openjdk/jdk/make/Makefile +--- openjdk-boot.orig/jdk/make/Makefile 2012-06-08 17:12:17.000000000 +0100 ++++ openjdk-boot/jdk/make/Makefile 2012-06-11 14:28:47.223136515 +0100 +@@ -240,7 +240,7 @@ + SUBDIRS += bridge + endif + SUBDIRS_tools = launchers +-SUBDIRS_misc = org sunw jpda mkdemo mksample ++SUBDIRS_misc = org sunw jpda mksample + + # Alternate classes implementation + ifndef OPENJDK diff --git a/patches/boot/ecj-autoboxing.patch b/patches/boot/ecj-autoboxing.patch new file mode 100644 index 0000000..5258c91 --- /dev/null +++ b/patches/boot/ecj-autoboxing.patch @@ -0,0 +1,299 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/CallSite.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/CallSite.java 2011-07-12 12:43:47.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java 2011-07-12 15:12:13.210932096 +0100 +@@ -329,7 +329,7 @@ + + private static Object maybeReBox(Object x) { + if (x instanceof Integer) { +- int xi = (int) x; ++ int xi = (Integer) x; + if (xi == (byte) xi) + x = xi; // must rebox; see JLS 5.1.7 + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/FromGeneric.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/FromGeneric.java 2011-06-11 00:38:08.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java 2011-07-12 15:12:13.210932096 +0100 +@@ -505,10 +505,10 @@ + protected A0 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A0(e, i, c, t); } + protected Object invoke_L0() throws Throwable { return convert_L((Object)invoker.invokeExact(target)); } +- protected Object invoke_I0() throws Throwable { return convert_I((int) invoker.invokeExact(target)); } +- protected Object invoke_J0() throws Throwable { return convert_J((long) invoker.invokeExact(target)); } +- protected Object invoke_F0() throws Throwable { return convert_F((float) invoker.invokeExact(target)); } +- protected Object invoke_D0() throws Throwable { return convert_D((double)invoker.invokeExact(target)); } ++ protected Object invoke_I0() throws Throwable { return convert_I((Integer) invoker.invokeExact(target)); } ++ protected Object invoke_J0() throws Throwable { return convert_J((Long) invoker.invokeExact(target)); } ++ protected Object invoke_F0() throws Throwable { return convert_F((Float) invoker.invokeExact(target)); } ++ protected Object invoke_D0() throws Throwable { return convert_D((Double)invoker.invokeExact(target)); } + } + static class A1 extends Adapter { + protected A1(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -517,10 +517,10 @@ + protected A1 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A1(e, i, c, t); } + protected Object invoke_L1(Object a0) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0)); } +- protected Object invoke_I1(Object a0) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0)); } +- protected Object invoke_J1(Object a0) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0)); } +- protected Object invoke_F1(Object a0) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0)); } +- protected Object invoke_D1(Object a0) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0)); } ++ protected Object invoke_I1(Object a0) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0)); } ++ protected Object invoke_J1(Object a0) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0)); } ++ protected Object invoke_F1(Object a0) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0)); } ++ protected Object invoke_D1(Object a0) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0)); } + } + static class A2 extends Adapter { + protected A2(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -529,10 +529,10 @@ + protected A2 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A2(e, i, c, t); } + protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1)); } +- protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1)); } +- protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1)); } +- protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1)); } +- protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1)); } ++ protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0, a1)); } ++ protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0, a1)); } ++ protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1)); } ++ protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1)); } + } + static class A3 extends Adapter { + protected A3(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -541,10 +541,10 @@ + protected A3 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A3(e, i, c, t); } + protected Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2)); } +- protected Object invoke_I3(Object a0, Object a1, Object a2) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2)); } +- protected Object invoke_J3(Object a0, Object a1, Object a2) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2)); } +- protected Object invoke_F3(Object a0, Object a1, Object a2) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2)); } +- protected Object invoke_D3(Object a0, Object a1, Object a2) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2)); } ++ protected Object invoke_I3(Object a0, Object a1, Object a2) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0, a1, a2)); } ++ protected Object invoke_J3(Object a0, Object a1, Object a2) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0, a1, a2)); } ++ protected Object invoke_F3(Object a0, Object a1, Object a2) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2)); } ++ protected Object invoke_D3(Object a0, Object a1, Object a2) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2)); } + } + static class A4 extends Adapter { + protected A4(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -553,10 +553,10 @@ + protected A4 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A4(e, i, c, t); } + protected Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3)); } +- protected Object invoke_I4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3)); } +- protected Object invoke_J4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3)); } +- protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3)); } +- protected Object invoke_D4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3)); } ++ protected Object invoke_I4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0, a1, a2, a3)); } ++ protected Object invoke_J4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0, a1, a2, a3)); } ++ protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3)); } ++ protected Object invoke_D4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3)); } + } + static class A5 extends Adapter { + protected A5(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -565,10 +565,10 @@ + protected A5 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A5(e, i, c, t); } + protected Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4)); } +- protected Object invoke_I5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } +- protected Object invoke_J5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } +- protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } +- protected Object invoke_D5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4)); } ++ protected Object invoke_I5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } ++ protected Object invoke_J5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } ++ protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } ++ protected Object invoke_D5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4)); } + } + static class A6 extends Adapter { + protected A6(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -577,10 +577,10 @@ + protected A6 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A6(e, i, c, t); } + protected Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } +- protected Object invoke_I6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } +- protected Object invoke_J6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } +- protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } +- protected Object invoke_D6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } ++ protected Object invoke_I6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } ++ protected Object invoke_J6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } ++ protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } ++ protected Object invoke_D6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } + } + static class A7 extends Adapter { + protected A7(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -589,10 +589,10 @@ + protected A7 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A7(e, i, c, t); } + protected Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } +- protected Object invoke_I7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } +- protected Object invoke_J7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } +- protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } +- protected Object invoke_D7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } ++ protected Object invoke_I7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } ++ protected Object invoke_J7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } ++ protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } ++ protected Object invoke_D7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } + } + static class A8 extends Adapter { + protected A8(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -601,10 +601,10 @@ + protected A8 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A8(e, i, c, t); } + protected Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } +- protected Object invoke_I8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } +- protected Object invoke_J8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } +- protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } +- protected Object invoke_D8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } ++ protected Object invoke_I8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } ++ protected Object invoke_J8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } ++ protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } ++ protected Object invoke_D8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } + } + static class A9 extends Adapter { + protected A9(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -613,10 +613,10 @@ + protected A9 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A9(e, i, c, t); } + protected Object invoke_L9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } +- protected Object invoke_I9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } +- protected Object invoke_J9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } +- protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } +- protected Object invoke_D9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } ++ protected Object invoke_I9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } ++ protected Object invoke_J9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } ++ protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } ++ protected Object invoke_D9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } + } + static class A10 extends Adapter { + protected A10(MethodHandle entryPoint) { super(entryPoint); } // to build prototype +@@ -625,9 +625,9 @@ + protected A10 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) + { return new A10(e, i, c, t); } + protected Object invoke_L10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } +- protected Object invoke_I10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } +- protected Object invoke_J10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } +- protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } +- protected Object invoke_D10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } ++ protected Object invoke_I10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_I((Integer) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } ++ protected Object invoke_J10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_J((Long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } ++ protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_F((Float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } ++ protected Object invoke_D10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2011-07-12 12:43:47.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2011-07-12 15:12:13.214932157 +0100 +@@ -956,52 +956,52 @@ + return addTypeString(target, this); + } + private Object invoke_V(Object... av) throws Throwable { +- if ((boolean) test.invokeExact(av)) ++ if ((Boolean) test.invokeExact(av)) + return target.invokeExact(av); + return fallback.invokeExact(av); + } + private Object invoke_L0() throws Throwable { +- if ((boolean) test.invokeExact()) ++ if ((Boolean) test.invokeExact()) + return target.invokeExact(); + return fallback.invokeExact(); + } + private Object invoke_L1(Object a0) throws Throwable { +- if ((boolean) test.invokeExact(a0)) ++ if ((Boolean) test.invokeExact(a0)) + return target.invokeExact(a0); + return fallback.invokeExact(a0); + } + private Object invoke_L2(Object a0, Object a1) throws Throwable { +- if ((boolean) test.invokeExact(a0, a1)) ++ if ((Boolean) test.invokeExact(a0, a1)) + return target.invokeExact(a0, a1); + return fallback.invokeExact(a0, a1); + } + private Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { +- if ((boolean) test.invokeExact(a0, a1, a2)) ++ if ((Boolean) test.invokeExact(a0, a1, a2)) + return target.invokeExact(a0, a1, a2); + return fallback.invokeExact(a0, a1, a2); + } + private Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { +- if ((boolean) test.invokeExact(a0, a1, a2, a3)) ++ if ((Boolean) test.invokeExact(a0, a1, a2, a3)) + return target.invokeExact(a0, a1, a2, a3); + return fallback.invokeExact(a0, a1, a2, a3); + } + private Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { +- if ((boolean) test.invokeExact(a0, a1, a2, a3, a4)) ++ if ((Boolean) test.invokeExact(a0, a1, a2, a3, a4)) + return target.invokeExact(a0, a1, a2, a3, a4); + return fallback.invokeExact(a0, a1, a2, a3, a4); + } + private Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { +- if ((boolean) test.invokeExact(a0, a1, a2, a3, a4, a5)) ++ if ((Boolean) test.invokeExact(a0, a1, a2, a3, a4, a5)) + return target.invokeExact(a0, a1, a2, a3, a4, a5); + return fallback.invokeExact(a0, a1, a2, a3, a4, a5); + } + private Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { +- if ((boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6)) ++ if ((Boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6)) + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6); + return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6); + } + private Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { +- if ((boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7)) ++ if ((Boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7)) + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); + return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); + } +@@ -1374,7 +1374,7 @@ + MH_checkCallerClass = IMPL_LOOKUP + .findStatic(THIS_CLASS, "checkCallerClass", + MethodType.methodType(boolean.class, Class.class, Class.class)); +- assert((boolean) MH_checkCallerClass.invokeExact(THIS_CLASS, THIS_CLASS)); ++ assert((Boolean) MH_checkCallerClass.invokeExact(THIS_CLASS, THIS_CLASS)); + } catch (Throwable ex) { + throw new InternalError(ex.toString()); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java 2011-06-11 00:38:08.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java 2011-07-12 15:12:13.214932157 +0100 +@@ -394,10 +394,10 @@ + + // Code to run when the generic target has finished and produced a value. + protected Object return_L(Object res) throws Throwable { return (Object)convert.invokeExact(res); } +- protected int return_I(Object res) throws Throwable { return (int) convert.invokeExact(res); } +- protected long return_J(Object res) throws Throwable { return (long) convert.invokeExact(res); } +- protected float return_F(Object res) throws Throwable { return (float) convert.invokeExact(res); } +- protected double return_D(Object res) throws Throwable { return (double)convert.invokeExact(res); } ++ protected int return_I(Object res) throws Throwable { return (Integer) convert.invokeExact(res); } ++ protected long return_J(Object res) throws Throwable { return (Long) convert.invokeExact(res); } ++ protected float return_F(Object res) throws Throwable { return (Float) convert.invokeExact(res); } ++ protected double return_D(Object res) throws Throwable { return (Double)convert.invokeExact(res); } + + static private final String CLASS_PREFIX; // "java.lang.invoke.ToGeneric$" + static { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2011-07-12 14:52:51.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2011-07-12 15:12:50.499499088 +0100 +@@ -223,9 +223,9 @@ + if (x instanceof Number) { + res = (Number) x; + } else if (x instanceof Boolean) { +- res = ((boolean)x ? ONE_INT : ZERO_INT); ++ res = ((Boolean)x ? ONE_INT : ZERO_INT); + } else if (x instanceof Character) { +- res = (int)(char)x; ++ res = (int)(Character)x; + } else { + // this will fail with the required ClassCastException: + res = (Number) x; +@@ -386,7 +386,7 @@ + + static int unboxRawInteger(Object x) { + if (x instanceof Integer) +- return (int) x; ++ return (Integer) x; + else + return (int) unboxLong(x, false); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2012-10-17 03:17:03.331299684 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2012-10-17 03:19:49.546110492 +0100 diff --git a/patches/boot/ecj-diamond.patch b/patches/boot/ecj-diamond.patch new file mode 100644 index 0000000..295e12b --- /dev/null +++ b/patches/boot/ecj-diamond.patch @@ -0,0 +1,6329 @@ +diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java +--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2013-03-08 16:05:05.000000000 +0000 ++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2013-04-17 14:53:25.283551366 +0100 +@@ -58,7 +58,7 @@ + private CorbaConnection conn; + + private static Object iorMapLock = new Object(); +- private static Hashtable<IOR,CodeBase> iorMap = new Hashtable<>(); ++ private static Hashtable<IOR,CodeBase> iorMap = new Hashtable<IOR,CodeBase>(); + + public static synchronized void cleanCache( ORB orb ) { + synchronized (iorMapLock) { +diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java +--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2013-03-08 16:05:05.000000000 +0000 ++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2013-04-17 14:53:25.291551495 +0100 +@@ -1316,7 +1316,7 @@ + protected void shutdownServants(boolean wait_for_completion) { + Set<ObjectAdapterFactory> oaset; + synchronized (this) { +- oaset = new HashSet<>(requestDispatcherRegistry.getObjectAdapterFactories()); ++ oaset = new HashSet<ObjectAdapterFactory>(requestDispatcherRegistry.getObjectAdapterFactories()); + } + + for (ObjectAdapterFactory oaf : oaset) +diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java +--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2013-03-08 16:05:05.000000000 +0000 ++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2013-04-17 14:53:25.291551495 +0100 +@@ -108,7 +108,7 @@ + private ThreadGroup threadGroup; + + Object workersLock = new Object(); +- List<WorkerThread> workers = new ArrayList<>(); ++ List<WorkerThread> workers = new ArrayList<WorkerThread>(); + + /** + * This constructor is used to create an unbounded threadpool +@@ -154,7 +154,7 @@ + // Copy to avoid concurrent modification problems. + List<WorkerThread> copy = null; + synchronized (workersLock) { +- copy = new ArrayList<>(workers); ++ copy = new ArrayList<WorkerThread>(workers); + } + + for (WorkerThread wt : copy) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2013-04-17 14:53:25.291551495 +0100 +@@ -62,9 +62,10 @@ + */ + public final class DocumentHandler extends DefaultHandler { + private final AccessControlContext acc = AccessController.getContext(); +- private final Map<String, Class<? extends ElementHandler>> handlers = new HashMap<>(); +- private final Map<String, Object> environment = new HashMap<>(); +- private final List<Object> objects = new ArrayList<>(); ++ private final Map<String, Class<? extends ElementHandler>> handlers = ++ new HashMap<String, Class<? extends ElementHandler>>(); ++ private final Map<String, Object> environment = new HashMap<String, Object>(); ++ private final List<Object> objects = new ArrayList<Object>(); + + private Reference<ClassLoader> loader; + private ExceptionListener listener; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2013-04-17 14:53:25.291551495 +0100 +@@ -239,9 +239,9 @@ + } + } + +- private static final WeakCache<Type, TypeResolver> CACHE = new WeakCache<>(); ++ private static final WeakCache<Type, TypeResolver> CACHE = new WeakCache<Type, TypeResolver>(); + +- private final Map<TypeVariable<?>, Type> map = new HashMap<>(); ++ private final Map<TypeVariable<?>, Type> map = new HashMap<TypeVariable<?>, Type>(); + + /** + * Constructs the type resolver for the given actual type. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2013-04-17 14:53:25.291551495 +0100 +@@ -103,9 +103,9 @@ + return this.def.compareTo(that.def); + } + +- private static final Map<List<Attribute>, List<Attribute>> canonLists = new HashMap<>(); +- private static final Map<Layout, Attribute> attributes = new HashMap<>(); +- private static final Map<Layout, Attribute> standardDefs = new HashMap<>(); ++ private static final Map<List<Attribute>, List<Attribute>> canonLists = new HashMap<List<Attribute>, List<Attribute>>(); ++ private static final Map<Layout, Attribute> attributes = new HashMap<Layout, Attribute>(); ++ private static final Map<Layout, Attribute> standardDefs = new HashMap<Layout, Attribute>(); + + // Canonicalized lists of trivial attrs (Deprecated, etc.) + // are used by trimToSize, in order to reduce footprint +@@ -115,7 +115,7 @@ + synchronized (canonLists) { + List<Attribute> cl = canonLists.get(al); + if (cl == null) { +- cl = new ArrayList<>(al.size()); ++ cl = new ArrayList<Attribute>(al.size()); + cl.addAll(al); + cl = Collections.unmodifiableList(cl); + canonLists.put(al, cl); +@@ -336,9 +336,9 @@ + + public void addAttribute(Attribute a) { + if (attributes == null) +- attributes = new ArrayList<>(3); ++ attributes = new ArrayList<Attribute>(3); + else if (!(attributes instanceof ArrayList)) +- attributes = new ArrayList<>(attributes); // unfreeze it ++ attributes = new ArrayList<Attribute>(attributes); // unfreeze it + attributes.add(a); + } + +@@ -346,7 +346,7 @@ + if (attributes == null) return null; + if (!attributes.contains(a)) return null; + if (!(attributes instanceof ArrayList)) +- attributes = new ArrayList<>(attributes); // unfreeze it ++ attributes = new ArrayList<Attribute>(attributes); // unfreeze it + attributes.remove(a); + return a; + } +@@ -838,7 +838,7 @@ + */ + static //private + Layout.Element[] tokenizeLayout(Layout self, int curCble, String layout) { +- List<Layout.Element> col = new ArrayList<>(layout.length()); ++ List<Layout.Element> col = new ArrayList<Layout.Element>(layout.length()); + tokenizeLayout(self, curCble, layout, col); + Layout.Element[] res = new Layout.Element[col.size()]; + col.toArray(res); +@@ -903,7 +903,7 @@ + case 'T': // union: 'T' any_int union_case* '(' ')' '[' body ']' + kind = EK_UN; + i = tokenizeSInt(e, layout, i); +- List<Layout.Element> cases = new ArrayList<>(); ++ List<Layout.Element> cases = new ArrayList<Layout.Element>(); + for (;;) { + // Keep parsing cases until we hit the default case. + if (layout.charAt(i++) != '(') +@@ -1057,7 +1057,7 @@ + } + static //private + String[] splitBodies(String layout) { +- List<String> bodies = new ArrayList<>(); ++ List<String> bodies = new ArrayList<String>(); + // Parse several independent layout bodies: "[foo][bar]...[baz]" + for (int i = 0; i < layout.length(); i++) { + if (layout.charAt(i++) != '[') +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2013-04-17 14:52:22.422547047 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2013-04-17 14:53:25.291551495 +0100 +@@ -257,7 +257,7 @@ + assert(basicCodings[_meta_default] == null); + assert(basicCodings[_meta_canon_min] != null); + assert(basicCodings[_meta_canon_max] != null); +- Map<Coding, Integer> map = new HashMap<>(); ++ Map<Coding, Integer> map = new HashMap<Coding, Integer>(); + for (int i = 0; i < basicCodings.length; i++) { + Coding c = basicCodings[i]; + if (c == null) continue; +@@ -1067,8 +1067,8 @@ + + // Bootstrap support for CPRefBands. These are needed to record + // intended CP indexes, before the CP has been created. +- private final List<CPRefBand> allKQBands = new ArrayList<>(); +- private List<Object[]> needPredefIndex = new ArrayList<>(); ++ private final List<CPRefBand> allKQBands = new ArrayList<CPRefBand>(); ++ private List<Object[]> needPredefIndex = new ArrayList<Object[]>(); + + + int encodeRef(Entry e, Index ix) { +@@ -1705,7 +1705,7 @@ + protected int attrClassFileVersionMask; + + // Mapping from Attribute.Layout to Band[] (layout element bands). +- protected Map<Attribute.Layout, Band[]> attrBandTable = new HashMap<>(); ++ protected Map<Attribute.Layout, Band[]> attrBandTable = new HashMap<Attribute.Layout, Band[]>(); + + // Well-known attributes: + protected final Attribute.Layout attrCodeEmpty; +@@ -1714,16 +1714,16 @@ + protected final Attribute.Layout attrConstantValue; + + // Mapping from Attribute.Layout to Integer (inverse of attrDefs) +- Map<Attribute.Layout, Integer> attrIndexTable = new HashMap<>(); ++ Map<Attribute.Layout, Integer> attrIndexTable = new HashMap<Attribute.Layout, Integer>(); + + // Mapping from attribute index (<32 are flag bits) to attributes. + protected List<List<Attribute.Layout>> attrDefs = +- new FixedList<>(ATTR_CONTEXT_LIMIT); ++ new FixedList<List<Attribute.Layout>>(ATTR_CONTEXT_LIMIT); + { + for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) { + assert(attrIndexLimit[i] == 0); + attrIndexLimit[i] = 32; // just for the sake of predefs. +- attrDefs.set(i, new ArrayList<>(Collections.nCopies( ++ attrDefs.set(i, new ArrayList<Attribute.Layout>(Collections.nCopies( + attrIndexLimit[i], (Attribute.Layout)null))); + + } +@@ -1913,7 +1913,7 @@ + + protected List<Attribute.Layout> getPredefinedAttrs(int ctype) { + assert(attrIndexLimit[ctype] != 0); +- List<Attribute.Layout> res = new ArrayList<>(attrIndexLimit[ctype]); ++ List<Attribute.Layout> res = new ArrayList<Attribute.Layout>(attrIndexLimit[ctype]); + // Remove nulls and non-predefs. + for (int ai = 0; ai < attrIndexLimit[ctype]; ai++) { + if (testBit(attrDefSeen[ctype], 1L<<ai)) continue; +@@ -2537,7 +2537,7 @@ + // DEBUG ONLY: Record something about the band order. + boolean notePrevForAssert(Band b, Band p) { + if (prevForAssertMap == null) +- prevForAssertMap = new HashMap<>(); ++ prevForAssertMap = new HashMap<Band, Band>(); + prevForAssertMap.put(b, p); + return true; + } +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-17 14:52:22.294545002 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2013-04-17 14:53:25.291551495 +0100 +@@ -466,7 +466,7 @@ + + void readInnerClasses(Class cls) throws IOException { + int nc = readUnsignedShort(); +- ArrayList<InnerClass> ics = new ArrayList<>(nc); ++ ArrayList<InnerClass> ics = new ArrayList<InnerClass>(nc); + for (int i = 0; i < nc; i++) { + InnerClass ic = + new InnerClass(readClassRef(), +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2013-04-17 14:53:25.295551558 +0100 +@@ -743,9 +743,9 @@ + // Steps 1/2/3 are interdependent, and may be iterated. + // Steps 4 and 5 may be decided independently afterward. + int[] LValuesCoded = PopulationCoding.LValuesCoded; +- List<Coding> bestFits = new ArrayList<>(); +- List<Coding> fullFits = new ArrayList<>(); +- List<Coding> longFits = new ArrayList<>(); ++ List<Coding> bestFits = new ArrayList<Coding>(); ++ List<Coding> fullFits = new ArrayList<Coding>(); ++ List<Coding> longFits = new ArrayList<Coding>(); + final int PACK_TO_MAX_S = 1; + if (bestPopFVC <= 255) { + bestFits.add(BandStructure.BYTE1); +@@ -785,7 +785,7 @@ + } + } + } +- List<Coding> allFits = new ArrayList<>(); ++ List<Coding> allFits = new ArrayList<Coding>(); + for (Iterator<Coding> i = bestFits.iterator(), + j = fullFits.iterator(), + k = longFits.iterator(); +@@ -1230,10 +1230,10 @@ + Histogram hist = getValueHistogram(); + int fVlen = stressLen(hist.getTotalLength()); + if (fVlen == 0) return coding; +- List<Integer> popvals = new ArrayList<>(); ++ List<Integer> popvals = new ArrayList<Integer>(); + if (stress.nextBoolean()) { + // Build the population from the value list. +- Set<Integer> popset = new HashSet<>(); ++ Set<Integer> popset = new HashSet<Integer>(); + for (int i = start; i < end; i++) { + if (popset.add(values[i])) popvals.add(values[i]); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2013-04-17 14:53:25.295551558 +0100 +@@ -402,7 +402,7 @@ + private static Map<Coding, Coding> codeMap; + + private static synchronized Coding of(int B, int H, int S, int del) { +- if (codeMap == null) codeMap = new HashMap<>(); ++ if (codeMap == null) codeMap = new HashMap<Coding, Coding>(); + Coding x0 = new Coding(B, H, S, del); + Coding x1 = codeMap.get(x0); + if (x1 == null) codeMap.put(x0, x1 = x0); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2013-04-17 14:53:25.295551558 +0100 +@@ -915,7 +915,7 @@ + public static + Index[] partition(Index ix, int[] keys) { + // %%% Should move this into class Index. +- List<List<Entry>> parts = new ArrayList<>(); ++ List<List<Entry>> parts = new ArrayList<List<Entry>>(); + Entry[] cpMap = ix.cpMap; + assert(keys.length == cpMap.length); + for (int i = 0; i < keys.length; i++) { +@@ -926,7 +926,7 @@ + } + List<Entry> part = parts.get(key); + if (part == null) { +- parts.set(key, part = new ArrayList<>()); ++ parts.set(key, part = new ArrayList<Entry>()); + } + part.add(cpMap[i]); + } +@@ -1135,7 +1135,7 @@ + void completeReferencesIn(Set<Entry> cpRefs, boolean flattenSigs) { + cpRefs.remove(null); + for (ListIterator<Entry> work = +- new ArrayList<>(cpRefs).listIterator(cpRefs.size()); ++ new ArrayList<Entry>(cpRefs).listIterator(cpRefs.size()); + work.hasPrevious(); ) { + Entry e = work.previous(); + work.remove(); // pop stack +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-17 14:52:22.422547047 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2013-04-17 14:53:25.295551558 +0100 +@@ -61,7 +61,7 @@ + ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource"); + + public static void main(String[] ava) throws IOException { +- List<String> av = new ArrayList<>(Arrays.asList(ava)); ++ List<String> av = new ArrayList<String>(Arrays.asList(ava)); + + boolean doPack = true; + boolean doUnpack = false; +@@ -84,7 +84,7 @@ + } + + // Collect engine properties here: +- Map<String,String> engProps = new HashMap<>(); ++ Map<String,String> engProps = new HashMap<String, String>(); + engProps.put(verboseProp, System.getProperty(verboseProp)); + + String optionMap; +@@ -98,7 +98,7 @@ + } + + // Collect argument properties here: +- Map<String,String> avProps = new HashMap<>(); ++ Map<String,String> avProps = new HashMap<String, String>(); + try { + for (;;) { + String state = parseCommandOptions(av, optionMap, avProps); +@@ -533,7 +533,7 @@ + String resultString = null; + + // Convert options string into optLines dictionary. +- TreeMap<String,String[]> optmap = new TreeMap<>(); ++ TreeMap<String,String[]> optmap = new TreeMap<String,String[]>(); + loadOptmap: + for (String optline : options.split("\n")) { + String[] words = optline.split("\\p{Space}+"); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2013-04-17 14:53:25.295551558 +0100 +@@ -45,7 +45,7 @@ + private final ArrayList<E> flist; + + protected FixedList(int capacity) { +- flist = new ArrayList<>(capacity); ++ flist = new ArrayList<E>(capacity); + // initialize the list to null + for (int i = 0 ; i < capacity ; i++) { + flist.add(null); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java 2013-04-17 14:53:25.295551558 +0100 +@@ -126,11 +126,11 @@ + public void setBytes(byte[] newBytes) { + if (bytes == newBytes) return; + ArrayList<Fixup> old = null; +- assert((old = new ArrayList<>(this)) != null); ++ assert((old = new ArrayList<Fixup>(this)) != null); + if (bytes == null || newBytes == null) { + // One or the other representations is deficient. + // Construct a checkpoint. +- ArrayList<Fixup> save = new ArrayList<>(this); ++ ArrayList<Fixup> save = new ArrayList<Fixup>(this); + clear(); + bytes = newBytes; + addAll(save); +@@ -138,7 +138,7 @@ + // assume newBytes is some sort of bitwise copy of the old bytes + bytes = newBytes; + } +- assert(old.equals(new ArrayList<>(this))); ++ assert(old.equals(new ArrayList<Fixup>(this))); + } + + static final int LOC_SHIFT = 1; +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-17 14:52:22.294545002 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2013-04-17 14:53:25.295551558 +0100 +@@ -112,7 +112,7 @@ + public static final Attribute.Layout attrSourceFileSpecial; + public static final Map<Attribute.Layout, Attribute> attrDefs; + static { +- Map<Layout, Attribute> ad = new HashMap<>(3); ++ Map<Layout, Attribute> ad = new HashMap<Layout, Attribute>(3); + attrCodeEmpty = Attribute.define(ad, ATTR_CONTEXT_METHOD, + "Code", "").layout(); + attrInnerClassesEmpty = Attribute.define(ad, ATTR_CONTEXT_CLASS, +@@ -181,7 +181,7 @@ + } + } + +- ArrayList<Package.Class> classes = new ArrayList<>(); ++ ArrayList<Package.Class> classes = new ArrayList<Package.Class>(); + + public List<Package.Class> getClasses() { + return classes; +@@ -263,7 +263,7 @@ + if (olda == null) + return; // no SourceFile attr. + String obvious = getObviousSourceFile(); +- List<Entry> ref = new ArrayList<>(1); ++ List<Entry> ref = new ArrayList<Entry>(1); + olda.visitRefs(this, VRM_PACKAGE, ref); + Utf8Entry sfName = (Utf8Entry) ref.get(0); + Attribute a = olda; +@@ -291,7 +291,7 @@ + if (a != olda) { + if (verbose > 2) + Utils.log.fine("recoding obvious SourceFile="+obvious); +- List<Attribute> newAttrs = new ArrayList<>(getAttributes()); ++ List<Attribute> newAttrs = new ArrayList<Attribute>(getAttributes()); + int where = newAttrs.indexOf(olda); + newAttrs.set(where, a); + setAttributes(newAttrs); +@@ -321,7 +321,7 @@ + } + + public void setInnerClasses(Collection<InnerClass> ics) { +- innerClasses = (ics == null) ? null : new ArrayList<>(ics); ++ innerClasses = (ics == null) ? null : new ArrayList<InnerClass>(ics); + // Edit the attribute list, if necessary. + Attribute a = getAttribute(attrInnerClassesEmpty); + if (innerClasses != null && a == null) +@@ -340,7 +340,7 @@ + * with that of Package.this.allInnerClasses. + */ + public List<InnerClass> computeGloballyImpliedICs() { +- Set<Entry> cpRefs = new HashSet<>(); ++ Set<Entry> cpRefs = new HashSet<Entry>(); + { // This block temporarily displaces this.innerClasses. + ArrayList<InnerClass> innerClassesSaved = innerClasses; + innerClasses = null; // ignore for the moment +@@ -349,7 +349,7 @@ + } + ConstantPool.completeReferencesIn(cpRefs, true); + +- Set<Entry> icRefs = new HashSet<>(); ++ Set<Entry> icRefs = new HashSet<Entry>(); + for (Entry e : cpRefs) { + // Restrict cpRefs to InnerClasses entries only. + if (!(e instanceof ClassEntry)) continue; +@@ -365,7 +365,7 @@ + // This loop is structured this way so as to accumulate + // entries into impliedICs in an order which reflects + // the order of allInnerClasses. +- ArrayList<InnerClass> impliedICs = new ArrayList<>(); ++ ArrayList<InnerClass> impliedICs = new ArrayList<InnerClass>(); + for (InnerClass ic : allInnerClasses) { + // This one is locally relevant if it describes + // a member of the current class, or if the current +@@ -408,8 +408,8 @@ + // Diff is A since I is empty. + } + // (I*A) is non-trivial +- Set<InnerClass> center = new HashSet<>(actualICs); +- center.retainAll(new HashSet<>(impliedICs)); ++ Set<InnerClass> center = new HashSet<InnerClass>(actualICs); ++ center.retainAll(new HashSet<InnerClass>(impliedICs)); + impliedICs.addAll(actualICs); + impliedICs.removeAll(center); + // Diff is now I^A = (I+A)-(I*A). +@@ -538,7 +538,7 @@ + super(flags, descriptor); + assert(!descriptor.isMethod()); + if (fields == null) +- fields = new ArrayList<>(); ++ fields = new ArrayList<Field>(); + boolean added = fields.add(this); + assert(added); + order = fields.size(); +@@ -563,7 +563,7 @@ + super(flags, descriptor); + assert(descriptor.isMethod()); + if (methods == null) +- methods = new ArrayList<>(); ++ methods = new ArrayList<Method>(); + boolean added = methods.add(this); + assert(added); + } +@@ -728,14 +728,14 @@ + } + + // What non-class files are in this unit? +- ArrayList<File> files = new ArrayList<>(); ++ ArrayList<File> files = new ArrayList<File>(); + + public List<File> getFiles() { + return files; + } + + public List<File> getClassStubs() { +- List<File> classStubs = new ArrayList<>(classes.size()); ++ List<File> classStubs = new ArrayList<File>(classes.size()); + for (Class cls : classes) { + assert(cls.file.isClassStub()); + classStubs.add(cls.file); +@@ -749,7 +749,7 @@ + int modtime = NO_MODTIME; + int options = 0; // random flag bits, such as deflate_hint + Class stubClass; // if this is a stub, here's the class +- ArrayList<byte[]> prepend = new ArrayList<>(); // list of byte[] ++ ArrayList<byte[]> prepend = new ArrayList<byte[]>(); // list of byte[] + java.io.ByteArrayOutputStream append = new ByteArrayOutputStream(); + + File(Utf8Entry name) { +@@ -852,7 +852,7 @@ + public InputStream getInputStream() { + InputStream in = new ByteArrayInputStream(append.toByteArray()); + if (prepend.isEmpty()) return in; +- List<InputStream> isa = new ArrayList<>(prepend.size()+1); ++ List<InputStream> isa = new ArrayList<InputStream>(prepend.size()+1); + for (byte[] bytes : prepend) { + isa.add(new ByteArrayInputStream(bytes)); + } +@@ -888,7 +888,7 @@ + } + + // Is there a globally declared table of inner classes? +- List<InnerClass> allInnerClasses = new ArrayList<>(); ++ List<InnerClass> allInnerClasses = new ArrayList<InnerClass>(); + Map<ClassEntry, InnerClass> allInnerClassesByThis; + + public +@@ -903,7 +903,7 @@ + allInnerClasses.addAll(ics); + + // Make an index: +- allInnerClassesByThis = new HashMap<>(allInnerClasses.size()); ++ allInnerClassesByThis = new HashMap<ClassEntry,InnerClass>(allInnerClasses.size()); + for (InnerClass ic : allInnerClasses) { + Object pic = allInnerClassesByThis.put(ic.thisClass, ic); + assert(pic == null); // caller must ensure key uniqueness! +@@ -1290,7 +1290,7 @@ + + // Use this before writing the class files. + void ensureAllClassFiles() { +- Set<File> fileSet = new HashSet<>(files); ++ Set<File> fileSet = new HashSet<File>(files); + for (Class cls : classes) { + // Add to the end of ths list: + if (!fileSet.contains(cls.file)) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2013-04-17 14:52:22.422547047 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2013-04-17 14:53:25.295551558 +0100 +@@ -686,7 +686,7 @@ + cp_Signature_classes.expectLength(getIntTotal(numSigClasses)); + cp_Signature_classes.readFrom(in); + cp_Signature_classes.setIndex(getCPIndex(CONSTANT_Class)); +- utf8Signatures = new HashMap<>(); ++ utf8Signatures = new HashMap<Utf8Entry, SignatureEntry>(); + for (int i = 0; i < cpMap.length; i++) { + Utf8Entry formRef = (Utf8Entry) cp_Signature_form.getRef(); + ClassEntry[] classRefs = new ClassEntry[numSigClasses[i]]; +@@ -892,7 +892,7 @@ + ic_name.expectLength(longICCount); + ic_name.readFrom(in); + ic_flags.resetForSecondPass(); +- List<InnerClass> icList = new ArrayList<>(numInnerClasses); ++ List<InnerClass> icList = new ArrayList<InnerClass>(numInnerClasses); + for (int i = 0; i < numInnerClasses; i++) { + int flags = ic_flags.getInt(); + boolean longForm = (flags & ACC_IC_LONG_FORM) != 0; +@@ -934,7 +934,7 @@ + + void readLocalInnerClasses(Class cls) throws IOException { + int nc = class_InnerClasses_N.getInt(); +- List<InnerClass> localICs = new ArrayList<>(nc); ++ List<InnerClass> localICs = new ArrayList<InnerClass>(nc); + for (int i = 0; i < nc; i++) { + ClassEntry thisClass = (ClassEntry) class_InnerClasses_RC.getRef(); + int flags = class_InnerClasses_F.getInt(); +@@ -1062,7 +1062,7 @@ + + Entry[] reconstructLocalCPMap(Class cls) { + Set<Entry> ldcRefs = ldcRefMap.get(cls); +- Set<Entry> cpRefs = new HashSet<>(); ++ Set<Entry> cpRefs = new HashSet<Entry>(); + + // look for constant pool entries: + cls.visitRefs(VRM_CLASSIC, cpRefs); +@@ -1167,7 +1167,7 @@ + method_descr.expectLength(totalNM); + if (verbose > 1) Utils.log.fine("expecting #fields="+totalNF+" and #methods="+totalNM+" in #classes="+numClasses); + +- List<Class.Field> fields = new ArrayList<>(totalNF); ++ List<Class.Field> fields = new ArrayList<Class.Field>(totalNF); + field_descr.readFrom(in); + for (int i = 0; i < classes.length; i++) { + Class c = classes[i]; +@@ -1183,7 +1183,7 @@ + countAndReadAttrs(ATTR_CONTEXT_FIELD, fields); + fields = null; // release to GC + +- List<Class.Method> methods = new ArrayList<>(totalNM); ++ List<Class.Method> methods = new ArrayList<Class.Method>(totalNM); + method_descr.readFrom(in); + for (int i = 0; i < classes.length; i++) { + Class c = classes[i]; +@@ -1206,10 +1206,10 @@ + + Code[] allCodes; + List<Code> codesWithFlags; +- Map<Class, Set<Entry>> ldcRefMap = new HashMap<>(); ++ Map<Class, Set<Entry>> ldcRefMap = new HashMap<Class, Set<Entry>>(); + + Code[] buildCodeAttrs(List<Class.Method> methods) { +- List<Code> codes = new ArrayList<>(methods.size()); ++ List<Code> codes = new ArrayList<Code>(methods.size()); + for (Class.Method m : methods) { + if (m.getAttribute(attrCodeEmpty) != null) { + m.code = new Code(m); +@@ -1233,7 +1233,7 @@ + boolean attrsOK = testBit(archiveOptions, AO_HAVE_ALL_CODE_FLAGS); + code_headers.expectLength(allCodes.length); + code_headers.readFrom(in); +- List<Code> longCodes = new ArrayList<>(allCodes.length / 10); ++ List<Code> longCodes = new ArrayList<Code>(allCodes.length / 10); + for (int i = 0; i < allCodes.length; i++) { + Code c = allCodes[i]; + int sc = code_headers.getByte(); +@@ -1472,7 +1472,7 @@ + bits -= (1L<<ai); + nfa += 1; + } +- List<Attribute> ha = new ArrayList<>(nfa + noa); ++ List<Attribute> ha = new ArrayList<Attribute>(nfa + noa); + h.attributes = ha; + bits = attrBits; // iterate again + for (int ai = 0; bits != 0; ai++) { +@@ -1596,7 +1596,7 @@ + void readAttrs(int ctype, Collection<? extends Attribute.Holder> holders) + throws IOException { + // Decode band values into attributes. +- Set<Attribute.Layout> sawDefs = new HashSet<>(); ++ Set<Attribute.Layout> sawDefs = new HashSet<Attribute.Layout>(); + ByteArrayOutputStream buf = new ByteArrayOutputStream(); + for (final Attribute.Holder h : holders) { + if (h.attributes == null) continue; +@@ -1799,7 +1799,7 @@ + // scratch buffer for collecting code:: + byte[] buf = new byte[1<<12]; + // record of all switch opcodes (these are variable-length) +- List<Integer> allSwitchOps = new ArrayList<>(); ++ List<Integer> allSwitchOps = new ArrayList<Integer>(); + for (int k = 0; k < allCodes.length; k++) { + Code c = allCodes[k]; + scanOneMethod: +@@ -1915,7 +1915,7 @@ + + Set<Entry> ldcRefSet = ldcRefMap.get(curClass); + if (ldcRefSet == null) +- ldcRefMap.put(curClass, ldcRefSet = new HashSet<>()); ++ ldcRefMap.put(curClass, ldcRefSet = new HashSet<Entry>()); + + ClassEntry thisClass = curClass.thisClass; + ClassEntry superClass = curClass.superClass; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2013-04-17 14:52:22.422547047 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2013-04-17 14:53:25.299551622 +0100 +@@ -116,7 +116,7 @@ + int[][] attrCounts; // count attr. occurences + + void setup() { +- requiredEntries = new HashSet<>(); ++ requiredEntries = new HashSet<Entry>(); + setArchiveOptions(); + trimClassAttributes(); + collectAttributeLayouts(); +@@ -176,7 +176,7 @@ + } + } + // Decide on default version number (majority rule). +- Map<Integer, int[]> verCounts = new HashMap<>(); ++ Map<Integer, int[]> verCounts = new HashMap<Integer, int[]>(); + int bestCount = 0; + int bestVersion = -1; + for (Class cls : pkg.classes) { +@@ -728,7 +728,7 @@ + + void collectAttributeLayouts() { + maxFlags = new int[ATTR_CONTEXT_LIMIT]; +- allLayouts = new FixedList<>(ATTR_CONTEXT_LIMIT); ++ allLayouts = new FixedList<Map<Attribute.Layout,int[]>>(ATTR_CONTEXT_LIMIT); + for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) { + allLayouts.set(i, new HashMap<Attribute.Layout, int[]>()); + } +@@ -773,7 +773,7 @@ + } + // Collect counts for both predefs. and custom defs. + // Decide on custom, local attribute definitions. +- backCountTable = new HashMap<>(); ++ backCountTable = new HashMap<Attribute.Layout, int[]>(); + attrCounts = new int[ATTR_CONTEXT_LIMIT][]; + for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) { + // Now the remaining defs in allLayouts[i] need attr. indexes. +@@ -888,7 +888,7 @@ + Attribute.Layout[] attrDefsWritten; + + void writeAttrDefs() throws IOException { +- List<Object[]> defList = new ArrayList<>(); ++ List<Object[]> defList = new ArrayList<Object[]>(); + for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) { + int limit = attrDefs.get(i).size(); + for (int j = 0; j < limit; j++) { +@@ -1005,7 +1005,7 @@ + void collectInnerClasses() { + // Capture inner classes, removing them from individual classes. + // Irregular inner classes must stay local, though. +- Map<ClassEntry, InnerClass> allICMap = new HashMap<>(); ++ Map<ClassEntry, InnerClass> allICMap = new HashMap<ClassEntry, InnerClass>(); + // First, collect a consistent global set. + for (Class cls : pkg.classes) { + if (!cls.hasInnerClasses()) continue; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2013-04-17 14:53:25.299551622 +0100 +@@ -181,8 +181,8 @@ + final Map<Attribute.Layout, Attribute> attrDefs; + final Map<Attribute.Layout, String> attrCommands; + { +- Map<Attribute.Layout, Attribute> lattrDefs = new HashMap<>(); +- Map<Attribute.Layout, String> lattrCommands = new HashMap<>(); ++ Map<Attribute.Layout, Attribute> lattrDefs = new HashMap<Attribute.Layout, Attribute>(); ++ Map<Attribute.Layout, String> lattrCommands = new HashMap<Attribute.Layout, String>(); + String[] keys = { + Pack200.Packer.CLASS_ATTRIBUTE_PFX, + Pack200.Packer.FIELD_ATTRIBUTE_PFX, +@@ -590,7 +590,7 @@ + assert(pkg.files.containsAll(pkg.getClassStubs())); + // Order of stubs in file list must agree with classes. + List<Package.File> res = pkg.files; +- assert((res = new ArrayList<>(pkg.files)) ++ assert((res = new ArrayList<Package.File>(pkg.files)) + .retainAll(pkg.getClassStubs()) || true); + assert(res.equals(pkg.getClassStubs())); + } +@@ -623,7 +623,7 @@ + + List<InFile> scanJar(JarFile jf) throws IOException { + // Collect jar entries, preserving order. +- List<InFile> inFiles = new ArrayList<>(); ++ List<InFile> inFiles = new ArrayList<InFile>(); + try { + for (JarEntry je : Collections.list(jf.entries())) { + InFile inFile = new InFile(jf, je); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2013-04-17 14:53:25.299551622 +0100 +@@ -309,7 +309,7 @@ + // As each new value is added, we assert that the value + // was not already in the set. + Set<Integer> uniqueValuesForDebug = null; +- assert((uniqueValuesForDebug = new HashSet<>()) != null); ++ assert((uniqueValuesForDebug = new HashSet<Integer>()) != null); + int fillp = 1; + maxForDebug += fillp; + int min = Integer.MIN_VALUE; // farthest from the center +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2013-04-17 14:52:22.426547111 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2013-04-17 14:53:25.299551622 +0100 +@@ -47,8 +47,8 @@ + */ + + final class PropMap implements SortedMap<String, String> { +- private final TreeMap<String, String> theMap = new TreeMap<>();; +- private final List<PropertyChangeListener> listenerList = new ArrayList<>(1); ++ private final TreeMap<String, String> theMap = new TreeMap<String, String>();; ++ private final List<PropertyChangeListener> listenerList = new ArrayList<PropertyChangeListener>(1); + + void addListener(PropertyChangeListener listener) { + listenerList.add(listener); +@@ -187,7 +187,7 @@ + // Get sequence of props for "prefix", and "prefix.*". + List<String> getProperties(String prefix) { + Collection<String> values = prefixMap(prefix).values(); +- List<String> res = new ArrayList<>(values.size()); ++ List<String> res = new ArrayList<String>(values.size()); + res.addAll(values); + while (res.remove(null)); + return res; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2013-04-17 14:53:25.299551622 +0100 +@@ -58,12 +58,12 @@ + private final Map<String, MemberEntry> memberEntries; + + TLGlobals() { +- utf8Entries = new HashMap<>(); +- classEntries = new HashMap<>(); +- literalEntries = new HashMap<>(); +- signatureEntries = new HashMap<>(); +- descriptorEntries = new HashMap<>(); +- memberEntries = new HashMap<>(); ++ utf8Entries = new HashMap<String,Utf8Entry>(); ++ classEntries = new HashMap<String,ClassEntry>(); ++ literalEntries = new HashMap<Object,LiteralEntry>(); ++ signatureEntries = new HashMap<String,SignatureEntry>(); ++ descriptorEntries = new HashMap<String,DescriptorEntry>(); ++ memberEntries = new HashMap<String,MemberEntry>(); + props = new PropMap(); + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2013-04-17 14:52:22.426547111 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2013-04-17 14:53:25.299551622 +0100 +@@ -232,7 +232,7 @@ + props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50"); + pkg.ensureAllClassFiles(); + // Now write out the files. +- Set<Package.Class> classesToWrite = new HashSet<>(pkg.getClasses()); ++ Set<Package.Class> classesToWrite = new HashSet<Package.Class>(pkg.getClasses()); + for (Package.File file : pkg.getFiles()) { + String name = file.nameString; + JarEntry je = new JarEntry(Utils.getJarEntryName(name)); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2013-04-17 14:52:22.426547111 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2013-04-17 14:53:25.299551622 +0100 +@@ -132,7 +132,7 @@ + // Keep a TLS point to the global data and environment. + // This makes it simpler to supply environmental options + // to the engine code, especially the native code. +- static final ThreadLocal<TLGlobals> currentInstance = new ThreadLocal<>(); ++ static final ThreadLocal<TLGlobals> currentInstance = new ThreadLocal<TLGlobals>(); + + // convenience methods to access the TL globals + static TLGlobals getTLGlobals() { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2013-04-17 14:53:25.303551686 +0100 +@@ -1284,7 +1284,7 @@ + */ + public Collection<?> toCollection() throws SQLException { + +- TreeMap<Integer, Object> tMap = new TreeMap<>(); ++ TreeMap<Integer, Object> tMap = new TreeMap<Integer, Object>(); + + for (int i = 0; i<numRows; i++) { + tMap.put(Integer.valueOf(i), rvh.get(i)); +@@ -1314,7 +1314,7 @@ + public Collection<?> toCollection(int column) throws SQLException { + + int nRows = numRows; +- Vector<Object> vec = new Vector<>(nRows); ++ Vector<Object> vec = new Vector<Object>(nRows); + + // create a copy + CachedRowSetImpl crsTemp; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2013-04-17 14:53:25.303551686 +0100 +@@ -222,7 +222,7 @@ + // either of the setter methods have been set. + if(boolColId){ + // +- ArrayList<Integer> indices = new ArrayList<>(); ++ ArrayList<Integer> indices = new ArrayList<Integer>(); + for(int i=0;i<cRowset.getMatchColumnNames().length;i++) { + if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) { + iMatchKey = cRowset.findColumn(strMatchKey); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2013-04-17 14:53:25.303551686 +0100 +@@ -99,10 +99,10 @@ + throws UnsupportedCallbackException + { + /* Collect messages to display in the dialog */ +- final List<Object> messages = new ArrayList<>(3); ++ final List<Object> messages = new ArrayList<Object>(3); + + /* Collection actions to perform if the user clicks OK */ +- final List<Action> okActions = new ArrayList<>(2); ++ final List<Action> okActions = new ArrayList<Action>(2); + + ConfirmationInfo confirmation = new ConfirmationInfo(); + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2013-04-17 14:53:25.307551750 +0100 +@@ -152,7 +152,7 @@ + + // new configuration + HashMap<String, LinkedList<AppConfigurationEntry>> newConfig = +- new HashMap<>(); ++ new HashMap<String, LinkedList<AppConfigurationEntry>>(); + + if (url != null) { + +@@ -392,7 +392,7 @@ + String moduleClass; + String sflag; + AppConfigurationEntry.LoginModuleControlFlag controlFlag; +- LinkedList<AppConfigurationEntry> configEntries = new LinkedList<>(); ++ LinkedList<AppConfigurationEntry> configEntries = new LinkedList<AppConfigurationEntry>(); + + // application name + appName = st.sval; +@@ -432,7 +432,7 @@ + } + + // get the args +- HashMap<String, String> options = new HashMap<>(); ++ HashMap<String, String> options = new HashMap<String, String>(); + String key; + String value; + while (peek(";") == false) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2013-04-17 14:53:25.307551750 +0100 +@@ -184,7 +184,7 @@ + private UnixNumericUserPrincipal UIDPrincipal; + private UnixNumericGroupPrincipal GIDPrincipal; + private LinkedList<UnixNumericGroupPrincipal> supplementaryGroups = +- new LinkedList<>(); ++ new LinkedList<UnixNumericGroupPrincipal>(); + + // initial state + private Subject subject; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2013-04-17 14:53:25.307551750 +0100 +@@ -658,7 +658,7 @@ + throw new FailedLoginException( + "Unable to find X.509 certificate chain in keystore"); + } else { +- LinkedList<Certificate> certList = new LinkedList<>(); ++ LinkedList<Certificate> certList = new LinkedList<Certificate>(); + for (int i=0; i < fromKeyStore.length; i++) { + certList.add(fromKeyStore[i]); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2013-04-17 14:53:25.307551750 +0100 +@@ -76,7 +76,7 @@ + private SolarisNumericUserPrincipal UIDPrincipal; + private SolarisNumericGroupPrincipal GIDPrincipal; + private LinkedList<SolarisNumericGroupPrincipal> supplementaryGroups = +- new LinkedList<>(); ++ new LinkedList<SolarisNumericGroupPrincipal>(); + + /** + * Initialize this <code>LoginModule</code>. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java 2013-04-17 14:53:25.307551750 +0100 +@@ -70,7 +70,7 @@ + private UnixNumericUserPrincipal UIDPrincipal; + private UnixNumericGroupPrincipal GIDPrincipal; + private LinkedList<UnixNumericGroupPrincipal> supplementaryGroups = +- new LinkedList<>(); ++ new LinkedList<UnixNumericGroupPrincipal>(); + + /** + * Initialize this <code>LoginModule</code>. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java 2013-04-17 14:53:25.307551750 +0100 +@@ -1180,7 +1180,7 @@ + // Done + return certs; + +- ArrayList<Certificate> userCertList = new ArrayList<>(); ++ ArrayList<Certificate> userCertList = new ArrayList<Certificate>(); + i = 0; + while (i < certs.length) { + userCertList.add(certs[i]); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java 2013-04-17 14:53:25.307551750 +0100 +@@ -59,7 +59,7 @@ + + // Maps ThreadReference to ThreadTrace instances + private Map<ThreadReference, ThreadTrace> traceMap = +- new HashMap<>(); ++ new HashMap(); + + EventThread(VirtualMachine vm, String[] excludes, PrintWriter writer) { + super("event-handler"); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/beans/Introspector.java openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java +--- openjdk-boot.orig/jdk/src/share/classes/java/beans/Introspector.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java 2013-04-17 14:53:25.311551814 +0100 +@@ -95,7 +95,7 @@ + public final static int IGNORE_ALL_BEANINFO = 3; + + // Static Caches to speed up introspection. +- private static final WeakCache<Class<?>, Method[]> declaredMethodCache = new WeakCache<>(); ++ private static final WeakCache<Class<?>, Method[]> declaredMethodCache = new WeakCache(); + + private Class beanClass; + private BeanInfo explicitBeanInfo; +@@ -1452,7 +1452,7 @@ + this.defaultProperty = defaultProperty; + this.methods = methods; + this.targetBeanInfoRef = (targetBeanInfo != null) +- ? new SoftReference<>(targetBeanInfo) ++ ? new SoftReference<BeanInfo>(targetBeanInfo) + : null; + } + +@@ -1536,7 +1536,7 @@ + targetBeanInfo = ThreadGroupContext.getContext().getBeanInfoFinder() + .find(this.beanDescriptor.getBeanClass()); + if (targetBeanInfo != null) { +- this.targetBeanInfoRef = new SoftReference<>(targetBeanInfo); ++ this.targetBeanInfoRef = new SoftReference<BeanInfo>(targetBeanInfo); + } + } + return targetBeanInfo; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/beans/ThreadGroupContext.java openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java +--- openjdk-boot.orig/jdk/src/share/classes/java/beans/ThreadGroupContext.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java 2013-04-17 14:53:25.311551814 +0100 +@@ -41,7 +41,7 @@ + */ + final class ThreadGroupContext { + +- private static final WeakIdentityMap<ThreadGroupContext> contexts = new WeakIdentityMap<>(); ++ private static final WeakIdentityMap<ThreadGroupContext> contexts = new WeakIdentityMap<ThreadGroupContext>(); + + /** + * Returns the appropriate {@code AppContext} for the caller, +@@ -100,7 +100,7 @@ + + BeanInfo putBeanInfo(Class<?> type, BeanInfo info) { + if (this.beanInfoCache == null) { +- this.beanInfoCache = new WeakHashMap<>(); ++ this.beanInfoCache = new WeakHashMap(); + } + return this.beanInfoCache.put(type, info); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/DeleteOnExitHook.java openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java +--- openjdk-boot.orig/jdk/src/share/classes/java/io/DeleteOnExitHook.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java 2013-04-17 14:53:25.311551814 +0100 +@@ -34,7 +34,7 @@ + */ + + class DeleteOnExitHook { +- private static LinkedHashSet<String> files = new LinkedHashSet<>(); ++ private static LinkedHashSet<String> files = new LinkedHashSet<String>(); + static { + // DeleteOnExitHook must be the last shutdown hook to be invoked. + // Application shutdown hooks may add the first file to the +@@ -71,7 +71,7 @@ + files = null; + } + +- ArrayList<String> toBeDeleted = new ArrayList<>(theFiles); ++ ArrayList<String> toBeDeleted = new ArrayList<String>(theFiles); + + // reverse the list to maintain previous jdk deletion order. + // Last in first deleted. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java +--- openjdk-boot.orig/jdk/src/share/classes/java/io/FileInputStream.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java 2013-04-17 14:53:25.311551814 +0100 +@@ -57,7 +57,7 @@ + private volatile boolean closed = false; + + private static final ThreadLocal<Boolean> runningFinalize = +- new ThreadLocal<>(); ++ new ThreadLocal<Boolean>(); + + private static boolean isRunningFinalize() { + Boolean val; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/File.java openjdk-boot/jdk/src/share/classes/java/io/File.java +--- openjdk-boot.orig/jdk/src/share/classes/java/io/File.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/io/File.java 2013-04-17 14:53:25.315551878 +0100 +@@ -1082,7 +1082,7 @@ + if ((names == null) || (filter == null)) { + return names; + } +- List<String> v = new ArrayList<>(); ++ List<String> v = new ArrayList<String>(); + for (int i = 0 ; i < names.length ; i++) { + if (filter.accept(this, names[i])) { + v.add(names[i]); +@@ -1173,7 +1173,7 @@ + public File[] listFiles(FilenameFilter filter) { + String ss[] = list(); + if (ss == null) return null; +- ArrayList<File> files = new ArrayList<>(); ++ ArrayList<File> files = new ArrayList<File>(); + for (String s : ss) + if ((filter == null) || filter.accept(this, s)) + files.add(new File(s, this)); +@@ -1211,7 +1211,7 @@ + public File[] listFiles(FileFilter filter) { + String ss[] = list(); + if (ss == null) return null; +- ArrayList<File> files = new ArrayList<>(); ++ ArrayList<File> files = new ArrayList<File>(); + for (String s : ss) { + File f = new File(s, this); + if ((filter == null) || filter.accept(f)) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java +--- openjdk-boot.orig/jdk/src/share/classes/java/io/FileOutputStream.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java 2013-04-17 14:53:25.315551878 +0100 +@@ -70,7 +70,7 @@ + private final Object closeLock = new Object(); + private volatile boolean closed = false; + private static final ThreadLocal<Boolean> runningFinalize = +- new ThreadLocal<>(); ++ new ThreadLocal<Boolean>(); + + private static boolean isRunningFinalize() { + Boolean val; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/FilePermission.java openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java +--- openjdk-boot.orig/jdk/src/share/classes/java/io/FilePermission.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java 2013-04-17 14:53:25.315551878 +0100 +@@ -725,7 +725,7 @@ + */ + + public FilePermissionCollection() { +- perms = new ArrayList<>(); ++ perms = new ArrayList<Permission>(); + } + + /** +@@ -830,7 +830,7 @@ + // Don't call out.defaultWriteObject() + + // Write out Vector +- Vector<Permission> permissions = new Vector<>(perms.size()); ++ Vector<Permission> permissions = new Vector<Permission>(perms.size()); + synchronized (this) { + permissions.addAll(perms); + } +@@ -853,7 +853,7 @@ + + // Get the one we want + Vector<Permission> permissions = (Vector<Permission>)gfields.get("permissions", null); +- perms = new ArrayList<>(permissions.size()); ++ perms = new ArrayList<Permission>(permissions.size()); + perms.addAll(permissions); + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectInputStream.java openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java +--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectInputStream.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java 2013-04-17 14:53:25.315551878 +0100 +@@ -214,7 +214,7 @@ + + /** table mapping primitive type names to corresponding class objects */ + private static final HashMap<String, Class<?>> primClasses +- = new HashMap<>(8, 1.0F); ++ = new HashMap<String, Class<?>>(8, 1.0F); + static { + primClasses.put("boolean", boolean.class); + primClasses.put("byte", byte.class); +@@ -230,11 +230,11 @@ + private static class Caches { + /** cache of subclass security audit results */ + static final ConcurrentMap<WeakClassKey,Boolean> subclassAudits = +- new ConcurrentHashMap<>(); ++ new ConcurrentHashMap<WeakClassKey,Boolean>(); + + /** queue for WeakReferences to audited subclasses */ + static final ReferenceQueue<Class<?>> subclassAuditsQueue = +- new ReferenceQueue<>(); ++ new ReferenceQueue<Class<?>>(); + } + + /** filter stream for handling block data conversion */ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectOutputStream.java openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java +--- openjdk-boot.orig/jdk/src/share/classes/java/io/ObjectOutputStream.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java 2013-04-17 14:53:25.315551878 +0100 +@@ -165,11 +165,11 @@ + private static class Caches { + /** cache of subclass security audit results */ + static final ConcurrentMap<WeakClassKey,Boolean> subclassAudits = +- new ConcurrentHashMap<>(); ++ new ConcurrentHashMap<WeakClassKey,Boolean>(); + + /** queue for WeakReferences to audited subclasses */ + static final ReferenceQueue<Class<?>> subclassAuditsQueue = +- new ReferenceQueue<>(); ++ new ReferenceQueue<Class<?>>(); + } + + /** filter stream for handling block data conversion */ +@@ -2413,7 +2413,7 @@ + private final List<String> stack; + + DebugTraceInfoStack() { +- stack = new ArrayList<>(); ++ stack = new ArrayList<String>(); + } + + /** +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-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java 2013-04-17 14:53:25.315551878 +0100 +@@ -84,18 +84,18 @@ + private static class Caches { + /** cache mapping local classes -> descriptors */ + static final ConcurrentMap<WeakClassKey,Reference<?>> localDescs = +- new ConcurrentHashMap<>(); ++ new ConcurrentHashMap<WeakClassKey,Reference<?>>(); + + /** cache mapping field group/local desc pairs -> field reflectors */ + static final ConcurrentMap<FieldReflectorKey,Reference<?>> reflectors = +- new ConcurrentHashMap<>(); ++ new ConcurrentHashMap<FieldReflectorKey,Reference<?>>(); + + /** queue for WeakReferences to local classes */ + private static final ReferenceQueue<Class<?>> localDescsQueue = +- new ReferenceQueue<>(); ++ new ReferenceQueue<Class<?>>(); + /** queue for WeakReferences to field reflectors keys */ + private static final ReferenceQueue<Class<?>> reflectorsQueue = +- new ReferenceQueue<>(); ++ new ReferenceQueue<Class<?>>(); + } + + /** class associated with this descriptor (if any) */ +@@ -315,7 +315,7 @@ + EntryFuture future = null; + if (entry == null) { + EntryFuture newEntry = new EntryFuture(); +- Reference<?> newRef = new SoftReference<>(newEntry); ++ Reference<?> newRef = new SoftReference<EntryFuture>(newEntry); + do { + if (ref != null) { + Caches.localDescs.remove(key, ref); +@@ -1143,7 +1143,7 @@ + private ClassDataSlot[] getClassDataLayout0() + throws InvalidClassException + { +- ArrayList<ClassDataSlot> slots = new ArrayList<>(); ++ ArrayList<ClassDataSlot> slots = new ArrayList<ClassDataSlot>(); + Class<?> start = cl, end = cl; + + // locate closest non-serializable superclass +@@ -1579,7 +1579,7 @@ + + ObjectStreamField[] boundFields = + new ObjectStreamField[serialPersistentFields.length]; +- Set<String> fieldNames = new HashSet<>(serialPersistentFields.length); ++ Set<String> fieldNames = new HashSet<String>(serialPersistentFields.length); + + for (int i = 0; i < serialPersistentFields.length; i++) { + ObjectStreamField spf = serialPersistentFields[i]; +@@ -1617,7 +1617,7 @@ + */ + private static ObjectStreamField[] getDefaultSerialFields(Class<?> cl) { + Field[] clFields = cl.getDeclaredFields(); +- ArrayList<ObjectStreamField> list = new ArrayList<>(); ++ ArrayList<ObjectStreamField> list = new ArrayList<ObjectStreamField>(); + int mask = Modifier.STATIC | Modifier.TRANSIENT; + + for (int i = 0; i < clFields.length; i++) { +@@ -1868,8 +1868,8 @@ + writeKeys = new long[nfields]; + offsets = new int[nfields]; + typeCodes = new char[nfields]; +- ArrayList<Class<?>> typeList = new ArrayList<>(); +- Set<Long> usedKeys = new HashSet<>(); ++ ArrayList<Class<?>> typeList = new ArrayList<Class<?>>(); ++ Set<Long> usedKeys = new HashSet<Long>(); + + + for (int i = 0; i < nfields; i++) { +@@ -2105,7 +2105,7 @@ + EntryFuture future = null; + if (entry == null) { + EntryFuture newEntry = new EntryFuture(); +- Reference<?> newRef = new SoftReference<>(newEntry); ++ Reference<?> newRef = new SoftReference<EntryFuture>(newEntry); + do { + if (ref != null) { + Caches.reflectors.remove(key, ref); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java 2013-04-17 14:53:25.319551942 +0100 +@@ -47,7 +47,7 @@ + } + } + ); +- hooks = new IdentityHashMap<>(); ++ hooks = new IdentityHashMap<Thread, Thread>(); + } catch (IllegalStateException e) { + // application shutdown hooks cannot be added if + // shutdown is in progress. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Character.java openjdk-boot/jdk/src/share/classes/java/lang/Character.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Character.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java 2013-04-17 14:53:25.319551942 +0100 +@@ -646,7 +646,8 @@ + */ + public static final class UnicodeBlock extends Subset { + +- private static Map<String, UnicodeBlock> map = new HashMap<>(256); ++ private static Map<String, UnicodeBlock> map ++ = new HashMap<String, UnicodeBlock>(256); + + /** + * Creates a UnicodeBlock with the given identifier name. +@@ -4175,7 +4176,7 @@ + + private static HashMap<String, Character.UnicodeScript> aliases; + static { +- aliases = new HashMap<>(128); ++ aliases = new HashMap<String, UnicodeScript>(128); + aliases.put("ARAB", ARABIC); + aliases.put("ARMI", IMPERIAL_ARAMAIC); + aliases.put("ARMN", ARMENIAN); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/CharacterName.java openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/CharacterName.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java 2013-04-17 14:53:25.323552005 +0100 +@@ -81,7 +81,7 @@ + } while (cpOff < cpEnd); + strPool = new byte[total - cpEnd]; + dis.readFully(strPool); +- refStrPool = new SoftReference<>(strPool); ++ refStrPool = new SoftReference<byte[]>(strPool); + } catch (Exception x) { + throw new InternalError(x.getMessage()); + } finally { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java openjdk-boot/jdk/src/share/classes/java/lang/Class.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Class.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java 2013-04-17 14:53:25.323552005 +0100 +@@ -1310,7 +1310,7 @@ + return java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction<Class<?>[]>() { + public Class[] run() { +- List<Class<?>> list = new ArrayList<>(); ++ List<Class<?>> list = new ArrayList<Class<?>>(); + Class<?> currentClass = Class.this; + while (currentClass != null) { + Class<?>[] members = currentClass.getDeclaredClasses(); +@@ -2317,9 +2317,9 @@ + res = Reflection.filterFields(this, getDeclaredFields0(publicOnly)); + if (useCaches) { + if (publicOnly) { +- declaredPublicFields = new SoftReference<>(res); ++ declaredPublicFields = new SoftReference<Field[]>(res); + } else { +- declaredFields = new SoftReference<>(res); ++ declaredFields = new SoftReference<Field[]>(res); + } + } + return res; +@@ -2341,9 +2341,9 @@ + + // No cached value available; compute value recursively. + // Traverse in correct order for getField(). +- List<Field> fields = new ArrayList<>(); ++ List<Field> fields = new ArrayList<Field>(); + if (traversedInterfaces == null) { +- traversedInterfaces = new HashSet<>(); ++ traversedInterfaces = new HashSet<Class<?>>(); + } + + // Local fields +@@ -2369,7 +2369,7 @@ + res = new Field[fields.size()]; + fields.toArray(res); + if (useCaches) { +- publicFields = new SoftReference<>(res); ++ publicFields = new SoftReference<Field[]>(res); + } + return res; + } +@@ -2414,9 +2414,9 @@ + } + if (useCaches) { + if (publicOnly) { +- publicConstructors = new SoftReference<>(res); ++ publicConstructors = new SoftReference<Constructor<T>[]>(res); + } else { +- declaredConstructors = new SoftReference<>(res); ++ declaredConstructors = new SoftReference<Constructor<T>[]>(res); + } + } + return res; +@@ -2451,9 +2451,9 @@ + res = Reflection.filterMethods(this, getDeclaredMethods0(publicOnly)); + if (useCaches) { + if (publicOnly) { +- declaredPublicMethods = new SoftReference<>(res); ++ declaredPublicMethods = new SoftReference<Method[]>(res); + } else { +- declaredMethods = new SoftReference<>(res); ++ declaredMethods = new SoftReference<Method[]>(res); + } + } + return res; +@@ -2609,7 +2609,7 @@ + methods.compactAndTrim(); + res = methods.getArray(); + if (useCaches) { +- publicMethods = new SoftReference<>(res); ++ publicMethods = new SoftReference<Method[]>(res); + } + return res; + } +@@ -2988,7 +2988,7 @@ + if (universe == null) + throw new IllegalArgumentException( + getName() + " is not an enum type"); +- Map<String, T> m = new HashMap<>(2 * universe.length); ++ Map<String, T> m = new HashMap<String, T>(2 * universe.length); + for (T constant : universe) + m.put(((Enum<?>)constant).name(), constant); + enumConstantDirectory = m; +@@ -3101,7 +3101,7 @@ + if (superClass == null) { + annotations = declaredAnnotations; + } else { +- annotations = new HashMap<>(); ++ annotations = new HashMap<Class<? extends Annotation>, Annotation>(); + superClass.initAnnotationsIfNecessary(); + for (Map.Entry<Class<? extends Annotation>, Annotation> e : superClass.annotations.entrySet()) { + Class<? extends Annotation> annotationClass = e.getKey(); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassLoader.java openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassLoader.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java 2013-04-17 14:53:25.323552005 +0100 +@@ -246,7 +246,7 @@ + + // The classes loaded by this class loader. The only purpose of this table + // is to keep the classes from being GC'ed until the loader is GC'ed. +- private final Vector<Class<?>> classes = new Vector<>(); ++ private final Vector<Class<?>> classes = new Vector<Class<?>>(); + + // The "default" domain. Set as the default ProtectionDomain on newly + // created classes. +@@ -265,7 +265,8 @@ + // The packages defined in this class loader. Each package name is mapped + // to its corresponding Package object. + // @GuardedBy("itself") +- private final HashMap<String, Package> packages = new HashMap<>(); ++ private final HashMap<String, Package> packages = ++ new HashMap<String, Package>(); + + private static Void checkCreateClassLoader() { + SecurityManager security = System.getSecurityManager(); +@@ -278,16 +279,16 @@ + private ClassLoader(Void unused, ClassLoader parent) { + this.parent = parent; + if (ParallelLoaders.isRegistered(this.getClass())) { +- parallelLockMap = new ConcurrentHashMap<>(); +- package2certs = new ConcurrentHashMap<>(); ++ parallelLockMap = new ConcurrentHashMap<String, Object>(); ++ package2certs = new ConcurrentHashMap<String, Certificate[]>(); + domains = + Collections.synchronizedSet(new HashSet<ProtectionDomain>()); + assertionLock = new Object(); + } else { + // no finer-grained lock; lock on the classloader instance + parallelLockMap = null; +- package2certs = new Hashtable<>(); +- domains = new HashSet<>(); ++ package2certs = new Hashtable<String, Certificate[]>(); ++ domains = new HashSet<ProtectionDomain>(); + assertionLock = this; + } + } +@@ -1175,7 +1176,7 @@ + } + tmp[1] = findResources(name); + +- return new CompoundEnumeration<>(tmp); ++ return new CompoundEnumeration<URL>(tmp); + } + + /** +@@ -1657,7 +1658,7 @@ + protected Package[] getPackages() { + Map<String, Package> map; + synchronized (packages) { +- map = new HashMap<>(packages); ++ map = new HashMap<String, Package>(packages); + } + Package[] pkgs; + if (parent != null) { +@@ -1764,17 +1765,20 @@ + } + + // All native library names we've loaded. +- private static Vector<String> loadedLibraryNames = new Vector<>(); ++ private static Vector<String> loadedLibraryNames ++ = new Vector<String>(); + + // Native libraries belonging to system classes. + private static Vector<NativeLibrary> systemNativeLibraries +- = new Vector<>(); ++ = new Vector<NativeLibrary>(); + + // Native libraries associated with the class loader. +- private Vector<NativeLibrary> nativeLibraries = new Vector<>(); ++ private Vector<NativeLibrary> nativeLibraries ++ = new Vector<NativeLibrary>(); + + // native libraries being loaded/unloaded. +- private static Stack<NativeLibrary> nativeLibraryContext = new Stack<>(); ++ private static Stack<NativeLibrary> nativeLibraryContext ++ = new Stack<NativeLibrary>(); + + // The paths searched for libraries + private static String usr_paths[]; +@@ -2108,8 +2112,8 @@ + * them to empty maps, effectively ignoring any present settings. + */ + synchronized (assertionLock) { +- classAssertionStatus = new HashMap<>(); +- packageAssertionStatus = new HashMap<>(); ++ classAssertionStatus = new HashMap<String, Boolean>(); ++ packageAssertionStatus = new HashMap<String, Boolean>(); + defaultAssertionStatus = false; + } + } +@@ -2171,8 +2175,8 @@ + private void initializeJavaAssertionMaps() { + // assert Thread.holdsLock(assertionLock); + +- classAssertionStatus = new HashMap<>(); +- packageAssertionStatus = new HashMap<>(); ++ classAssertionStatus = new HashMap<String, Boolean>(); ++ packageAssertionStatus = new HashMap<String, Boolean>(); + AssertionStatusDirectives directives = retrieveDirectives(); + + for(int i = 0; i < directives.classes.length; i++) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassValue.java openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ClassValue.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/ClassValue.java 2013-04-17 14:53:25.323552005 +0100 +@@ -297,12 +297,12 @@ + * Some machines may also require a barrier instruction to execute + * before this.version. + */ +- private volatile Version<T> version = new Version<>(this); ++ private volatile Version<T> version = new Version<T>(this); + Version<T> version() { return version; } +- void bumpVersion() { version = new Version<>(this); } ++ void bumpVersion() { version = new Version<T>(this); } + static class Version<T> { + private final ClassValue<T> classValue; +- private final Entry<T> promise = new Entry<>(this); ++ private final Entry<T> promise = new Entry<T>(this); + Version(ClassValue<T> classValue) { this.classValue = classValue; } + ClassValue<T> classValue() { return classValue; } + Entry<T> promise() { return promise; } +@@ -351,12 +351,12 @@ + Entry<T> refreshVersion(Version<T> v2) { + assertNotPromise(); + @SuppressWarnings("unchecked") // if !isPromise, type is T +- Entry<T> e2 = new Entry<>(v2, (T) value); ++ Entry<T> e2 = new Entry<T>(v2, (T) value); + clear(); + // value = null -- caller must drop + return e2; + } +- static final Entry<?> DEAD_ENTRY = new Entry<>(null, null); ++ static final Entry<?> DEAD_ENTRY = new Entry<Object>(null, null); + } + + /** Return the backing map associated with this type. */ +@@ -382,7 +382,7 @@ + + static <T> Entry<T> makeEntry(Version<T> explicitVersion, T value) { + // Note that explicitVersion might be different from this.version. +- return new Entry<>(explicitVersion, value); ++ return new Entry<T>(explicitVersion, value); + + // As soon as the Entry is put into the cache, the value will be + // reachable via a data race (as defined by the Java Memory Model). +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java 2013-04-17 14:52:22.398546663 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java 2013-04-17 14:53:25.323552005 +0100 +@@ -789,7 +789,7 @@ + getPlatformManagementInterfaces() + { + Set<Class<? extends PlatformManagedObject>> result = +- new HashSet<>(); ++ new HashSet<Class<? extends PlatformManagedObject>>(); + for (PlatformComponent component: PlatformComponent.values()) { + result.add(component.getMXBeanInterface()); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/management/PlatformComponent.java openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/PlatformComponent.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java 2013-04-17 14:53:25.323552005 +0100 +@@ -287,7 +287,7 @@ + List<T> getGcMXBeanList(Class<T> gcMXBeanIntf) { + List<GarbageCollectorMXBean> list = + ManagementFactoryHelper.getGarbageCollectorMXBeans(); +- List<T> result = new ArrayList<>(list.size()); ++ List<T> result = new ArrayList<T>(list.size()); + for (GarbageCollectorMXBean m : list) { + if (gcMXBeanIntf.isInstance(m)) { + result.add(gcMXBeanIntf.cast(m)); +@@ -342,7 +342,7 @@ + } + + private static Set<String> keyProperties(String... keyNames) { +- Set<String> set = new HashSet<>(); ++ Set<String> set = new HashSet<String>(); + set.add("type"); + for (String s : keyNames) { + set.add(s); +@@ -407,7 +407,7 @@ + List<T> getMXBeans(MBeanServerConnection mbs, Class<T> mxbeanInterface) + throws java.io.IOException + { +- List<T> result = new ArrayList<>(); ++ List<T> result = new ArrayList<T>(); + for (ObjectName on : getObjectNames(mbs)) { + result.add(ManagementFactory. + newPlatformMXBeanProxy(mbs, +@@ -438,7 +438,7 @@ + private static Map<String, PlatformComponent> enumMap; + private static synchronized void ensureInitialized() { + if (enumMap == null) { +- enumMap = new HashMap<>(); ++ enumMap = new HashMap<String,PlatformComponent>(); + for (PlatformComponent pc: PlatformComponent.values()) { + // Use String as the key rather than Class<?> to avoid + // causing unnecessary class loading of management interface +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java openjdk-boot/jdk/src/share/classes/java/lang/Package.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java 2013-04-17 14:52:22.426547111 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java 2013-04-17 14:53:25.323552005 +0100 +@@ -596,13 +596,16 @@ + } + + // The map of loaded system packages +- private static Map<String, Package> pkgs = new HashMap<>(31); ++ private static Map<String, Package> pkgs ++ = new HashMap<String, Package>(31); + + // Maps each directory or zip file name to its corresponding url +- private static Map<String, URL> urls = new HashMap<>(10); ++ private static Map<String, URL> urls ++ = new HashMap<String, URL>(10); + + // Maps each code source url for a jar file to its manifest +- private static Map<String, Manifest> mans = new HashMap<>(10); ++ private static Map<String, Manifest> mans ++ = new HashMap<String, Manifest>(10); + + private static native String getSystemPackage0(String name); + private static native String[] getSystemPackages0(); +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-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java 2013-04-17 14:53:25.323552005 +0100 +@@ -215,7 +215,7 @@ + * @param command a string array containing the program and its arguments + */ + public ProcessBuilder(String... command) { +- this.command = new ArrayList<>(command.length); ++ this.command = new ArrayList<String>(command.length); + for (String arg : command) + this.command.add(arg); + } +@@ -252,7 +252,7 @@ + * @return this process builder + */ + public ProcessBuilder command(String... command) { +- this.command = new ArrayList<>(command.length); ++ this.command = new ArrayList<String>(command.length); + for (String arg : command) + this.command.add(arg); + return this; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java 2013-04-17 14:53:25.323552005 +0100 +@@ -136,7 +136,7 @@ + // which implicitly requires that new java.lang.reflect + // objects be fabricated for each reflective call on Class + // objects.) +- Constructor<T> res = new Constructor<>(clazz, ++ Constructor<T> res = new Constructor<T>(clazz, + parameterTypes, + exceptionTypes, modifiers, slot, + signature, +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java 2013-04-17 14:52:22.402546726 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java 2013-04-17 14:53:25.327552069 +0100 +@@ -238,7 +238,7 @@ + + /** maps a class loader to the proxy class cache for that loader */ + private static Map<ClassLoader, Map<List<String>, Object>> loaderToCache +- = new WeakHashMap<>(); ++ = new WeakHashMap<ClassLoader, Map<List<String>, Object>>(); + + /** marks that a particular proxy class is currently being generated */ + private static Object pendingGenerationMarker = new Object(); +@@ -467,7 +467,7 @@ + String[] interfaceNames = new String[interfaces.length]; + + // for detecting duplicates +- Set<Class<?>> interfaceSet = new HashSet<>(); ++ Set<Class<?>> interfaceSet = new HashSet<Class<?>>(); + + for (int i = 0; i < interfaces.length; i++) { + /* +@@ -524,7 +524,7 @@ + synchronized (loaderToCache) { + cache = loaderToCache.get(loader); + if (cache == null) { +- cache = new HashMap<>(); ++ cache = new HashMap<List<String>, Object>(); + loaderToCache.put(loader, cache); + } + /* +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java 2013-04-17 14:53:25.327552069 +0100 +@@ -84,7 +84,7 @@ + byte[] annotations, + byte[] parameterAnnotations) + { +- return new Constructor<>(declaringClass, ++ return new Constructor<T>(declaringClass, + parameterTypes, + checkedExceptions, + modifiers, +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/StringCoding.java openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/StringCoding.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java 2013-04-17 14:53:25.327552069 +0100 +@@ -53,9 +53,9 @@ + + /** The cached coders for each thread */ + private final static ThreadLocal<SoftReference<StringDecoder>> decoder = +- new ThreadLocal<>(); ++ new ThreadLocal<SoftReference<StringDecoder>>(); + private final static ThreadLocal<SoftReference<StringEncoder>> encoder = +- new ThreadLocal<>(); ++ new ThreadLocal<SoftReference<StringEncoder>>(); + + private static boolean warnUnsupportedCharset = true; + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/String.java openjdk-boot/jdk/src/share/classes/java/lang/String.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/String.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/String.java 2013-04-17 14:53:25.327552069 +0100 +@@ -2282,7 +2282,7 @@ + int off = 0; + int next = 0; + boolean limited = limit > 0; +- ArrayList<String> list = new ArrayList<>(); ++ ArrayList<String> list = new ArrayList<String>(); + while ((next = indexOf(ch, off)) != -1) { + if (!limited || list.size() < limit - 1) { + list.add(substring(off, next)); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Thread.java openjdk-boot/jdk/src/share/classes/java/lang/Thread.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Thread.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java 2013-04-17 14:53:25.327552069 +0100 +@@ -1616,7 +1616,8 @@ + // Get a snapshot of the list of all threads + Thread[] threads = getThreads(); + StackTraceElement[][] traces = dumpThreads(threads); +- Map<Thread, StackTraceElement[]> m = new HashMap<>(threads.length); ++ Map<Thread, StackTraceElement[]> m ++ = new HashMap<Thread, StackTraceElement[]>(threads.length); + for (int i = 0; i < threads.length; i++) { + StackTraceElement[] stackTrace = traces[i]; + if (stackTrace != null) { +@@ -1637,11 +1638,11 @@ + private static class Caches { + /** cache of subclass security audit results */ + static final ConcurrentMap<WeakClassKey,Boolean> subclassAudits = +- new ConcurrentHashMap<>(); ++ new ConcurrentHashMap<WeakClassKey,Boolean>(); + + /** queue for WeakReferences to audited subclasses */ + static final ReferenceQueue<Class<?>> subclassAuditsQueue = +- new ReferenceQueue<>(); ++ new ReferenceQueue<Class<?>>(); + } + + /** +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Throwable.java openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Throwable.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java 2013-04-17 14:53:25.327552069 +0100 +@@ -917,7 +917,7 @@ + // Use the sentinel for a zero-length list + suppressed = SUPPRESSED_SENTINEL; + } else { // Copy Throwables to new list +- suppressed = new ArrayList<>(1); ++ suppressed = new ArrayList<Throwable>(1); + for (Throwable t : suppressedExceptions) { + // Enforce constraints on suppressed exceptions in + // case of corrupt or malicious stream. +@@ -1048,7 +1048,7 @@ + return; + + if (suppressedExceptions == SUPPRESSED_SENTINEL) +- suppressedExceptions = new ArrayList<>(1); ++ suppressedExceptions = new ArrayList<Throwable>(1); + + suppressedExceptions.add(exception); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/net/InetAddress.java openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java +--- openjdk-boot.orig/jdk/src/share/classes/java/net/InetAddress.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java 2013-04-17 14:53:25.331552133 +0100 +@@ -705,7 +705,7 @@ + + static InetAddressImpl impl; + +- private static final HashMap<String, Void> lookupTable = new HashMap<>(); ++ private static final HashMap<String, Void> lookupTable = new HashMap<String, Void>(); + + /** + * Represents a cache entry +@@ -764,7 +764,7 @@ + + // As we iterate in insertion order we can + // terminate when a non-expired entry is found. +- LinkedList<String> expired = new LinkedList<>(); ++ LinkedList<String> expired = new LinkedList<String>(); + long now = System.currentTimeMillis(); + for (String key : cache.keySet()) { + CacheEntry entry = cache.get(key); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/net/URLClassLoader.java openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java +--- openjdk-boot.orig/jdk/src/share/classes/java/net/URLClassLoader.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java 2013-04-17 14:53:25.331552133 +0100 +@@ -205,7 +205,7 @@ + */ + + private WeakHashMap<Closeable,Void> +- closeables = new WeakHashMap<>(); ++ closeables = new WeakHashMap<Closeable, Void>(); + + /** + * Returns an input stream for reading the specified resource. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java +--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java 2013-04-17 14:52:22.426547111 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java 2013-04-17 14:53:51.879976286 +0100 +@@ -1493,7 +1493,7 @@ + return AccessController + .doPrivileged(new PrivilegedAction<List<FileTypeDetector>>() { + @Override public List<FileTypeDetector> run() { +- List<FileTypeDetector> list = new ArrayList<>(); ++ List<FileTypeDetector> list = new ArrayList<FileTypeDetector>(); + ServiceLoader<FileTypeDetector> loader = ServiceLoader + .load(FileTypeDetector.class, ClassLoader.getSystemClassLoader()); + for (FileTypeDetector detector: loader) { +@@ -3014,7 +3014,7 @@ + BufferedReader reader = null; + try { + reader = newBufferedReader(path, cs); +- List<String> result = new ArrayList<>(); ++ List<String> result = new ArrayList<String>(); + for (;;) { + String line = reader.readLine(); + if (line == null) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/AccessControlContext.java openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/AccessControlContext.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java 2013-04-17 14:53:25.331552133 +0100 +@@ -124,7 +124,7 @@ + this.context = null; + } + } else { +- List<ProtectionDomain> v = new ArrayList<>(context.length); ++ List<ProtectionDomain> v = new ArrayList<ProtectionDomain>(context.length); + for (int i =0; i< context.length; i++) { + if ((context[i] != null) && (!v.contains(context[i]))) + v.add(context[i]); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/BasicPermission.java openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/BasicPermission.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java 2013-04-17 14:53:25.335552196 +0100 +@@ -515,7 +515,7 @@ + + // Copy perms into a Hashtable + Hashtable<String, Permission> permissions = +- new Hashtable<>(perms.size()*2); ++ new Hashtable<String, Permission>(perms.size()*2); + + synchronized (this) { + permissions.putAll(perms); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/CodeSource.java openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/CodeSource.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java 2013-04-17 14:53:25.339552262 +0100 +@@ -188,7 +188,7 @@ + } else if (signers != null) { + // Convert the code signers to certs + ArrayList<java.security.cert.Certificate> certChains = +- new ArrayList<>(); ++ new ArrayList<java.security.cert.Certificate>(); + for (int i = 0; i < signers.length; i++) { + certChains.addAll( + signers[i].getSignerCertPath().getCertificates()); +@@ -606,10 +606,10 @@ + + // Iterate through all the certificates + int i = 0; +- List<CodeSigner> signers = new ArrayList<>(); ++ List<CodeSigner> signers = new ArrayList<CodeSigner>(); + while (i < certs.length) { + List<java.security.cert.Certificate> certChain = +- new ArrayList<>(); ++ new ArrayList<java.security.cert.Certificate>(); + certChain.add(certs[i++]); // first cert is an end-entity cert + int j = i; + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Permissions.java openjdk-boot/jdk/src/share/classes/java/security/Permissions.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/Permissions.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java 2013-04-17 14:53:25.339552262 +0100 +@@ -362,7 +362,7 @@ + + // Copy perms into a Hashtable + Hashtable<Class<?>, PermissionCollection> perms = +- new Hashtable<>(permsMap.size()*2); // no sync; estimate ++ new Hashtable<Class<?>, PermissionCollection>(permsMap.size()*2); // no sync; estimate + synchronized (this) { + perms.putAll(permsMap); + } +@@ -567,7 +567,7 @@ + + // Copy perms into a Hashtable + Hashtable<Permission, Permission> perms = +- new Hashtable<>(permsMap.size()*2); ++ new Hashtable<Permission, Permission>(permsMap.size()*2); + synchronized (this) { + perms.putAll(permsMap); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Policy.java openjdk-boot/jdk/src/share/classes/java/security/Policy.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/Policy.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/Policy.java 2013-04-17 14:53:25.339552262 +0100 +@@ -118,7 +118,7 @@ + + // PolicyInfo is stored in an AtomicReference + private static AtomicReference<PolicyInfo> policy = +- new AtomicReference<>(new PolicyInfo(null, false)); ++ new AtomicReference<PolicyInfo>(new PolicyInfo(null, false)); + + private static final Debug debug = Debug.getInstance("policy"); + +@@ -328,7 +328,7 @@ + PermissionCollection policyPerms = null; + synchronized (p) { + if (p.pdMapping == null) { +- p.pdMapping = new WeakHashMap<>(); ++ p.pdMapping = new WeakHashMap<ProtectionDomain.Key, PermissionCollection>(); + } + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/ProtectionDomain.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java 2013-04-17 14:53:25.339552262 +0100 +@@ -368,8 +368,8 @@ + int swag = 32; + int vcap = 8; + Enumeration<Permission> e; +- List<Permission> pdVector = new ArrayList<>(vcap); +- List<Permission> plVector = new ArrayList<>(swag); ++ List<Permission> pdVector = new ArrayList<Permission>(vcap); ++ List<Permission> plVector = new ArrayList<Permission>(swag); + + // + // Build a vector of domain permissions for subsequent merge +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Provider.java openjdk-boot/jdk/src/share/classes/java/security/Provider.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/Provider.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java 2013-04-17 14:53:25.339552262 +0100 +@@ -437,7 +437,7 @@ + + private void readObject(ObjectInputStream in) + throws IOException, ClassNotFoundException { +- Map<Object,Object> copy = new HashMap<>(); ++ Map<Object,Object> copy = new HashMap<Object,Object>(); + for (Map.Entry<Object,Object> entry : super.entrySet()) { + copy.put(entry.getKey(), entry.getValue()); + } +@@ -719,7 +719,7 @@ + } + if (serviceSet == null) { + ensureLegacyParsed(); +- Set<Service> set = new LinkedHashSet<>(); ++ Set<Service> set = new LinkedHashSet<Service>(); + if (serviceMap != null) { + set.addAll(serviceMap.values()); + } +@@ -1395,7 +1395,7 @@ + if (s != null) { + String[] classNames = s.split("\\|"); + List<Class> classList = +- new ArrayList<>(classNames.length); ++ new ArrayList<Class>(classNames.length); + for (String className : classNames) { + Class clazz = getKeyClass(className); + if (clazz != null) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/SecureClassLoader.java openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/SecureClassLoader.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java 2013-04-17 14:53:25.339552262 +0100 +@@ -50,7 +50,7 @@ + // HashMap that maps CodeSource to ProtectionDomain + // @GuardedBy("pdcache") + private final HashMap<CodeSource, ProtectionDomain> pdcache = +- new HashMap<>(11); ++ new HashMap<CodeSource, ProtectionDomain>(11); + + private static final Debug debug = Debug.getInstance("scl"); + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/Security.java openjdk-boot/jdk/src/share/classes/java/security/Security.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/Security.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/Security.java 2013-04-17 14:53:25.339552262 +0100 +@@ -546,7 +546,7 @@ + value = filter.substring(index + 1); + } + +- Hashtable<String, String> hashtableFilter = new Hashtable<>(1); ++ Hashtable<String, String> hashtableFilter = new Hashtable<String, String>(1); + hashtableFilter.put(key, value); + + return (getProviders(hashtableFilter)); +@@ -606,7 +606,7 @@ + // Then only return those providers who satisfy the selection criteria. + Provider[] allProviders = Security.getProviders(); + Set<String> keySet = filter.keySet(); +- LinkedHashSet<Provider> candidates = new LinkedHashSet<>(5); ++ LinkedHashSet<Provider> candidates = new LinkedHashSet<Provider>(5); + + // Returns all installed providers + // if the selection criteria is null. +@@ -660,7 +660,7 @@ + } + + // Map containing cached Spi Class objects of the specified type +- private static final Map<String, Class> spiMap = new ConcurrentHashMap<>(); ++ private static final Map<String, Class> spiMap = new ConcurrentHashMap<String, Class>(); + + /** + * Return the Class object for the given engine type +@@ -884,7 +884,7 @@ + String attrName, + String filterValue, + Provider[] allProviders) { +- LinkedHashSet<Provider> candidates = new LinkedHashSet<>(5); ++ LinkedHashSet<Provider> candidates = new LinkedHashSet<Provider>(5); + for (int i = 0; i < allProviders.length; i++) { + if (isCriterionSatisfied(allProviders[i], serviceName, + algName, +@@ -1081,7 +1081,7 @@ + return Collections.EMPTY_SET; + } + +- HashSet<String> result = new HashSet<>(); ++ HashSet<String> result = new HashSet<String>(); + Provider[] providers = Security.getProviders(); + + for (int i = 0; i < providers.length; i++) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java 2013-04-17 14:53:25.339552262 +0100 +@@ -119,7 +119,7 @@ + + public Enumeration<Permission> elements() { + List<Permission> results = +- new ArrayList<>(); // where results are stored ++ new ArrayList<Permission>(); // where results are stored + + // Get iterator of Map values (which are lists of permissions) + synchronized (this) { +@@ -161,7 +161,7 @@ + + // Copy perms into a Hashtable + Hashtable<String, Vector<UnresolvedPermission>> permissions = +- new Hashtable<>(perms.size()*2); ++ new Hashtable<String, Vector<UnresolvedPermission>>(perms.size()*2); + + // Convert each entry (List) into a Vector + synchronized (this) { +@@ -169,7 +169,7 @@ + for (Map.Entry<String, List<UnresolvedPermission>> e : set) { + // Convert list into Vector + List<UnresolvedPermission> list = e.getValue(); +- Vector<UnresolvedPermission> vec = new Vector<>(list.size()); ++ Vector<UnresolvedPermission> vec = new Vector<UnresolvedPermission>(list.size()); + synchronized (list) { + vec.addAll(list); + } +@@ -206,7 +206,7 @@ + for (Map.Entry<String, Vector<UnresolvedPermission>> e : set) { + // Convert Vector into ArrayList + Vector<UnresolvedPermission> vec = e.getValue(); +- List<UnresolvedPermission> list = new ArrayList<>(vec.size()); ++ List<UnresolvedPermission> list = new ArrayList<UnresolvedPermission>(vec.size()); + list.addAll(vec); + + // Add to Hashtable being serialized +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermission.java openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java +--- openjdk-boot.orig/jdk/src/share/classes/java/security/UnresolvedPermission.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java 2013-04-17 14:53:25.339552262 +0100 +@@ -198,7 +198,7 @@ + if (this.certs == null) { + // extract the signer certs + ArrayList<java.security.cert.Certificate> signerCerts = +- new ArrayList<>(); ++ new ArrayList<java.security.cert.Certificate>(); + i = 0; + while (i < certs.length) { + signerCerts.add(certs[i]); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/AbstractList.java openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/AbstractList.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java 2013-04-17 14:53:25.339552262 +0100 +@@ -482,8 +482,8 @@ + */ + public List<E> subList(int fromIndex, int toIndex) { + return (this instanceof RandomAccess ? +- new RandomAccessSubList<>(this, fromIndex, toIndex) : +- new SubList<>(this, fromIndex, toIndex)); ++ new RandomAccessSubList<E>(this, fromIndex, toIndex) : ++ new SubList<E>(this, fromIndex, toIndex)); + } + + // Comparison and hashing +@@ -747,7 +747,7 @@ + } + + public List<E> subList(int fromIndex, int toIndex) { +- return new SubList<>(this, fromIndex, toIndex); ++ return new SubList<E>(this, fromIndex, toIndex); + } + + private void rangeCheck(int index) { +@@ -776,6 +776,6 @@ + } + + public List<E> subList(int fromIndex, int toIndex) { +- return new RandomAccessSubList<>(this, fromIndex, toIndex); ++ return new RandomAccessSubList<E>(this, fromIndex, toIndex); + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Arrays.java openjdk-boot/jdk/src/share/classes/java/util/Arrays.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/Arrays.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java 2013-04-17 14:53:25.343552325 +0100 +@@ -2825,7 +2825,7 @@ + */ + @SafeVarargs + public static <T> List<T> asList(T... a) { +- return new ArrayList<>(a); ++ return new ArrayList<T>(a); + } + + /** +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Collections.java openjdk-boot/jdk/src/share/classes/java/util/Collections.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/Collections.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java 2013-04-17 14:53:25.343552325 +0100 +@@ -1035,7 +1035,7 @@ + * @return an unmodifiable view of the specified collection. + */ + public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c) { +- return new UnmodifiableCollection<>(c); ++ return new UnmodifiableCollection<T>(c); + } + + /** +@@ -1109,7 +1109,7 @@ + * @return an unmodifiable view of the specified set. + */ + public static <T> Set<T> unmodifiableSet(Set<? extends T> s) { +- return new UnmodifiableSet<>(s); ++ return new UnmodifiableSet<T>(s); + } + + /** +@@ -1141,7 +1141,7 @@ + * @return an unmodifiable view of the specified sorted set. + */ + public static <T> SortedSet<T> unmodifiableSortedSet(SortedSet<T> s) { +- return new UnmodifiableSortedSet<>(s); ++ return new UnmodifiableSortedSet<T>(s); + } + + /** +@@ -1158,13 +1158,13 @@ + public Comparator<? super E> comparator() {return ss.comparator();} + + public SortedSet<E> subSet(E fromElement, E toElement) { +- return new UnmodifiableSortedSet<>(ss.subSet(fromElement,toElement)); ++ return new UnmodifiableSortedSet<E>(ss.subSet(fromElement,toElement)); + } + public SortedSet<E> headSet(E toElement) { +- return new UnmodifiableSortedSet<>(ss.headSet(toElement)); ++ return new UnmodifiableSortedSet<E>(ss.headSet(toElement)); + } + public SortedSet<E> tailSet(E fromElement) { +- return new UnmodifiableSortedSet<>(ss.tailSet(fromElement)); ++ return new UnmodifiableSortedSet<E>(ss.tailSet(fromElement)); + } + + public E first() {return ss.first();} +@@ -1188,8 +1188,8 @@ + */ + public static <T> List<T> unmodifiableList(List<? extends T> list) { + return (list instanceof RandomAccess ? +- new UnmodifiableRandomAccessList<>(list) : +- new UnmodifiableList<>(list)); ++ new UnmodifiableRandomAccessList<T>(list) : ++ new UnmodifiableList<T>(list)); + } + + /** +@@ -1250,7 +1250,7 @@ + } + + public List<E> subList(int fromIndex, int toIndex) { +- return new UnmodifiableList<>(list.subList(fromIndex, toIndex)); ++ return new UnmodifiableList<E>(list.subList(fromIndex, toIndex)); + } + + /** +@@ -1267,7 +1267,7 @@ + */ + private Object readResolve() { + return (list instanceof RandomAccess +- ? new UnmodifiableRandomAccessList<>(list) ++ ? new UnmodifiableRandomAccessList<E>(list) + : this); + } + } +@@ -1283,7 +1283,7 @@ + } + + public List<E> subList(int fromIndex, int toIndex) { +- return new UnmodifiableRandomAccessList<>( ++ return new UnmodifiableRandomAccessList<E>( + list.subList(fromIndex, toIndex)); + } + +@@ -1296,7 +1296,7 @@ + * deserialization. + */ + private Object writeReplace() { +- return new UnmodifiableList<>(list); ++ return new UnmodifiableList<E>(list); + } + } + +@@ -1315,7 +1315,7 @@ + * @return an unmodifiable view of the specified map. + */ + public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K, ? extends V> m) { +- return new UnmodifiableMap<>(m); ++ return new UnmodifiableMap<K,V>(m); + } + + /** +@@ -1363,7 +1363,7 @@ + + public Set<Map.Entry<K,V>> entrySet() { + if (entrySet==null) +- entrySet = new UnmodifiableEntrySet<>(m.entrySet()); ++ entrySet = new UnmodifiableEntrySet<K,V>(m.entrySet()); + return entrySet; + } + +@@ -1400,7 +1400,7 @@ + return i.hasNext(); + } + public Map.Entry<K,V> next() { +- return new UnmodifiableEntry<>(i.next()); ++ return new UnmodifiableEntry<K,V>(i.next()); + } + public void remove() { + throw new UnsupportedOperationException(); +@@ -1411,7 +1411,7 @@ + public Object[] toArray() { + Object[] a = c.toArray(); + for (int i=0; i<a.length; i++) +- a[i] = new UnmodifiableEntry<>((Map.Entry<K,V>)a[i]); ++ a[i] = new UnmodifiableEntry<K,V>((Map.Entry<K,V>)a[i]); + return a; + } + +@@ -1422,7 +1422,7 @@ + Object[] arr = c.toArray(a.length==0 ? a : Arrays.copyOf(a, 0)); + + for (int i=0; i<arr.length; i++) +- arr[i] = new UnmodifiableEntry<>((Map.Entry<K,V>)arr[i]); ++ arr[i] = new UnmodifiableEntry<K,V>((Map.Entry<K,V>)arr[i]); + + if (arr.length > a.length) + return (T[])arr; +@@ -1443,7 +1443,7 @@ + if (!(o instanceof Map.Entry)) + return false; + return c.contains( +- new UnmodifiableEntry<>((Map.Entry<?,?>) o)); ++ new UnmodifiableEntry<Object,Object>((Map.Entry<?,?>) o)); + } + + /** +@@ -1519,7 +1519,7 @@ + * @return an unmodifiable view of the specified sorted map. + */ + public static <K,V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<K, ? extends V> m) { +- return new UnmodifiableSortedMap<>(m); ++ return new UnmodifiableSortedMap<K,V>(m); + } + + /** +@@ -1537,13 +1537,13 @@ + public Comparator<? super K> comparator() {return sm.comparator();} + + public SortedMap<K,V> subMap(K fromKey, K toKey) { +- return new UnmodifiableSortedMap<>(sm.subMap(fromKey, toKey)); ++ return new UnmodifiableSortedMap<K,V>(sm.subMap(fromKey, toKey)); + } + public SortedMap<K,V> headMap(K toKey) { +- return new UnmodifiableSortedMap<>(sm.headMap(toKey)); ++ return new UnmodifiableSortedMap<K,V>(sm.headMap(toKey)); + } + public SortedMap<K,V> tailMap(K fromKey) { +- return new UnmodifiableSortedMap<>(sm.tailMap(fromKey)); ++ return new UnmodifiableSortedMap<K,V>(sm.tailMap(fromKey)); + } + + public K firstKey() {return sm.firstKey();} +@@ -1585,11 +1585,11 @@ + * @return a synchronized view of the specified collection. + */ + public static <T> Collection<T> synchronizedCollection(Collection<T> c) { +- return new SynchronizedCollection<>(c); ++ return new SynchronizedCollection<T>(c); + } + + static <T> Collection<T> synchronizedCollection(Collection<T> c, Object mutex) { +- return new SynchronizedCollection<>(c, mutex); ++ return new SynchronizedCollection<T>(c, mutex); + } + + /** +@@ -1688,11 +1688,11 @@ + * @return a synchronized view of the specified set. + */ + public static <T> Set<T> synchronizedSet(Set<T> s) { +- return new SynchronizedSet<>(s); ++ return new SynchronizedSet<T>(s); + } + + static <T> Set<T> synchronizedSet(Set<T> s, Object mutex) { +- return new SynchronizedSet<>(s, mutex); ++ return new SynchronizedSet<T>(s, mutex); + } + + /** +@@ -1758,7 +1758,7 @@ + * @return a synchronized view of the specified sorted set. + */ + public static <T> SortedSet<T> synchronizedSortedSet(SortedSet<T> s) { +- return new SynchronizedSortedSet<>(s); ++ return new SynchronizedSortedSet<T>(s); + } + + /** +@@ -1787,18 +1787,18 @@ + + public SortedSet<E> subSet(E fromElement, E toElement) { + synchronized (mutex) { +- return new SynchronizedSortedSet<>( ++ return new SynchronizedSortedSet<E>( + ss.subSet(fromElement, toElement), mutex); + } + } + public SortedSet<E> headSet(E toElement) { + synchronized (mutex) { +- return new SynchronizedSortedSet<>(ss.headSet(toElement), mutex); ++ return new SynchronizedSortedSet<E>(ss.headSet(toElement), mutex); + } + } + public SortedSet<E> tailSet(E fromElement) { + synchronized (mutex) { +- return new SynchronizedSortedSet<>(ss.tailSet(fromElement),mutex); ++ return new SynchronizedSortedSet<E>(ss.tailSet(fromElement),mutex); + } + } + +@@ -1837,14 +1837,14 @@ + */ + public static <T> List<T> synchronizedList(List<T> list) { + return (list instanceof RandomAccess ? +- new SynchronizedRandomAccessList<>(list) : +- new SynchronizedList<>(list)); ++ new SynchronizedRandomAccessList<T>(list) : ++ new SynchronizedList<T>(list)); + } + + static <T> List<T> synchronizedList(List<T> list, Object mutex) { + return (list instanceof RandomAccess ? +- new SynchronizedRandomAccessList<>(list, mutex) : +- new SynchronizedList<>(list, mutex)); ++ new SynchronizedRandomAccessList<T>(list, mutex) : ++ new SynchronizedList<T>(list, mutex)); + } + + /** +@@ -1909,7 +1909,7 @@ + + public List<E> subList(int fromIndex, int toIndex) { + synchronized (mutex) { +- return new SynchronizedList<>(list.subList(fromIndex, toIndex), ++ return new SynchronizedList<E>(list.subList(fromIndex, toIndex), + mutex); + } + } +@@ -1928,7 +1928,7 @@ + */ + private Object readResolve() { + return (list instanceof RandomAccess +- ? new SynchronizedRandomAccessList<>(list) ++ ? new SynchronizedRandomAccessList<E>(list) + : this); + } + } +@@ -1950,7 +1950,7 @@ + + public List<E> subList(int fromIndex, int toIndex) { + synchronized (mutex) { +- return new SynchronizedRandomAccessList<>( ++ return new SynchronizedRandomAccessList<E>( + list.subList(fromIndex, toIndex), mutex); + } + } +@@ -1964,7 +1964,7 @@ + * deserialization. + */ + private Object writeReplace() { +- return new SynchronizedList<>(list); ++ return new SynchronizedList<E>(list); + } + } + +@@ -1996,7 +1996,7 @@ + * @return a synchronized view of the specified map. + */ + public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m) { +- return new SynchronizedMap<>(m); ++ return new SynchronizedMap<K,V>(m); + } + + /** +@@ -2057,7 +2057,7 @@ + public Set<K> keySet() { + synchronized (mutex) { + if (keySet==null) +- keySet = new SynchronizedSet<>(m.keySet(), mutex); ++ keySet = new SynchronizedSet<K>(m.keySet(), mutex); + return keySet; + } + } +@@ -2065,7 +2065,7 @@ + public Set<Map.Entry<K,V>> entrySet() { + synchronized (mutex) { + if (entrySet==null) +- entrySet = new SynchronizedSet<>(m.entrySet(), mutex); ++ entrySet = new SynchronizedSet<Map.Entry<K,V>>(m.entrySet(), mutex); + return entrySet; + } + } +@@ -2073,7 +2073,7 @@ + public Collection<V> values() { + synchronized (mutex) { + if (values==null) +- values = new SynchronizedCollection<>(m.values(), mutex); ++ values = new SynchronizedCollection<V>(m.values(), mutex); + return values; + } + } +@@ -2137,7 +2137,7 @@ + * @return a synchronized view of the specified sorted map. + */ + public static <K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> m) { +- return new SynchronizedSortedMap<>(m); ++ return new SynchronizedSortedMap<K,V>(m); + } + + +@@ -2167,18 +2167,18 @@ + + public SortedMap<K,V> subMap(K fromKey, K toKey) { + synchronized (mutex) { +- return new SynchronizedSortedMap<>( ++ return new SynchronizedSortedMap<K,V>( + sm.subMap(fromKey, toKey), mutex); + } + } + public SortedMap<K,V> headMap(K toKey) { + synchronized (mutex) { +- return new SynchronizedSortedMap<>(sm.headMap(toKey), mutex); ++ return new SynchronizedSortedMap<K,V>(sm.headMap(toKey), mutex); + } + } + public SortedMap<K,V> tailMap(K fromKey) { + synchronized (mutex) { +- return new SynchronizedSortedMap<>(sm.tailMap(fromKey),mutex); ++ return new SynchronizedSortedMap<K,V>(sm.tailMap(fromKey),mutex); + } + } + +@@ -2254,7 +2254,7 @@ + */ + public static <E> Collection<E> checkedCollection(Collection<E> c, + Class<E> type) { +- return new CheckedCollection<>(c, type); ++ return new CheckedCollection<E>(c, type); + } + + @SuppressWarnings("unchecked") +@@ -2386,7 +2386,7 @@ + * @since 1.5 + */ + public static <E> Set<E> checkedSet(Set<E> s, Class<E> type) { +- return new CheckedSet<>(s, type); ++ return new CheckedSet<E>(s, type); + } + + /** +@@ -2432,7 +2432,7 @@ + */ + public static <E> SortedSet<E> checkedSortedSet(SortedSet<E> s, + Class<E> type) { +- return new CheckedSortedSet<>(s, type); ++ return new CheckedSortedSet<E>(s, type); + } + + /** +@@ -2492,8 +2492,8 @@ + */ + public static <E> List<E> checkedList(List<E> list, Class<E> type) { + return (list instanceof RandomAccess ? +- new CheckedRandomAccessList<>(list, type) : +- new CheckedList<>(list, type)); ++ new CheckedRandomAccessList<E>(list, type) : ++ new CheckedList<E>(list, type)); + } + + /** +@@ -2558,7 +2558,7 @@ + } + + public List<E> subList(int fromIndex, int toIndex) { +- return new CheckedList<>(list.subList(fromIndex, toIndex), type); ++ return new CheckedList<E>(list.subList(fromIndex, toIndex), type); + } + } + +@@ -2575,7 +2575,7 @@ + } + + public List<E> subList(int fromIndex, int toIndex) { +- return new CheckedRandomAccessList<>( ++ return new CheckedRandomAccessList<E>( + list.subList(fromIndex, toIndex), type); + } + } +@@ -2617,7 +2617,7 @@ + public static <K, V> Map<K, V> checkedMap(Map<K, V> m, + Class<K> keyType, + Class<V> valueType) { +- return new CheckedMap<>(m, keyType, valueType); ++ return new CheckedMap<K,V>(m, keyType, valueType); + } + + +@@ -2685,14 +2685,15 @@ + // - protection from malicious t + // - correct behavior if t is a concurrent map + Object[] entries = t.entrySet().toArray(); +- List<Map.Entry<K,V>> checked = new ArrayList<>(entries.length); ++ List<Map.Entry<K,V>> checked = ++ new ArrayList<Map.Entry<K,V>>(entries.length); + for (Object o : entries) { + Map.Entry<?,?> e = (Map.Entry<?,?>) o; + Object k = e.getKey(); + Object v = e.getValue(); + typeCheck(k, v); + checked.add( +- new AbstractMap.SimpleImmutableEntry<>((K) k, (V) v)); ++ new AbstractMap.SimpleImmutableEntry<K,V>((K) k, (V) v)); + } + for (Map.Entry<K,V> e : checked) + m.put(e.getKey(), e.getValue()); +@@ -2702,7 +2703,7 @@ + + public Set<Map.Entry<K,V>> entrySet() { + if (entrySet==null) +- entrySet = new CheckedEntrySet<>(m.entrySet(), valueType); ++ entrySet = new CheckedEntrySet<K,V>(m.entrySet(), valueType); + return entrySet; + } + +@@ -2817,7 +2818,7 @@ + if (!(o instanceof Map.Entry)) + return false; + return s.remove(new AbstractMap.SimpleImmutableEntry +- <>((Map.Entry<?,?>)o)); ++ <Object, Object>((Map.Entry<?,?>)o)); + } + + public boolean removeAll(Collection<?> c) { +@@ -2850,7 +2851,7 @@ + + static <K,V,T> CheckedEntry<K,V,T> checkedEntry(Map.Entry<K,V> e, + Class<T> valueType) { +- return new CheckedEntry<>(e, valueType); ++ return new CheckedEntry<K,V,T>(e, valueType); + } + + /** +@@ -2891,7 +2892,7 @@ + if (!(o instanceof Map.Entry)) + return false; + return e.equals(new AbstractMap.SimpleImmutableEntry +- <>((Map.Entry<?,?>)o)); ++ <Object, Object>((Map.Entry<?,?>)o)); + } + } + } +@@ -2934,7 +2935,7 @@ + public static <K,V> SortedMap<K,V> checkedSortedMap(SortedMap<K, V> m, + Class<K> keyType, + Class<V> valueType) { +- return new CheckedSortedMap<>(m, keyType, valueType); ++ return new CheckedSortedMap<K,V>(m, keyType, valueType); + } + + /** +@@ -3000,7 +3001,7 @@ + + private static class EmptyIterator<E> implements Iterator<E> { + static final EmptyIterator<Object> EMPTY_ITERATOR +- = new EmptyIterator<>(); ++ = new EmptyIterator<Object>(); + + public boolean hasNext() { return false; } + public E next() { throw new NoSuchElementException(); } +@@ -3049,7 +3050,7 @@ + implements ListIterator<E> + { + static final EmptyListIterator<Object> EMPTY_ITERATOR +- = new EmptyListIterator<>(); ++ = new EmptyListIterator<Object>(); + + public boolean hasPrevious() { return false; } + public E previous() { throw new NoSuchElementException(); } +@@ -3085,7 +3086,7 @@ + + private static class EmptyEnumeration<E> implements Enumeration<E> { + static final EmptyEnumeration<Object> EMPTY_ENUMERATION +- = new EmptyEnumeration<>(); ++ = new EmptyEnumeration<Object>(); + + public boolean hasMoreElements() { return false; } + public E nextElement() { throw new NoSuchElementException(); } +@@ -3097,7 +3098,7 @@ + * @see #emptySet() + */ + @SuppressWarnings("unchecked") +- public static final Set EMPTY_SET = new EmptySet<>(); ++ public static final Set EMPTY_SET = new EmptySet<Object>(); + + /** + * Returns the empty set (immutable). This set is serializable. +@@ -3157,7 +3158,7 @@ + * @see #emptyList() + */ + @SuppressWarnings("unchecked") +- public static final List EMPTY_LIST = new EmptyList<>(); ++ public static final List EMPTY_LIST = new EmptyList<Object>(); + + /** + * Returns the empty list (immutable). This list is serializable. +@@ -3231,7 +3232,7 @@ + * @since 1.3 + */ + @SuppressWarnings("unchecked") +- public static final Map EMPTY_MAP = new EmptyMap<>(); ++ public static final Map EMPTY_MAP = new EmptyMap<Object,Object>(); + + /** + * Returns the empty map (immutable). This map is serializable. +@@ -3293,7 +3294,7 @@ + * @return an immutable set containing only the specified object. + */ + public static <T> Set<T> singleton(T o) { +- return new SingletonSet<>(o); ++ return new SingletonSet<T>(o); + } + + static <E> Iterator<E> singletonIterator(final E e) { +@@ -3346,7 +3347,7 @@ + * @since 1.3 + */ + public static <T> List<T> singletonList(T o) { +- return new SingletonList<>(o); ++ return new SingletonList<T>(o); + } + + /** +@@ -3388,7 +3389,7 @@ + * @since 1.3 + */ + public static <K,V> Map<K,V> singletonMap(K key, V value) { +- return new SingletonMap<>(key, value); ++ return new SingletonMap<K,V>(key, value); + } + + /** +@@ -3430,7 +3431,7 @@ + public Set<Map.Entry<K,V>> entrySet() { + if (entrySet==null) + entrySet = Collections.<Map.Entry<K,V>>singleton( +- new SimpleImmutableEntry<>(k, v)); ++ new SimpleImmutableEntry<K,V>(k, v)); + return entrySet; + } + +@@ -3462,7 +3463,7 @@ + public static <T> List<T> nCopies(int n, T o) { + if (n < 0) + throw new IllegalArgumentException("List length = " + n); +- return new CopiesList<>(n, o); ++ return new CopiesList<T>(n, o); + } + + /** +@@ -3536,7 +3537,7 @@ + if (fromIndex > toIndex) + throw new IllegalArgumentException("fromIndex(" + fromIndex + + ") > toIndex(" + toIndex + ")"); +- return new CopiesList<>(toIndex - fromIndex, element); ++ return new CopiesList<E>(toIndex - fromIndex, element); + } + } + +@@ -3604,7 +3605,7 @@ + if (cmp instanceof ReverseComparator2) + return ((ReverseComparator2<T>)cmp).cmp; + +- return new ReverseComparator2<>(cmp); ++ return new ReverseComparator2<T>(cmp); + } + + /** +@@ -3683,7 +3684,7 @@ + * @see ArrayList + */ + public static <T> ArrayList<T> list(Enumeration<T> e) { +- ArrayList<T> l = new ArrayList<>(); ++ ArrayList<T> l = new ArrayList<T>(); + while (e.hasMoreElements()) + l.add(e.nextElement()); + return l; +@@ -3876,7 +3877,7 @@ + * @since 1.6 + */ + public static <E> Set<E> newSetFromMap(Map<E, Boolean> map) { +- return new SetFromMap<>(map); ++ return new SetFromMap<E>(map); + } + + /** +@@ -3940,7 +3941,7 @@ + * @since 1.6 + */ + public static <T> Queue<T> asLifoQueue(Deque<T> deque) { +- return new AsLIFOQueue<>(deque); ++ return new AsLIFOQueue<T>(deque); + } + + /** +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/EnumMap.java openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumMap.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java 2013-04-17 14:53:25.343552325 +0100 +@@ -508,7 +508,7 @@ + int j = 0; + for (int i = 0; i < vals.length; i++) + if (vals[i] != null) +- a[j++] = new AbstractMap.SimpleEntry<>( ++ a[j++] = new AbstractMap.SimpleEntry<K,V>( + keyUniverse[i], unmaskNull(vals[i])); + return a; + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/EnumSet.java openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/EnumSet.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java 2013-04-17 14:53:25.343552325 +0100 +@@ -110,9 +110,9 @@ + throw new ClassCastException(elementType + " not an enum"); + + if (universe.length <= 64) +- return new RegularEnumSet<>(elementType, universe); ++ return new RegularEnumSet<E>(elementType, universe); + else +- return new JumboEnumSet<>(elementType, universe); ++ return new JumboEnumSet<E>(elementType, universe); + } + + /** +@@ -431,7 +431,7 @@ + } + + Object writeReplace() { +- return new SerializationProxy<>(this); ++ return new SerializationProxy<E>(this); + } + + // readObject method for the serialization proxy pattern +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java openjdk-boot/jdk/src/share/classes/java/util/Formatter.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java 2013-04-17 14:52:22.398546663 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java 2013-04-17 14:53:25.343552325 +0100 +@@ -2514,7 +2514,7 @@ + * Finds format specifiers in the format string. + */ + private FormatString[] parse(String s) { +- ArrayList<FormatString> al = new ArrayList<>(); ++ ArrayList<FormatString> al = new ArrayList<FormatString>(); + Matcher m = fsPattern.matcher(s); + for (int i = 0, len = s.length(); i < len; ) { + if (m.find(i)) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java openjdk-boot/jdk/src/share/classes/java/util/HashMap.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java 2013-04-17 14:52:22.402546726 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java 2013-04-17 14:53:25.347552389 +0100 +@@ -868,7 +868,7 @@ + */ + void createEntry(int hash, K key, V value, int bucketIndex) { + Entry<K,V> e = table[bucketIndex]; +- table[bucketIndex] = new Entry<>(hash, key, value, e); ++ table[bucketIndex] = new Entry<K,V>(hash, key, value, e); + size++; + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashSet.java openjdk-boot/jdk/src/share/classes/java/util/HashSet.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashSet.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java 2013-04-17 14:53:25.347552389 +0100 +@@ -100,7 +100,7 @@ + * default initial capacity (16) and load factor (0.75). + */ + public HashSet() { +- map = new HashMap<>(); ++ map = new HashMap<E,Object>(); + } + + /** +@@ -113,7 +113,7 @@ + * @throws NullPointerException if the specified collection is null + */ + public HashSet(Collection<? extends E> c) { +- map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16)); ++ map = new HashMap<E,Object>(Math.max((int) (c.size()/.75f) + 1, 16)); + addAll(c); + } + +@@ -127,7 +127,7 @@ + * than zero, or if the load factor is nonpositive + */ + public HashSet(int initialCapacity, float loadFactor) { +- map = new HashMap<>(initialCapacity, loadFactor); ++ map = new HashMap<E,Object>(initialCapacity, loadFactor); + } + + /** +@@ -139,7 +139,7 @@ + * than zero + */ + public HashSet(int initialCapacity) { +- map = new HashMap<>(initialCapacity); ++ map = new HashMap<E,Object>(initialCapacity); + } + + /** +@@ -156,7 +156,7 @@ + * than zero, or if the load factor is nonpositive + */ + HashSet(int initialCapacity, float loadFactor, boolean dummy) { +- map = new LinkedHashMap<>(initialCapacity, loadFactor); ++ map = new LinkedHashMap<E,Object>(initialCapacity, loadFactor); + } + + /** +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java 2013-04-17 14:52:22.402546726 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java 2013-04-17 14:53:25.347552389 +0100 +@@ -568,7 +568,7 @@ + + // Creates the new entry. + Entry<K,V> e = tab[index]; +- tab[index] = new Entry<>(hash, key, value, e); ++ tab[index] = new Entry<K,V>(hash, key, value, e); + count++; + return null; + } +@@ -692,7 +692,7 @@ + if (count == 0) { + return Collections.emptyEnumeration(); + } else { +- return new Enumerator<>(type, false); ++ return new Enumerator<T>(type, false); + } + } + +@@ -700,7 +700,7 @@ + if (count == 0) { + return Collections.emptyIterator(); + } else { +- return new Enumerator<>(type, true); ++ return new Enumerator<T>(type, true); + } + } + +@@ -978,7 +978,7 @@ + + while (entry != null) { + entryStack = +- new Entry<>(0, entry.key, entry.value, entryStack); ++ new Entry<K,V>(0, entry.key, entry.value, entryStack); + entry = entry.next; + } + } +@@ -1063,7 +1063,7 @@ + } + // Creates the new entry. + Entry<K,V> e = tab[index]; +- tab[index] = new Entry<>(hash, key, value, e); ++ tab[index] = new Entry<K,V>(hash, key, value, e); + count++; + } + +@@ -1084,7 +1084,7 @@ + } + + protected Object clone() { +- return new Entry<>(hash, key, value, ++ return new Entry<K,V>(hash, key, value, + (next==null ? null : (Entry<K,V>) next.clone())); + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/IdentityHashMap.java openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/IdentityHashMap.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java 2013-04-17 14:53:25.351552453 +0100 +@@ -1145,7 +1145,7 @@ + Object[] result = new Object[size]; + Iterator<Map.Entry<K,V>> it = iterator(); + for (int i = 0; i < size; i++) +- result[i] = new AbstractMap.SimpleEntry<>(it.next()); ++ result[i] = new AbstractMap.SimpleEntry<K,V>(it.next()); + return result; + } + +@@ -1157,7 +1157,7 @@ + .newInstance(a.getClass().getComponentType(), size); + Iterator<Map.Entry<K,V>> it = iterator(); + for (int i = 0; i < size; i++) +- a[i] = (T) new AbstractMap.SimpleEntry<>(it.next()); ++ a[i] = (T) new AbstractMap.SimpleEntry<K,V>(it.next()); + if (a.length > size) + a[size] = null; + return a; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/JumboEnumSet.java openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/JumboEnumSet.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java 2013-04-17 14:53:25.351552453 +0100 +@@ -91,7 +91,7 @@ + * @return an iterator over the elements contained in this set + */ + public Iterator<E> iterator() { +- return new EnumSetIterator<>(); ++ return new EnumSetIterator<E>(); + } + + private class EnumSetIterator<E extends Enum<E>> implements Iterator<E> { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedHashMap.java openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedHashMap.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java 2013-04-17 14:53:25.351552453 +0100 +@@ -238,7 +238,7 @@ + */ + @Override + void init() { +- header = new Entry<>(-1, null, null, null); ++ header = new Entry<K,V>(-1, null, null, null); + header.before = header.after = header; + } + +@@ -439,7 +439,7 @@ + */ + void createEntry(int hash, K key, V value, int bucketIndex) { + HashMap.Entry<K,V> old = table[bucketIndex]; +- Entry<K,V> e = new Entry<>(hash, key, value, old); ++ Entry<K,V> e = new Entry<K,V>(hash, key, value, old); + table[bucketIndex] = e; + e.addBefore(header); + size++; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedList.java openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/LinkedList.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java 2013-04-17 14:53:25.351552453 +0100 +@@ -122,7 +122,7 @@ + */ + private void linkFirst(E e) { + final Node<E> f = first; +- final Node<E> newNode = new Node<>(null, e, f); ++ final Node<E> newNode = new Node<E>(null, e, f); + first = newNode; + if (f == null) + last = newNode; +@@ -137,7 +137,7 @@ + */ + void linkLast(E e) { + final Node<E> l = last; +- final Node<E> newNode = new Node<>(l, e, null); ++ final Node<E> newNode = new Node<E>(l, e, null); + last = newNode; + if (l == null) + first = newNode; +@@ -153,7 +153,7 @@ + void linkBefore(E e, Node<E> succ) { + // assert succ != null; + final Node<E> pred = succ.prev; +- final Node<E> newNode = new Node<>(pred, e, succ); ++ final Node<E> newNode = new Node<E>(pred, e, succ); + succ.prev = newNode; + if (pred == null) + first = newNode; +@@ -419,7 +419,7 @@ + + for (Object o : a) { + @SuppressWarnings("unchecked") E e = (E) o; +- Node<E> newNode = new Node<>(pred, e, null); ++ Node<E> newNode = new Node<E>(pred, e, null); + if (pred == null) + first = newNode; + else +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/ListResourceBundle.java openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/ListResourceBundle.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java 2013-04-17 14:53:25.351552453 +0100 +@@ -187,7 +187,7 @@ + return; + + Object[][] contents = getContents(); +- HashMap<String,Object> temp = new HashMap<>(contents.length); ++ HashMap<String,Object> temp = new HashMap<String,Object>(contents.length); + for (int i = 0; i < contents.length; ++i) { + // key must be non-null String, value must be non-null + String key = (String) contents[i][0]; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Locale.java openjdk-boot/jdk/src/share/classes/java/util/Locale.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/Locale.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java 2013-04-17 14:53:25.351552453 +0100 +@@ -1793,7 +1793,7 @@ + return formatList(variantNames, listPattern, listCompositionPattern); + } + } +- ArrayList<String> names = new ArrayList<>(4); ++ ArrayList<String> names = new ArrayList<String>(4); + if (languageName.length() != 0) { + names.add(languageName); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/FileHandler.java openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/FileHandler.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java 2013-04-17 14:53:25.351552453 +0100 +@@ -127,7 +127,7 @@ + private FileOutputStream lockStream; + private File files[]; + private static final int MAX_LOCKS = 100; +- private static java.util.HashMap<String, String> locks = new java.util.HashMap<>(); ++ private static java.util.HashMap<String, String> locks = new java.util.HashMap<String, String>(); + + // A metered stream is a subclass of OutputStream that + // (a) forwards all its output to a target stream +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Level.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java 2013-04-17 14:53:25.355552517 +0100 +@@ -458,8 +458,8 @@ + // were final, the following KnownLevel implementation can be removed. + // Future API change should take this into consideration. + static final class KnownLevel { +- private static Map<String, List<KnownLevel>> nameToLevels = new HashMap<>(); +- private static Map<Integer, List<KnownLevel>> intToLevels = new HashMap<>(); ++ private static Map<String, List<KnownLevel>> nameToLevels = new HashMap<String, List<KnownLevel>>(); ++ private static Map<Integer, List<KnownLevel>> intToLevels = new HashMap<Integer, List<KnownLevel>>(); + final Level levelObject; // instance of Level class or Level subclass + final Level mirroredLevel; // instance of Level class + KnownLevel(Level l) { +@@ -477,14 +477,14 @@ + KnownLevel o = new KnownLevel(l); + List<KnownLevel> list = nameToLevels.get(l.name); + if (list == null) { +- list = new ArrayList<>(); ++ list = new ArrayList<KnownLevel>(); + nameToLevels.put(l.name, list); + } + list.add(o); + + list = intToLevels.get(l.value); + if (list == null) { +- list = new ArrayList<>(); ++ list = new ArrayList<KnownLevel>(); + intToLevels.put(l.value, list); + } + list.add(o); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logger.java openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logger.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java 2013-04-17 14:53:25.355552517 +0100 +@@ -170,7 +170,7 @@ + private LogManager manager; + private String name; + private final CopyOnWriteArrayList<Handler> handlers = +- new CopyOnWriteArrayList<>(); ++ new CopyOnWriteArrayList<Handler>(); + private String resourceBundleName; + private volatile boolean useParentHandlers = true; + private volatile Filter filter; +@@ -1505,7 +1505,7 @@ + // Set our new parent. + parent = newParent; + if (parent.kids == null) { +- parent.kids = new ArrayList<>(2); ++ parent.kids = new ArrayList<LogManager.LoggerWeakRef>(2); + } + if (ref == null) { + // we didn't have a previous parent +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logging.java openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/Logging.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java 2013-04-17 14:53:25.355552517 +0100 +@@ -56,7 +56,7 @@ + + public List<String> getLoggerNames() { + Enumeration loggers = logManager.getLoggerNames(); +- ArrayList<String> array = new ArrayList<>(); ++ ArrayList<String> array = new ArrayList<String>(); + + for (; loggers.hasMoreElements();) { + array.add((String) loggers.nextElement()); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogManager.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java 2013-04-17 14:53:25.355552517 +0100 +@@ -378,7 +378,7 @@ + } + + private List<LoggerContext> contexts() { +- List<LoggerContext> cxs = new ArrayList<>(); ++ List<LoggerContext> cxs = new ArrayList<LoggerContext>(); + cxs.add(systemContext); + cxs.add(getUserContext()); + return cxs; +@@ -471,7 +471,7 @@ + // added in the user context. + static class LoggerContext { + // Table of named Loggers that maps names to Loggers. +- private final Hashtable<String,LoggerWeakRef> namedLoggers = new Hashtable<>(); ++ private final Hashtable<String,LoggerWeakRef> namedLoggers = new Hashtable<String,LoggerWeakRef>(); + // Tree of named Loggers + private final LogNode root; + +@@ -620,7 +620,7 @@ + name = ""; + } + if (node.children == null) { +- node.children = new HashMap<>(); ++ node.children = new HashMap<String,LogNode>(); + } + LogNode child = node.children.get(head); + if (child == null) { +@@ -711,7 +711,7 @@ + // loggerRefQueue holds LoggerWeakRef objects for Logger objects + // that have been GC'ed. + private final ReferenceQueue<Logger> loggerRefQueue +- = new ReferenceQueue<>(); ++ = new ReferenceQueue<Logger>(); + + // Package-level inner class. + // Helper class for managing WeakReferences to Logger objects. +@@ -1053,7 +1053,7 @@ + } + hands = hands.trim(); + int ix = 0; +- Vector<String> result = new Vector<>(); ++ Vector<String> result = new Vector<String>(); + while (ix < hands.length()) { + int end = ix; + while (end < hands.length()) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogRecord.java openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/logging/LogRecord.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java 2013-04-17 14:53:25.355552517 +0100 +@@ -85,7 +85,8 @@ + private static final AtomicInteger nextThreadId + = new AtomicInteger(MIN_SEQUENTIAL_THREAD_ID); + +- private static final ThreadLocal<Integer> threadIds = new ThreadLocal<>(); ++ private static final ThreadLocal<Integer> threadIds ++ = new ThreadLocal<Integer>(); + + /** + * @serial Logging message level +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java 2013-04-17 14:53:25.355552517 +0100 +@@ -155,7 +155,8 @@ + * All known unremoved children of this node. (This "cache" is consulted + * prior to calling childSpi() or getChild(). + */ +- private Map<String, AbstractPreferences> kidCache = new HashMap<>(); ++ private Map<String, AbstractPreferences> kidCache ++ = new HashMap<String, AbstractPreferences>(); + + /** + * This field is used to keep track of whether or not this node has +@@ -712,7 +713,7 @@ + if (removed) + throw new IllegalStateException("Node has been removed."); + +- Set<String> s = new TreeSet<>(kidCache.keySet()); ++ Set<String> s = new TreeSet<String>(kidCache.keySet()); + for (String kid : childrenNamesSpi()) + s.add(kid); + return s.toArray(EMPTY_STRING_ARRAY); +@@ -1441,7 +1442,8 @@ + * event delivery from preference activity, greatly simplifying + * locking and reducing opportunity for deadlock. + */ +- private static final List<EventObject> eventQueue = new LinkedList<>(); ++ private static final List<EventObject> eventQueue ++ = new LinkedList<EventObject>(); + + /** + * These two classes are used to distinguish NodeChangeEvents on +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/PriorityQueue.java openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/PriorityQueue.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java 2013-04-17 14:53:25.355552517 +0100 +@@ -538,7 +538,7 @@ + cursor--; + else { + if (forgetMeNot == null) +- forgetMeNot = new ArrayDeque<>(); ++ forgetMeNot = new ArrayDeque<E>(); + forgetMeNot.add(moved); + } + } else if (lastRetElt != null) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Properties.java openjdk-boot/jdk/src/share/classes/java/util/Properties.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/Properties.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java 2013-04-17 14:53:25.355552517 +0100 +@@ -1010,7 +1010,7 @@ + * @since 1.6 + */ + public Set<String> stringPropertyNames() { +- Hashtable<String, String> h = new Hashtable<>(); ++ Hashtable<String, String> h = new Hashtable<String, String>(); + enumerateStringProperties(h); + return h.keySet(); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/regex/Pattern.java openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/Pattern.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java 2013-04-17 14:53:25.359552581 +0100 +@@ -321,7 +321,7 @@ + * <td headers="matches">Nothing, but quotes all characters until <tt>\E</tt></td></tr> + * <tr><td valign="top" headers="construct quot"><tt>\E</tt></td> + * <td headers="matches">Nothing, but ends quoting started by <tt>\Q</tt></td></tr> +- * <!-- Metachars: !$()*+.<>?[\]^{|} --> ++ * <!-- Metachars: !$()*+.?[\]^{|} --> + * + * <tr><th> </th></tr> + * <tr align="left"><th colspan="2" id="special">Special constructs (named-capturing and non-capturing)</th></tr> +@@ -1193,7 +1193,7 @@ + public String[] split(CharSequence input, int limit) { + int index = 0; + boolean matchLimited = limit > 0; +- ArrayList<String> matchList = new ArrayList<>(); ++ ArrayList<String> matchList = new ArrayList<String>(); + Matcher m = matcher(input); + + // Add segments before each match found +@@ -1695,7 +1695,7 @@ + + Map<String, Integer> namedGroups() { + if (namedGroups == null) +- namedGroups = new HashMap<>(2); ++ namedGroups = new HashMap<String, Integer>(2); + return namedGroups; + } + +@@ -5495,7 +5495,7 @@ + } + + private static final HashMap<String, CharPropertyFactory> map +- = new HashMap<>(); ++ = new HashMap<String, CharPropertyFactory>(); + + static { + // Unicode character property aliases, defined in +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/regex/UnicodeProp.java openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/regex/UnicodeProp.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java 2013-04-17 14:53:25.359552581 +0100 +@@ -193,8 +193,8 @@ + } + }; + +- private final static HashMap<String, String> posix = new HashMap<>(); +- private final static HashMap<String, String> aliases = new HashMap<>(); ++ private final static HashMap<String, String> posix = new HashMap<String,String>(); ++ private final static HashMap<String, String> aliases = new HashMap<String,String>(); + static { + posix.put("ALPHA", "ALPHABETIC"); + posix.put("LOWER", "LOWERCASE"); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/RegularEnumSet.java openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/RegularEnumSet.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java 2013-04-17 14:53:25.359552581 +0100 +@@ -72,7 +72,7 @@ + * @return an iterator over the elements contained in this set + */ + public Iterator<E> iterator() { +- return new EnumSetIterator<>(); ++ return new EnumSetIterator<E>(); + } + + private class EnumSetIterator<E extends Enum<E>> implements Iterator<E> { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/ResourceBundle.java openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/ResourceBundle.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java 2013-04-17 14:53:25.359552581 +0100 +@@ -289,7 +289,7 @@ + * name for compatibility with some workarounds for bug 4212439. + */ + private static final ConcurrentMap<CacheKey, BundleReference> cacheList +- = new ConcurrentHashMap<>(INITIAL_CACHE_SIZE); ++ = new ConcurrentHashMap<CacheKey,BundleReference>(INITIAL_CACHE_SIZE); + + /** + * Queue for reference objects referring to class loaders or bundles. +@@ -1754,7 +1754,7 @@ + * @since 1.6 + */ + public Set<String> keySet() { +- Set<String> keys = new HashSet<>(); ++ Set<String> keys = new HashSet<String>(); + for (ResourceBundle rb = this; rb != null; rb = rb.parent) { + keys.addAll(rb.handleKeySet()); + } +@@ -1782,7 +1782,7 @@ + if (keySet == null) { + synchronized (this) { + if (keySet == null) { +- Set<String> keys = new HashSet<>(); ++ Set<String> keys = new HashSet<String>(); + Enumeration<String> enumKeys = getKeys(); + while (enumKeys.hasMoreElements()) { + String key = enumKeys.nextElement(); +@@ -2300,7 +2300,7 @@ + if (baseName == null) { + throw new NullPointerException(); + } +- return new ArrayList<>(CANDIDATES_CACHE.get(locale.getBaseLocale())); ++ return new ArrayList<Locale>(CANDIDATES_CACHE.get(locale.getBaseLocale())); + } + + private static final CandidateListCache CANDIDATES_CACHE = new CandidateListCache(); +@@ -2326,7 +2326,7 @@ + if (language.equals("nb") || isNorwegianBokmal) { + List<Locale> tmpList = getDefaultList("nb", script, region, variant); + // Insert a locale replacing "nb" with "no" for every list entry +- List<Locale> bokmalList = new LinkedList<>(); ++ List<Locale> bokmalList = new LinkedList<Locale>(); + for (Locale l : tmpList) { + bokmalList.add(l); + if (l.getLanguage().length() == 0) { +@@ -2373,7 +2373,7 @@ + List<String> variants = null; + + if (variant.length() > 0) { +- variants = new LinkedList<>(); ++ variants = new LinkedList<String>(); + int idx = variant.length(); + while (idx != -1) { + variants.add(variant.substring(0, idx)); +@@ -2381,7 +2381,7 @@ + } + } + +- List<Locale> list = new LinkedList<>(); ++ List<Locale> list = new LinkedList<Locale>(); + + if (variants != null) { + for (String v : variants) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/ServiceLoader.java openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/ServiceLoader.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java 2013-04-17 14:53:25.363552645 +0100 +@@ -191,7 +191,7 @@ + private ClassLoader loader; + + // Cached providers, in instantiation order +- private LinkedHashMap<String,S> providers = new LinkedHashMap<>(); ++ private LinkedHashMap<String,S> providers = new LinkedHashMap<String,S>(); + + // The current lazy-lookup iterator + private LazyIterator lookupIterator; +@@ -291,7 +291,7 @@ + { + InputStream in = null; + BufferedReader r = null; +- ArrayList<String> names = new ArrayList<>(); ++ ArrayList<String> names = new ArrayList<String>(); + try { + in = u.openStream(); + r = new BufferedReader(new InputStreamReader(in, "utf-8")); +@@ -470,7 +470,7 @@ + public static <S> ServiceLoader<S> load(Class<S> service, + ClassLoader loader) + { +- return new ServiceLoader<>(service, loader); ++ return new ServiceLoader<S>(service, loader); + } + + /** +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/TimSort.java openjdk-boot/jdk/src/share/classes/java/util/TimSort.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/TimSort.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java 2013-04-17 14:53:25.363552645 +0100 +@@ -196,7 +196,7 @@ + * extending short natural runs to minRun elements, and merging runs + * to maintain stack invariant. + */ +- TimSort<T> ts = new TimSort<>(a, c); ++ TimSort<T> ts = new TimSort<T>(a, c); + int minRun = minRunLength(nRemaining); + do { + // Identify next run +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/TreeMap.java openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeMap.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java 2013-04-17 14:53:25.363552645 +0100 +@@ -530,7 +530,7 @@ + if (t == null) { + compare(key, key); // type (and possibly null) check + +- root = new Entry<>(key, value, null); ++ root = new Entry<K,V>(key, value, null); + size = 1; + modCount++; + return null; +@@ -566,7 +566,7 @@ + return t.setValue(value); + } while (t != null); + } +- Entry<K,V> e = new Entry<>(key, value, parent); ++ Entry<K,V> e = new Entry<K,V>(key, value, parent); + if (cmp < 0) + parent.left = e; + else +@@ -1066,14 +1066,14 @@ + } + public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, + E toElement, boolean toInclusive) { +- return new KeySet<>(m.subMap(fromElement, fromInclusive, ++ return new KeySet<E>(m.subMap(fromElement, fromInclusive, + toElement, toInclusive)); + } + public NavigableSet<E> headSet(E toElement, boolean inclusive) { +- return new KeySet<>(m.headMap(toElement, inclusive)); ++ return new KeySet<E>(m.headMap(toElement, inclusive)); + } + public NavigableSet<E> tailSet(E fromElement, boolean inclusive) { +- return new KeySet<>(m.tailMap(fromElement, inclusive)); ++ return new KeySet<E>(m.tailMap(fromElement, inclusive)); + } + public SortedSet<E> subSet(E fromElement, E toElement) { + return subSet(fromElement, true, toElement, false); +@@ -1202,7 +1202,7 @@ + */ + static <K,V> Map.Entry<K,V> exportEntry(TreeMap.Entry<K,V> e) { + return (e == null) ? null : +- new AbstractMap.SimpleImmutableEntry<>(e); ++ new AbstractMap.SimpleImmutableEntry<K,V>(e); + } + + /** +@@ -2403,7 +2403,7 @@ + value = (defaultVal != null ? defaultVal : (V) str.readObject()); + } + +- Entry<K,V> middle = new Entry<>(key, value, null); ++ Entry<K,V> middle = new Entry<K,V>(key, value, null); + + // color nodes in non-full bottommost level red + if (level == redLevel) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/TreeSet.java openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/TreeSet.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java 2013-04-17 14:53:25.363552645 +0100 +@@ -138,7 +138,7 @@ + * ordering} of the elements will be used. + */ + public TreeSet(Comparator<? super E> comparator) { +- this(new TreeMap<>(comparator)); ++ this(new TreeMap<E,Object>(comparator)); + } + + /** +@@ -195,7 +195,7 @@ + * @since 1.6 + */ + public NavigableSet<E> descendingSet() { +- return new TreeSet<>(m.descendingMap()); ++ return new TreeSet<E>(m.descendingMap()); + } + + /** +@@ -322,7 +322,7 @@ + */ + public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, + E toElement, boolean toInclusive) { +- return new TreeSet<>(m.subMap(fromElement, fromInclusive, ++ return new TreeSet<E>(m.subMap(fromElement, fromInclusive, + toElement, toInclusive)); + } + +@@ -335,7 +335,7 @@ + * @since 1.6 + */ + public NavigableSet<E> headSet(E toElement, boolean inclusive) { +- return new TreeSet<>(m.headMap(toElement, inclusive)); ++ return new TreeSet<E>(m.headMap(toElement, inclusive)); + } + + /** +@@ -347,7 +347,7 @@ + * @since 1.6 + */ + public NavigableSet<E> tailSet(E fromElement, boolean inclusive) { +- return new TreeSet<>(m.tailMap(fromElement, inclusive)); ++ return new TreeSet<E>(m.tailMap(fromElement, inclusive)); + } + + /** +@@ -477,7 +477,7 @@ + throw new InternalError(); + } + +- clone.m = new TreeMap<>(m); ++ clone.m = new TreeMap<E,Object>(m); + return clone; + } + +@@ -524,9 +524,9 @@ + // Create backing TreeMap + TreeMap<E,Object> tm; + if (c==null) +- tm = new TreeMap<>(); ++ tm = new TreeMap<E,Object>(); + else +- tm = new TreeMap<>(c); ++ tm = new TreeMap<E,Object>(c); + m = tm; + + // Read in size +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/WeakHashMap.java openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/WeakHashMap.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java 2013-04-17 14:53:25.363552645 +0100 +@@ -171,7 +171,7 @@ + /** + * Reference queue for cleared WeakEntries + */ +- private final ReferenceQueue<Object> queue = new ReferenceQueue<>(); ++ private final ReferenceQueue<Object> queue = new ReferenceQueue<Object>(); + + /** + * The number of times this WeakHashMap has been structurally modified. +@@ -528,7 +528,7 @@ + + modCount++; + Entry<K,V> e = tab[i]; +- tab[i] = new Entry<>(k, value, queue, h, e); ++ tab[i] = new Entry<K,V>(k, value, queue, h, e); + if (++size >= threshold) + resize(tab.length * 2); + return null; +@@ -1051,9 +1051,10 @@ + } + + private List<Map.Entry<K,V>> deepCopy() { +- List<Map.Entry<K,V>> list = new ArrayList<>(size()); ++ List<Map.Entry<K,V>> list = ++ new ArrayList<Map.Entry<K,V>>(size()); + for (Map.Entry<K,V> e : this) +- list.add(new AbstractMap.SimpleEntry<>(e)); ++ list.add(new AbstractMap.SimpleEntry<K,V>(e)); + return list; + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipFile.java openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipFile.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java 2013-04-17 14:53:25.363552645 +0100 +@@ -319,7 +319,7 @@ + + // the outstanding inputstreams that need to be closed, + // mapped to the inflater objects they use. +- private final Map<InputStream, Inflater> streams = new WeakHashMap<>(); ++ private final Map<InputStream, Inflater> streams = new WeakHashMap<InputStream,Inflater>(); + + /** + * Returns an input stream for reading the contents of the specified +@@ -461,7 +461,7 @@ + } + + // List of available Inflater objects for decompression +- private Deque<Inflater> inflaterCache = new ArrayDeque<>(); ++ private Deque<Inflater> inflaterCache = new ArrayDeque<Inflater>(); + + /** + * Returns the path name of the ZIP file. +@@ -577,7 +577,7 @@ + // Close streams, release their inflaters + synchronized (streams) { + if (false == streams.isEmpty()) { +- Map<InputStream, Inflater> copy = new HashMap<>(streams); ++ Map<InputStream, Inflater> copy = new HashMap<InputStream,Inflater>(streams); + streams.clear(); + for (Map.Entry<InputStream, Inflater> e : copy.entrySet()) { + e.getKey().close(); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipOutputStream.java openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/zip/ZipOutputStream.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java 2013-04-17 14:53:25.363552645 +0100 +@@ -53,8 +53,8 @@ + } + + private XEntry current; +- private Vector<XEntry> xentries = new Vector<>(); +- private HashSet<String> names = new HashSet<>(); ++ private Vector<XEntry> xentries = new Vector<XEntry>(); ++ private HashSet<String> names = new HashSet<String>(); + private CRC32 crc = new CRC32(); + private long written = 0; + private long locoff = 0; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPermissions.java openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java +--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CryptoPermissions.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CryptoPermissions.java 2013-04-17 14:53:25.367552708 +0100 +@@ -84,7 +84,7 @@ + * no CryptoPermissionCollections. + */ + CryptoPermissions() { +- perms = new ConcurrentHashMap<>(7); ++ perms = new ConcurrentHashMap<String,PermissionCollection>(7); + } + + /** +@@ -440,15 +440,15 @@ + (Hashtable<String,PermissionCollection>) + (fields.get("perms", null)); + if (permTable != null) { +- perms = new ConcurrentHashMap<>(permTable); ++ perms = new ConcurrentHashMap<String,PermissionCollection>(permTable); + } else { +- perms = new ConcurrentHashMap<>(); ++ perms = new ConcurrentHashMap<String,PermissionCollection>(); + } + } + + private void writeObject(ObjectOutputStream s) throws IOException { + Hashtable<String,PermissionCollection> permTable = +- new Hashtable<>(perms); ++ new Hashtable<String,PermissionCollection>(perms); + ObjectOutputStream.PutField fields = s.putFields(); + fields.put("perms", permTable); + s.writeFields(); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java +--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java 2013-04-17 14:53:25.367552708 +0100 +@@ -361,7 +361,7 @@ + // Don't call out.defaultWriteObject() + + // Write out Vector +- Vector<Permission> permissions = new Vector<>(perms.size()); ++ Vector<Permission> permissions = new Vector<Permission>(perms.size()); + + synchronized (this) { + permissions.addAll(perms); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java +--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java 2013-04-17 14:53:25.367552708 +0100 +@@ -569,7 +569,7 @@ + // Don't call out.defaultWriteObject() + + // Write out Vector +- Vector<Permission> permissions = new Vector<>(perms.size()); ++ Vector<Permission> permissions = new Vector<Permission>(perms.size()); + + synchronized (this) { + permissions.addAll(perms); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java +--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java 2013-04-17 14:53:25.367552708 +0100 +@@ -329,7 +329,7 @@ + throw new IllegalArgumentException("invalid empty name"); + } + +- ArrayList<CredOwner> pList = new ArrayList<>(); ++ ArrayList<CredOwner> pList = new ArrayList<CredOwner>(); + StringTokenizer tokenizer = new StringTokenizer(name, " ", true); + String principalClass = null; + String principalName = null; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java +--- openjdk-boot.orig/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java 2013-04-17 14:53:25.367552708 +0100 +@@ -48,7 +48,7 @@ + + private Subject subject; + private WeakKeyValueMap<ProtectionDomain, ProtectionDomain> cachedPDs = +- new WeakKeyValueMap<>(); ++ new WeakKeyValueMap<ProtectionDomain, ProtectionDomain>(); + private Set<Principal> principalSet; + private Principal[] principals; + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2013-04-17 14:52:22.442547366 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2013-04-17 14:53:25.367552708 +0100 +@@ -59,7 +59,7 @@ + EnumMap<Wrapper, MethodHandle>[] caches + = (EnumMap<Wrapper, MethodHandle>[]) new EnumMap[n]; // unchecked warning expected here + for (int i = 0; i < n; i++) +- caches[i] = new EnumMap<>(Wrapper.class); ++ caches[i] = new EnumMap<Wrapper, MethodHandle>(Wrapper.class); + return caches; + } + +@@ -1013,7 +1013,7 @@ + Object a8, Object a9) + { return makeArray(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } + private static MethodHandle[] makeArrays() { +- ArrayList<MethodHandle> mhs = new ArrayList<>(); ++ ArrayList<MethodHandle> mhs = new ArrayList<MethodHandle>(); + for (;;) { + MethodHandle mh = findCollector("array", mhs.size(), Object[].class); + if (mh == null) break; +@@ -1059,7 +1059,7 @@ + Object a8, Object a9) + { fillWithArguments(a, pos, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); return a; } + private static MethodHandle[] makeFillArrays() { +- ArrayList<MethodHandle> mhs = new ArrayList<>(); ++ ArrayList<MethodHandle> mhs = new ArrayList<MethodHandle>(); + mhs.add(null); // there is no empty fill; at least a0 is required + for (;;) { + MethodHandle mh = findCollector("fillArray", mhs.size(), Object[].class, Object[].class, Integer.class); +@@ -1214,7 +1214,7 @@ + Object a8, Object a9) + { return makeList(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } + private static MethodHandle[] makeLists() { +- ArrayList<MethodHandle> mhs = new ArrayList<>(); ++ ArrayList<MethodHandle> mhs = new ArrayList<MethodHandle>(); + for (;;) { + MethodHandle mh = findCollector("list", mhs.size(), List.class); + if (mh == null) break; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/io/CharacterEncoding.java openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/io/CharacterEncoding.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java 2013-04-17 14:53:25.367552708 +0100 +@@ -54,7 +54,7 @@ + private static volatile boolean installedAll; + + static { +- aliasTable = new HashMap<>(460, 1.0f); /* MDA */ ++ aliasTable = new HashMap<String,String>(460, 1.0f); /* MDA */ + + aliasTable.put("us-ascii", "ASCII"); + aliasTable.put("ascii", "ASCII"); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/io/Converters.java openjdk-boot/jdk/src/share/classes/sun/io/Converters.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/io/Converters.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java 2013-04-17 14:53:25.367552708 +0100 +@@ -120,7 +120,7 @@ + + private static Class<?> cache(int type, Object encoding, Class<?> c) { + SoftReference<Object[]>[] srs = classCache[type]; +- srs[CACHE_SIZE - 1] = new SoftReference<>(new Object[] { c, encoding }); ++ srs[CACHE_SIZE - 1] = new SoftReference<Object[]>(new Object[] { c, encoding }); + moveToFront(srs, CACHE_SIZE - 1); + return c; + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2013-04-17 14:52:22.434547238 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2013-04-17 14:53:25.367552708 +0100 +@@ -171,7 +171,7 @@ + private static void printProperties(PrintStream ostream) { + Properties p = System.getProperties(); + ostream.println(PROP_SETTINGS); +- List<String> sortedPropertyKeys = new ArrayList<>(); ++ List<String> sortedPropertyKeys = new ArrayList<String>(); + sortedPropertyKeys.addAll(p.stringPropertyNames()); + Collections.sort(sortedPropertyKeys); + for (String x : sortedPropertyKeys) { +@@ -246,7 +246,7 @@ + } + // Locale does not implement Comparable so we convert it to String + // and sort it for pretty printing. +- Set<String> sortedSet = new TreeSet<>(); ++ Set<String> sortedSet = new TreeSet<String>(); + for (Locale l : tlocales) { + sortedSet.add(l.toString()); + } +@@ -532,7 +532,7 @@ + } + + static String[] expandArgs(String[] argArray) { +- List<StdArg> aList = new ArrayList<>(); ++ List<StdArg> aList = new ArrayList<StdArg>(); + for (String x : argArray) { + aList.add(new StdArg(x)); + } +@@ -540,7 +540,7 @@ + } + + static String[] expandArgs(List<StdArg> argList) { +- ArrayList<String> out = new ArrayList<>(); ++ ArrayList<String> out = new ArrayList<String>(); + if (trace) { + System.err.println("Incoming arguments:"); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java 2013-04-17 14:53:25.367552708 +0100 +@@ -205,7 +205,7 @@ + private static List<BufferPoolMXBean> bufferPools = null; + public static synchronized List<BufferPoolMXBean> getBufferPoolMXBeans() { + if (bufferPools == null) { +- bufferPools = new ArrayList<>(2); ++ bufferPools = new ArrayList<BufferPoolMXBean>(2); + bufferPools.add(createBufferPoolMXBean(sun.misc.SharedSecrets.getJavaNioAccess() + .getDirectBufferPool())); + bufferPools.add(createBufferPoolMXBean(sun.nio.ch.FileChannelImpl +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java 2013-04-17 14:53:25.367552708 +0100 +@@ -52,7 +52,7 @@ + + // Per-thread soft cache of the last temporary context + private static ThreadLocal<SoftReference<ThreadContext>> contextRef = +- new ThreadLocal<>(); ++ new ThreadLocal<SoftReference<ThreadContext>>(); + + // Simple class to encapsulate the temporary context + private static class ThreadContext { +@@ -99,7 +99,7 @@ + + // new thread context needs to be created + if (thrCtxt == null) { +- final Hashtable<String,Object> env = new Hashtable<>(); ++ final Hashtable<String,Object> env = new Hashtable<String,Object>(); + env.put("java.naming.factory.initial", + "com.sun.jndi.dns.DnsContextFactory"); + +@@ -165,7 +165,7 @@ + final String[] ids, int depth) + throws UnknownHostException + { +- ArrayList<String> results = new ArrayList<>(); ++ ArrayList<String> results = new ArrayList<String>(); + Attributes attrs; + + // do the query +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java 2013-04-17 14:53:25.367552708 +0100 +@@ -111,7 +111,7 @@ + * at the same time, then all but the first will block until + * the first completes its authentication. + */ +- static private HashMap<String,Thread> requests = new HashMap<>(); ++ static private HashMap<String,Thread> requests = new HashMap<String,Thread>(); + + /* check if a request for this destination is in progress + * return false immediately if not. Otherwise block until +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java 2013-04-17 14:53:25.367552708 +0100 +@@ -2645,7 +2645,7 @@ + if (filteredHeaders != null) + return filteredHeaders; + +- Map<String, List<String>> headers, tmpMap = new HashMap<>(); ++ Map<String, List<String>> headers, tmpMap = new HashMap<String, List<String>>(); + + if (cachedHeaders != null) + headers = cachedHeaders.getHeaders(); +@@ -2654,7 +2654,7 @@ + + for (Map.Entry<String, List<String>> e: headers.entrySet()) { + String key = e.getKey(); +- List<String> values = e.getValue(), filteredVals = new ArrayList<>(); ++ List<String> values = e.getValue(), filteredVals = new ArrayList<String>(); + for (String value : values) { + String fVal = filterHeaderField(key, value); + if (fVal != null) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/URLConnection.java openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/URLConnection.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java 2013-04-17 14:53:25.367552708 +0100 +@@ -239,7 +239,7 @@ + url = null; + } + +- private static HashMap<String,Void> proxiedHosts = new HashMap<>(); ++ private static HashMap<String,Void> proxiedHosts = new HashMap<String,Void>(); + + public synchronized static void setProxiedHost(String host) { + proxiedHosts.put(host.toLowerCase(), null); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java 2013-04-17 14:53:25.367552708 +0100 +@@ -49,22 +49,22 @@ + /* Maps canonical names to class names + */ + private Map<String,String> classMap +- = new TreeMap<>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); ++ = new TreeMap<String,String>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); + + /* Maps alias names to canonical names + */ + private Map<String,String> aliasMap +- = new TreeMap<>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); ++ = new TreeMap<String,String>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); + + /* Maps canonical names to alias-name arrays + */ + private Map<String,String[]> aliasNameMap +- = new TreeMap<>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); ++ = new TreeMap<String,String[]>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); + + /* Maps canonical names to soft references that hold cached instances + */ + private Map<String,SoftReference<Charset>> cache +- = new TreeMap<>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); ++ = new TreeMap<String,SoftReference<Charset>>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); + + private String packagePrefix; + +@@ -167,7 +167,7 @@ + final ArrayList<String> ks; + synchronized (this) { + init(); +- ks = new ArrayList<>(classMap.keySet()); ++ ks = new ArrayList<String>(classMap.keySet()); + } + + return new Iterator<Charset>() { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java 2013-04-17 14:53:25.371552772 +0100 +@@ -84,7 +84,7 @@ + throw new IllegalArgumentException("'" + name() + ":" + + attribute + "' not recognized"); + } +- Map<String,Object> result = new HashMap<>(2); ++ Map<String,Object> result = new HashMap<String,Object>(2); + if (acl) + result.put(ACL_NAME, getAcl()); + if (owner) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java 2013-04-17 14:53:25.371552772 +0100 +@@ -89,8 +89,8 @@ + * Used to build a map of attribute name/values. + */ + static class AttributesBuilder { +- private Set<String> names = new HashSet<>(); +- private Map<String,Object> map = new HashMap<>(); ++ private Set<String> names = new HashSet<String>(); ++ private Map<String,Object> map = new HashMap<String,Object>(); + private boolean copyAll; + + private AttributesBuilder(Set<String> allowed, String[] requested) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java 2013-04-17 14:53:25.371552772 +0100 +@@ -102,7 +102,7 @@ + throw new NullPointerException(); + if (events.length == 0) + throw new IllegalArgumentException("No events to register"); +- Set<WatchEvent.Kind<?>> eventSet = new HashSet<>(events.length); ++ Set<WatchEvent.Kind<?>> eventSet = new HashSet<WatchEvent.Kind<?>>(events.length); + for (WatchEvent.Kind<?> event: events) { + // standard events + if (event == StandardWatchEventKinds.ENTRY_CREATE || +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java 2013-04-17 14:53:25.371552772 +0100 +@@ -77,7 +77,7 @@ + throws IOException + { + // names of attributes to return +- List<String> names = new ArrayList<>(); ++ List<String> names = new ArrayList<String>(); + for (String name: attributes) { + if (name.equals("*")) { + names = list(); +@@ -90,7 +90,7 @@ + } + + // read each value and return in map +- Map<String,Object> result = new HashMap<>(); ++ Map<String,Object> result = new HashMap<String,Object>(); + for (String name: names) { + int size = size(name); + byte[] buf = new byte[size]; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java 2013-04-17 14:53:25.371552772 +0100 +@@ -71,7 +71,7 @@ + + @Override + public Map<String,Object> readAttributes(String[] attributes) throws IOException { +- Map<String,Object> result = new HashMap<>(); ++ Map<String,Object> result = new HashMap<String,Object>(); + for (String attribute: attributes) { + if (attribute.equals("*") || attribute.equals(OWNER_NAME)) { + result.put(OWNER_NAME, getOwner()); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/Util.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/Util.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java 2013-04-17 14:53:25.371552772 +0100 +@@ -63,7 +63,7 @@ + * Returns a Set containing the given elements. + */ + static <E> Set<E> newSet(E... elements) { +- HashSet<E> set = new HashSet<>(); ++ HashSet<E> set = new HashSet<E>(); + for (E e: elements) { + set.add(e); + } +@@ -75,7 +75,7 @@ + * the given elements. + */ + static <E> Set<E> newSet(Set<E> other, E... elements) { +- HashSet<E> set = new HashSet<>(other); ++ HashSet<E> set = new HashSet<E>(other); + for (E e: elements) { + set.add(e); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java 2013-04-17 14:53:25.371552772 +0100 +@@ -229,7 +229,7 @@ + * "<" FormalTypeParameter+ ">" + */ + private FormalTypeParameter[] parseFormalTypeParameters(){ +- List<FormalTypeParameter> ftps = new ArrayList<>(3); ++ List<FormalTypeParameter> ftps = new ArrayList(3); + assert(current() == '<'); // should not have been called at all + if (current() != '<') { throw error("expected '<'");} + advance(); +@@ -308,7 +308,7 @@ + assert(current() == 'L'); + if (current() != 'L') { throw error("expected a class type");} + advance(); +- List<SimpleClassTypeSignature> scts = new ArrayList<>(5); ++ List<SimpleClassTypeSignature> scts = new ArrayList(5); + scts.add(parsePackageNameAndSimpleClassTypeSignature()); + + parseClassTypeSignatureSuffix(scts); +@@ -391,7 +391,7 @@ + * "<" TypeArgument+ ">" + */ + private TypeArgument[] parseTypeArguments() { +- List<TypeArgument> tas = new ArrayList<>(3); ++ List<TypeArgument> tas = new ArrayList(3); + assert(current() == '<'); + if (current() != '<') { throw error("expected '<'");} + advance(); +@@ -529,7 +529,7 @@ + * ":" FieldTypeSignature + */ + private FieldTypeSignature[] parseBounds() { +- List<FieldTypeSignature> fts = new ArrayList<>(3); ++ List<FieldTypeSignature> fts = new ArrayList(3); + + if (current() == ':') { + advance(); +@@ -557,7 +557,7 @@ + * ClassTypeSignature + */ + private ClassTypeSignature[] parseSuperInterfaces() { +- List<ClassTypeSignature> cts = new ArrayList<>(5); ++ List<ClassTypeSignature> cts = new ArrayList(5); + while(current() == 'L') { + cts.add(parseClassTypeSignature()); + } +@@ -592,7 +592,7 @@ + + // TypeSignature* + private TypeSignature[] parseZeroOrMoreTypeSignatures() { +- List<TypeSignature> ts = new ArrayList<>(); ++ List<TypeSignature> ts = new ArrayList(); + boolean stop = false; + while (!stop) { + switch(current()) { +@@ -631,7 +631,7 @@ + + // ThrowSignature* + private FieldTypeSignature[] parseZeroOrMoreThrowsSignatures(){ +- List<FieldTypeSignature> ets = new ArrayList<>(3); ++ List<FieldTypeSignature> ets = new ArrayList(3); + while( current() == '^') { + ets.add(parseThrowsSignature()); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Activation.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java 2013-04-17 14:53:25.371552772 +0100 +@@ -150,10 +150,10 @@ + + /** maps activation id to its respective group id */ + private Map<ActivationID,ActivationGroupID> idTable = +- new ConcurrentHashMap<>(); ++ new ConcurrentHashMap<ActivationID,ActivationGroupID>(); + /** maps group id to its GroupEntry groups */ + private Map<ActivationGroupID,GroupEntry> groupTable = +- new ConcurrentHashMap<>(); ++ new ConcurrentHashMap<ActivationGroupID,GroupEntry>(); + + private byte majorVersion = MAJOR_VERSION; + private byte minorVersion = MINOR_VERSION; +@@ -289,10 +289,10 @@ + { + ois.defaultReadObject(); + if (! (groupTable instanceof ConcurrentHashMap)) { +- groupTable = new ConcurrentHashMap<>(groupTable); ++ groupTable = new ConcurrentHashMap<ActivationGroupID,GroupEntry>(groupTable); + } + if (! (idTable instanceof ConcurrentHashMap)) { +- idTable = new ConcurrentHashMap<>(idTable); ++ idTable = new ConcurrentHashMap<ActivationID,ActivationGroupID>(idTable); + } + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java 2013-04-17 14:53:25.371552772 +0100 +@@ -37,7 +37,7 @@ + */ + public class AclEntryImpl implements AclEntry { + private Principal user = null; +- private Vector<Permission> permissionSet = new Vector<>(10, 10); ++ private Vector<Permission> permissionSet = new Vector<Permission>(10, 10); + private boolean negative = false; + + /** +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclImpl.java openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/AclImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java 2013-04-17 14:53:25.371552772 +0100 +@@ -41,15 +41,15 @@ + // or principal. + // + private Hashtable<Principal, AclEntry> allowedUsersTable = +- new Hashtable<>(23); ++ new Hashtable<Principal,AclEntry>(23); + private Hashtable<Principal, AclEntry> allowedGroupsTable = +- new Hashtable<>(23); ++ new Hashtable<Principal, AclEntry>(23); + private Hashtable<Principal, AclEntry> deniedUsersTable = +- new Hashtable<>(23); ++ new Hashtable<Principal, AclEntry>(23); + private Hashtable<Principal, AclEntry> deniedGroupsTable = +- new Hashtable<>(23); ++ new Hashtable<Principal, AclEntry>(23); + private String aclName = null; +- private Vector<Permission> zeroSet = new Vector<>(1,1); ++ private Vector<Permission> zeroSet = new Vector<Permission>(1,1); + + + /** +@@ -294,7 +294,7 @@ + // + private static Enumeration<Permission> union(Enumeration<Permission> e1, + Enumeration<Permission> e2) { +- Vector<Permission> v = new Vector<>(20, 20); ++ Vector<Permission> v = new Vector<Permission>(20, 20); + + while (e1.hasMoreElements()) + v.addElement(e1.nextElement()); +@@ -313,7 +313,7 @@ + // + private Enumeration<Permission> subtract(Enumeration<Permission> e1, + Enumeration<Permission> e2) { +- Vector<Permission> v = new Vector<>(20, 20); ++ Vector<Permission> v = new Vector<Permission>(20, 20); + + while (e1.hasMoreElements()) + v.addElement(e1.nextElement()); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/GroupImpl.java openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/acl/GroupImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java 2013-04-17 14:53:25.371552772 +0100 +@@ -34,7 +34,7 @@ + * @author Satish Dharmaraj + */ + public class GroupImpl implements Group { +- private Vector<Principal> groupMembers = new Vector<>(50, 100); ++ private Vector<Principal> groupMembers = new Vector<Principal>(50, 100); + private String group; + + /** +@@ -131,7 +131,7 @@ + if (groupMembers.contains(member)) { + return true; + } else { +- Vector<Group> alreadySeen = new Vector<>(10); ++ Vector<Group> alreadySeen = new Vector<Group>(10); + return isMemberRecurse(member, alreadySeen); + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/ProviderList.java openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/ProviderList.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java 2013-04-17 14:53:25.371552772 +0100 +@@ -96,7 +96,7 @@ + if (providerList.getProvider(p.getName()) != null) { + return providerList; + } +- List<ProviderConfig> list = new ArrayList<> ++ List<ProviderConfig> list = new ArrayList<ProviderConfig> + (Arrays.asList(providerList.configs)); + int n = list.size(); + if ((position < 0) || (position > n)) { +@@ -160,7 +160,7 @@ + * Return a new ProviderList parsed from the java.security Properties. + */ + private ProviderList() { +- List<ProviderConfig> configList = new ArrayList<>(); ++ List<ProviderConfig> configList = new ArrayList<ProviderConfig>(); + for (int i = 1; true; i++) { + String entry = Security.getProperty("security.provider." + i); + if (entry == null) { +@@ -200,7 +200,7 @@ + * possible recursion and deadlock during verification. + */ + ProviderList getJarList(String[] jarClassNames) { +- List<ProviderConfig> newConfigs = new ArrayList<>(); ++ List<ProviderConfig> newConfigs = new ArrayList<ProviderConfig>(); + for (String className : jarClassNames) { + ProviderConfig newConfig = new ProviderConfig(className); + for (ProviderConfig config : configs) { +@@ -356,7 +356,7 @@ + */ + @Deprecated + public List<Service> getServices(String type, List<String> algorithms) { +- List<ServiceId> ids = new ArrayList<>(); ++ List<ServiceId> ids = new ArrayList<ServiceId>(); + for (String alg : algorithms) { + ids.add(new ServiceId(type, alg)); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/Providers.java openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jca/Providers.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java 2013-04-17 14:53:25.371552772 +0100 +@@ -40,7 +40,7 @@ + public class Providers { + + private static final ThreadLocal<ProviderList> threadLists = +- new InheritableThreadLocal<>(); ++ new InheritableThreadLocal<ProviderList>(); + + // number of threads currently using thread-local provider lists + // tracked to allow an optimization if == 0 +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java 2013-04-17 14:53:25.371552772 +0100 +@@ -267,7 +267,7 @@ + if (ktabs.isEmpty()) { + return kk.toArray(new KerberosKey[kk.size()]); + } else { +- List<KerberosKey> keys = new ArrayList<>(); ++ List<KerberosKey> keys = new ArrayList<KerberosKey>(); + for (KeyTab ktab: ktabs) { + for (KerberosKey k: ktab.getKeys(kp)) { + keys.add(k); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Config.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java 2013-04-17 14:53:25.371552772 +0100 +@@ -551,7 +551,7 @@ + } + }))); + String Line; +- Vector<String> v = new Vector<>(); ++ Vector<String> v = new Vector<String>(); + String previous = null; + while ((Line = br.readLine()) != null) { + // ignore comments and blank line in the configuration file. +@@ -612,7 +612,7 @@ + throw new KrbException("I/O error while reading" + + " configuration file."); + } +- Hashtable<String,Object> table = new Hashtable<>(); ++ Hashtable<String,Object> table = new Hashtable<String,Object>(); + for (int i = 0; i < v.size(); i++) { + String line = v.elementAt(i).trim(); + if (line.equalsIgnoreCase("[realms]")) { +@@ -621,7 +621,7 @@ + if ((count == v.size()) || + (v.elementAt(count).startsWith("["))) { + Hashtable<String,Hashtable<String,Vector<String>>> temp = +- new Hashtable<>(); ++ new Hashtable<String,Hashtable<String,Vector<String>>>(); + temp = parseRealmField(v, i + 1, count); + table.put("realms", temp); + i = count - 1; +@@ -634,7 +634,7 @@ + if ((count == v.size()) || + (v.elementAt(count).startsWith("["))) { + Hashtable<String,Hashtable<String,Vector<String>>> temp = +- new Hashtable<>(); ++ new Hashtable<String,Hashtable<String,Vector<String>>>(); + temp = parseRealmField(v, i + 1, count); + table.put("capaths", temp); + i = count - 1; +@@ -779,7 +779,7 @@ + * Parses key-value pairs under a stanza name. + */ + private Hashtable<String,String> parseField(Vector<String> v, int start, int end) { +- Hashtable<String,String> table = new Hashtable<>(); ++ Hashtable<String,String> table = new Hashtable<String,String>(); + String line; + for (int i = start; i < end; i++) { + line = v.elementAt(i); +@@ -801,7 +801,7 @@ + * information for the realm given within a pair of braces. + */ + private Hashtable<String,Hashtable<String,Vector<String>>> parseRealmField(Vector<String> v, int start, int end) { +- Hashtable<String,Hashtable<String,Vector<String>>> table = new Hashtable<>(); ++ Hashtable<String,Hashtable<String,Vector<String>>> table = new Hashtable<String,Hashtable<String,Vector<String>>>(); + String line; + for (int i = start; i < end; i++) { + line = v.elementAt(i).trim(); +@@ -841,9 +841,9 @@ + * Parses key-value pairs within each braces under [realms]. + */ + private Hashtable<String,Vector<String>> parseRealmFieldEx(Vector<String> v, int start, int end) { +- Hashtable<String,Vector<String>> table = new Hashtable<>(); +- Vector<String> keyVector = new Vector<>(); +- Vector<String> nameVector = new Vector<>(); ++ Hashtable<String,Vector<String>> table = new Hashtable<String,Vector<String>>(); ++ Vector<String> keyVector = new Vector<String>(); ++ Vector<String> nameVector = new Vector<String>(); + String line = ""; + String key; + for (int i = start; i < end; i++) { +@@ -948,7 +948,7 @@ + } + st = new StringTokenizer(default_enctypes, delim); + int len = st.countTokens(); +- ArrayList<Integer> ls = new ArrayList<>(len); ++ ArrayList<Integer> ls = new ArrayList<Integer>(len); + int type; + for (int i = 0; i < len; i++) { + type = getType(st.nextToken()); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java 2013-04-17 14:53:25.371552772 +0100 +@@ -176,7 +176,7 @@ + * @exception IOException if an I/O error occurs while reading encoded data. + */ + public byte[] asn1Encode() throws Asn1Exception, IOException { +- Vector<DerValue> v = new Vector<>(); ++ Vector<DerValue> v = new Vector<DerValue>(); + DerOutputStream temp = new DerOutputStream(); + temp.putInteger(BigInteger.valueOf(authenticator_vno)); + v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte) 0x00), temp.toByteArray())); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java 2013-04-17 14:53:25.371552772 +0100 +@@ -99,7 +99,7 @@ + * @exception IOException if an I/O error occurs while reading encoded data. + */ + public AuthorizationData(DerValue der) throws Asn1Exception, IOException { +- Vector<AuthorizationDataEntry> v = new Vector<>(); ++ Vector<AuthorizationDataEntry> v = new Vector<AuthorizationDataEntry>(); + if (der.getTag() != DerValue.tag_Sequence) { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java 2013-04-17 14:53:25.375552836 +0100 +@@ -490,7 +490,7 @@ + + private static String exec(String c) { + StringTokenizer st = new StringTokenizer(c); +- Vector<String> v = new Vector<>(); ++ Vector<String> v = new Vector<String>(); + while (st.hasMoreTokens()) { + v.addElement(st.nextToken()); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java 2013-04-17 14:53:25.375552836 +0100 +@@ -257,7 +257,7 @@ + + configName); + } + +- List<Integer> list = new ArrayList<>(answer.length); ++ List<Integer> list = new ArrayList<Integer>(answer.length); + for (int i = 0; i < answer.length; i++) { + if (EncryptionKey.findKey(answer[i], keys) != null) { + list.add(answer[i]); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java 2013-04-17 14:53:25.375552836 +0100 +@@ -133,7 +133,7 @@ + * @exception IOException if an I/O error occurs while reading encoded data. + */ + public byte[] asn1Encode() throws Asn1Exception, IOException { +- Vector<DerValue> v = new Vector<>(); ++ Vector<DerValue> v = new Vector<DerValue>(); + DerOutputStream temp = new DerOutputStream(); + v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, + true, (byte) 0x00), ctime.asn1Encode())); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java 2013-04-17 14:53:25.375552836 +0100 +@@ -179,7 +179,7 @@ + */ + public HostAddresses(DerValue encoding) + throws Asn1Exception, IOException { +- Vector<HostAddress> tempAddresses = new Vector<>(); ++ Vector<HostAddress> tempAddresses = new Vector<HostAddress>(); + DerValue der = null; + while (encoding.getData().available() > 0) { + der = encoding.getData().getDerValue(); +@@ -265,7 +265,7 @@ + if (addresses == null || addresses.length == 0) + return null; + +- ArrayList<InetAddress> ipAddrs = new ArrayList<>(addresses.length); ++ ArrayList<InetAddress> ipAddrs = new ArrayList<InetAddress>(addresses.length); + + for (int i = 0; i < addresses.length; i++) { + try { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java 2013-04-17 14:53:25.375552836 +0100 +@@ -158,7 +158,7 @@ + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } + der = encoding.getData().getDerValue(); +- Vector<Integer> v = new Vector<>(); ++ Vector<Integer> v = new Vector<Integer>(); + if ((der.getTag() & (byte)0x1F) == (byte)0x08) { + subDer = der.getData().getDerValue(); + +@@ -183,7 +183,7 @@ + encAuthorizationData = EncryptedData.parse(encoding.getData(), (byte)0x0A, true); + } + if (encoding.getData().available() > 0) { +- Vector<Ticket> tempTickets = new Vector<>(); ++ Vector<Ticket> tempTickets = new Vector<Ticket>(); + der = encoding.getData().getDerValue(); + if ((der.getTag() & (byte)0x1F) == (byte)0x0B) { + subDer = der.getData().getDerValue(); +@@ -216,7 +216,7 @@ + * + */ + public byte[] asn1Encode(int msgType) throws Asn1Exception, IOException { +- Vector<DerValue> v = new Vector<>(); ++ Vector<DerValue> v = new Vector<DerValue>(); + v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x00), kdcOptions.asn1Encode())); + if (msgType == Krb5.KRB_AS_REQ) { + if (cname != null) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java 2013-04-17 14:53:25.375552836 +0100 +@@ -150,7 +150,7 @@ + if (subsubDer.getTag() != DerValue.tag_SequenceOf) { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } +- Vector<PAData> v = new Vector<>(); ++ Vector<PAData> v = new Vector<PAData>(); + while (subsubDer.getData().available() > 0) { + v.addElement(new PAData(subsubDer.getData().getDerValue())); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java 2013-04-17 14:53:25.375552836 +0100 +@@ -157,7 +157,7 @@ + * @exception IOException if an I/O error occurs while reading encoded data. + */ + public byte[] asn1Encode() throws Asn1Exception, IOException { +- Vector<DerValue> v = new Vector<>(); ++ Vector<DerValue> v = new Vector<DerValue>(); + v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x00), key.asn1Encode())); + if (prealm != null) + v.addElement(new DerValue(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x01), prealm.asn1Encode())); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java 2013-04-17 14:53:25.375552836 +0100 +@@ -134,7 +134,7 @@ + if (subsubDer.getTag() != DerValue.tag_SequenceOf) { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } +- Vector<Ticket> v = new Vector<>(); ++ Vector<Ticket> v = new Vector<Ticket>(); + while (subsubDer.getData().available() > 0) { + v.addElement(new Ticket(subsubDer.getData().getDerValue())); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java 2013-04-17 14:53:25.375552836 +0100 +@@ -259,7 +259,7 @@ + private void parsePAData(byte[] data) + throws IOException, Asn1Exception { + DerValue derPA = new DerValue(data); +- List<PAData> paList = new ArrayList<>(); ++ List<PAData> paList = new ArrayList<PAData>(); + while (derPA.data.available() > 0) { + // read the PA-DATA + DerValue tmp = derPA.data.getDerValue(); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java 2013-04-17 14:52:22.430547174 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java 2013-04-17 14:53:25.375552836 +0100 +@@ -67,7 +67,7 @@ + + // Attention: Currently there is no way to remove a keytab from this map, + // this might lead to a memory leak. +- private static Map<String,KeyTab> map = new HashMap<>(); ++ private static Map<String,KeyTab> map = new HashMap<String,KeyTab>(); + + // KeyTab file does not exist. Note: a missing keytab is still valid + private boolean isMissing = false; +@@ -79,7 +79,7 @@ + private long lastModified; + private int kt_vno; + +- private Vector<KeyTabEntry> entries = new Vector<>(); ++ private Vector<KeyTabEntry> entries = new Vector<KeyTabEntry>(); + + /** + * Constructs a KeyTab object. +@@ -280,7 +280,7 @@ + KeyTabEntry entry; + EncryptionKey key; + int size = entries.size(); +- ArrayList<EncryptionKey> keys = new ArrayList<>(size); ++ ArrayList<EncryptionKey> keys = new ArrayList<EncryptionKey>(size); + for (int i = size-1; i >= 0; i--) { + entry = entries.elementAt(i); + if (entry.service.match(service)) { +@@ -482,7 +482,7 @@ + int count = 0; + + // Remember the highest KVNO for each etype. Used for kvno == -2 +- Map<Integer,Integer> highest = new HashMap<>(); ++ Map<Integer,Integer> highest = new HashMap<Integer, Integer>(); + + for (int i = entries.size()-1; i >= 0; i--) { + KeyTabEntry e = entries.get(i); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java 2013-04-17 14:53:25.375552836 +0100 +@@ -77,7 +77,7 @@ + */ + + public LastReq(DerValue encoding) throws Asn1Exception, IOException { +- Vector<LastReqEntry> v= new Vector<>(); ++ Vector<LastReqEntry> v= new Vector<LastReqEntry>(); + if (encoding.getTag() != DerValue.tag_Sequence) { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KdcComm.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/KdcComm.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java 2013-04-17 14:53:25.375552836 +0100 +@@ -462,7 +462,7 @@ + */ + static class KdcAccessibility { + // Known bad KDCs +- private static Set<String> bads = new HashSet<>(); ++ private static Set<String> bads = new HashSet<String>(); + + private static synchronized void addBad(String kdc) { + if (DEBUG) { +@@ -492,9 +492,9 @@ + // Returns a preferred KDC list by putting the bad ones at the end + private static synchronized String[] list(String kdcList) { + StringTokenizer st = new StringTokenizer(kdcList); +- List<String> list = new ArrayList<>(); ++ List<String> list = new ArrayList<String>(); + if (badPolicy == BpType.TRY_LAST) { +- List<String> badkdcs = new ArrayList<>(); ++ List<String> badkdcs = new ArrayList<String>(); + while (st.hasMoreTokens()) { + String t = st.nextToken(); + if (bads.contains(t)) badkdcs.add(t); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/PrincipalName.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/PrincipalName.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java 2013-04-17 14:53:25.379552900 +0100 +@@ -238,7 +238,7 @@ + if (subDer.getTag() != DerValue.tag_SequenceOf) { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } +- Vector<String> v = new Vector<>(); ++ Vector<String> v = new Vector<String>(); + DerValue subSubDer; + while(subDer.getData().available() > 0) { + subSubDer = subDer.getData().getDerValue(); +@@ -293,7 +293,7 @@ + // Code repetition, realm parsed again by class Realm + protected static String[] parseName(String name) { + +- Vector<String> tempStrings = new Vector<>(); ++ Vector<String> tempStrings = new Vector<String>(); + String temp = name; + int i = 0; + int componentStart = 0; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Realm.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/Realm.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java 2013-04-17 14:53:25.379552900 +0100 +@@ -359,14 +359,14 @@ + } + + String tempTarget = null, tempRealm = null; +- Stack<String> iStack = new Stack<>(); ++ Stack<String> iStack = new Stack<String>(); + + /* + * The half-established reversed-path, starting from the final target + * (sRealm), each item can be connected to by the next one. + * Might contains wrong item, if found, a bad track is performed + */ +- Vector<String> tempList = new Vector<>(8, 8); ++ Vector<String> tempList = new Vector<String>(8, 8); + tempList.add(sRealm); + + int count = 0; // For debug only +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java 2013-04-17 14:53:25.379552900 +0100 +@@ -590,7 +590,7 @@ + // Except the performance improvement, another benefit is to break + // the dead loop while looking for the issuer back and forth + // between the delegated self-issued certificate and its issuer. +- Set<TrustAnchor> newTrustAnchors = new HashSet<>(trustAnchors); ++ Set<TrustAnchor> newTrustAnchors = new HashSet<TrustAnchor>(trustAnchors); + + if (prevKey != null) { + // Add the previous certificate as a trust anchor. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java 2013-04-17 14:53:25.379552900 +0100 +@@ -683,7 +683,7 @@ + // Read the certificate chain + int numOfCerts = dis.readInt(); + if (numOfCerts > 0) { +- List<Certificate> certs = new ArrayList<>( ++ List<Certificate> certs = new ArrayList<Certificate>( + numOfCerts > 10 ? 10 : numOfCerts); + for (int j = 0; j < numOfCerts; j++) { + if (xVersion == 2) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java 2013-04-17 14:53:25.379552900 +0100 +@@ -299,7 +299,7 @@ + private static final int DEFAULT_CACHE_SIZE = 1; + + // contains the policy grant entries, PD cache, and alias mapping +- private AtomicReference<PolicyInfo> policyInfo = new AtomicReference<>(); ++ private AtomicReference<PolicyInfo> policyInfo = new AtomicReference<PolicyInfo>(); + private boolean constructed = false; + + private boolean expandProperties = true; +@@ -1333,7 +1333,7 @@ + + List<PolicyParser.PrincipalEntry> entryPs = entry.getPrincipals(); + if (debug != null) { +- ArrayList<PolicyParser.PrincipalEntry> accPs = new ArrayList<>(); ++ ArrayList<PolicyParser.PrincipalEntry> accPs = new ArrayList<PolicyParser.PrincipalEntry>(); + if (principals != null) { + for (int i = 0; i < principals.length; i++) { + accPs.add(new PolicyParser.PrincipalEntry +@@ -1414,7 +1414,7 @@ + // check if the PrincipalComparator + // implies the current thread's principals + +- Set<Principal> pSet = new HashSet<>(principals.length); ++ Set<Principal> pSet = new HashSet<Principal>(principals.length); + for (int j = 0; j < principals.length; j++) { + pSet.add(principals[j]); + } +@@ -1697,7 +1697,7 @@ + // build an info array for every principal + // in the current domain which has a principal class + // that is equal to policy entry principal class name +- List<Principal> plist = new ArrayList<>(); ++ List<Principal> plist = new ArrayList<Principal>(); + for (int i = 0; i < pdp.length; i++) { + if(pe.principalClass.equals(pdp[i].getClass().getName())) + plist.add(pdp[i]); +@@ -1767,7 +1767,7 @@ + // Done + return certs; + +- ArrayList<Certificate> userCertList = new ArrayList<>(); ++ ArrayList<Certificate> userCertList = new ArrayList<Certificate>(); + i = 0; + while (i < certs.length) { + userCertList.add(certs[i]); +@@ -2246,7 +2246,7 @@ + if (this.certs == null) { + // extract the signer certs + ArrayList<Certificate> signerCerts = +- new ArrayList<>(); ++ new ArrayList<Certificate>(); + i = 0; + while (i < certs.length) { + signerCerts.add(certs[i]); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/Sun.java openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/Sun.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java 2013-04-17 14:53:25.379552900 +0100 +@@ -55,7 +55,7 @@ + SunEntries.putEntries(this); + } else { + // use LinkedHashMap to preserve the order of the PRNGs +- Map<Object, Object> map = new LinkedHashMap<>(); ++ Map<Object, Object> map = new LinkedHashMap<Object, Object>(); + SunEntries.putEntries(map); + AccessController.doPrivileged(new PutAllAction(this, map)); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/VerificationProvider.java openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/VerificationProvider.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java 2013-04-17 14:53:25.379552900 +0100 +@@ -76,7 +76,7 @@ + SunRsaSignEntries.putEntries(this); + } else { + // use LinkedHashMap to preserve the order of the PRNGs +- Map<Object, Object> map = new LinkedHashMap<>(); ++ Map<Object, Object> map = new LinkedHashMap<Object, Object>(); + SunEntries.putEntries(map); + SunRsaSignEntries.putEntries(map); + AccessController.doPrivileged(new PutAllAction(this, map)); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/X509Factory.java openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/X509Factory.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java 2013-04-17 14:53:25.379552900 +0100 +@@ -409,10 +409,10 @@ + parseX509orPKCS7Cert(InputStream is) + throws CertificateException, IOException + { +- Collection<X509CertImpl> coll = new ArrayList<>(); ++ Collection<X509CertImpl> coll = new ArrayList<X509CertImpl>(); + byte[] data = readOneBlock(is); + if (data == null) { +- return new ArrayList<>(0); ++ return new ArrayList<Certificate>(0); + } + try { + PKCS7 pkcs7 = new PKCS7(data); +@@ -422,7 +422,7 @@ + return Arrays.asList(certs); + } else { + // no crls provided +- return new ArrayList<>(0); ++ return new ArrayList<Certificate>(0); + } + } catch (ParsingException e) { + while (data != null) { +@@ -442,10 +442,10 @@ + parseX509orPKCS7CRL(InputStream is) + throws CRLException, IOException + { +- Collection<X509CRLImpl> coll = new ArrayList<>(); ++ Collection<X509CRLImpl> coll = new ArrayList<X509CRLImpl>(); + byte[] data = readOneBlock(is); + if (data == null) { +- return new ArrayList<>(0); ++ return new ArrayList<java.security.cert.CRL>(0); + } + try { + PKCS7 pkcs7 = new PKCS7(data); +@@ -455,7 +455,7 @@ + return Arrays.asList(crls); + } else { + // no crls provided +- return new ArrayList<>(0); ++ return new ArrayList<java.security.cert.CRL>(0); + } + } catch (ParsingException e) { + while (data != null) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/RSACore.java openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/RSACore.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java 2013-04-17 14:53:25.379552900 +0100 +@@ -219,7 +219,7 @@ + // use a weak hashmap so that cached values are automatically cleared + // when the modulus is GC'ed + private final static Map<BigInteger, BlindingParameters> blindingCache = +- new WeakHashMap<>(); ++ new WeakHashMap<BigInteger, BlindingParameters>(); + + /** + * Set of blinding parameters for a given RSA key. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java 2013-04-17 14:53:25.379552900 +0100 +@@ -52,7 +52,7 @@ + SunRsaSignEntries.putEntries(this); + } else { + // use LinkedHashMap to preserve the order of the PRNGs +- Map<Object, Object> map = new HashMap<>(); ++ Map<Object, Object> map = new HashMap<Object, Object>(); + SunRsaSignEntries.putEntries(map); + AccessController.doPrivileged(new PutAllAction(this, map)); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/CipherSuite.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/CipherSuite.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java 2013-04-17 14:53:25.379552900 +0100 +@@ -393,7 +393,7 @@ + + // Map BulkCipher -> Boolean(available) + private final static Map<BulkCipher,Boolean> availableCache = +- new HashMap<>(8); ++ new HashMap<BulkCipher,Boolean>(8); + + // descriptive name including key size, e.g. AES/128 + final String description; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java 2013-04-17 14:53:25.383552963 +0100 +@@ -659,7 +659,7 @@ + if (certRequest != null) { + X509ExtendedKeyManager km = sslContext.getX509KeyManager(); + +- ArrayList<String> keytypesTmp = new ArrayList<>(4); ++ ArrayList<String> keytypesTmp = new ArrayList<String>(4); + + for (int i = 0; i < certRequest.types.length; i++) { + String typeName; +@@ -1179,7 +1179,7 @@ + "Can't reuse existing SSL client session"); + } + +- Collection<CipherSuite> cipherList = new ArrayList<>(2); ++ Collection<CipherSuite> cipherList = new ArrayList<CipherSuite>(2); + cipherList.add(sessionSuite); + if (!secureRenegotiation && + cipherSuites.contains(CipherSuite.C_SCSV)) { +@@ -1197,7 +1197,7 @@ + // exclude SCSV for secure renegotiation + if (secureRenegotiation && cipherSuites.contains(CipherSuite.C_SCSV)) { + Collection<CipherSuite> cipherList = +- new ArrayList<>(cipherSuites.size() - 1); ++ new ArrayList<CipherSuite>(cipherSuites.size() - 1); + for (CipherSuite suite : cipherSuites.collection()) { + if (suite != CipherSuite.C_SCSV) { + cipherList.add(suite); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java 2013-04-17 14:53:25.387553028 +0100 +@@ -260,7 +260,7 @@ + // add server_name extension + void addServerNameIndicationExtension(String hostname) { + // We would have checked that the hostname ia a FQDN. +- ArrayList<String> hostnames = new ArrayList<>(1); ++ ArrayList<String> hostnames = new ArrayList<String>(1); + hostnames.add(hostname); + + try { +@@ -436,7 +436,7 @@ + + CertificateMsg(HandshakeInStream input) throws IOException { + int chainLen = input.getInt24(); +- List<Certificate> v = new ArrayList<>(4); ++ List<Certificate> v = new ArrayList<Certificate>(4); + + CertificateFactory cf = null; + while (chainLen > 0) { +@@ -1346,7 +1346,7 @@ + + // read the certificate_authorities + int len = input.getInt16(); +- ArrayList<DistinguishedName> v = new ArrayList<>(); ++ ArrayList<DistinguishedName> v = new ArrayList<DistinguishedName>(); + while (len >= 3) { + DistinguishedName dn = new DistinguishedName(input); + v.add(dn); +@@ -1737,7 +1737,7 @@ + // Note that this will prevent the Spi classes from being GC'd. We assume + // that is not a problem. + private final static Map<Class,Object> methodCache = +- new ConcurrentHashMap<>(); ++ new ConcurrentHashMap<Class,Object>(); + + private static void digestKey(MessageDigest md, SecretKey key) { + try { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java 2013-04-17 14:53:25.391553092 +0100 +@@ -569,7 +569,7 @@ + activeProtocols = getActiveProtocols(); + } + +- ArrayList<CipherSuite> suites = new ArrayList<>(); ++ ArrayList<CipherSuite> suites = new ArrayList<CipherSuite>(); + if (!(activeProtocols.collection().isEmpty()) && + activeProtocols.min.v != ProtocolVersion.NONE.v) { + for (CipherSuite suite : enabledCipherSuites.collection()) { +@@ -614,7 +614,7 @@ + */ + ProtocolList getActiveProtocols() { + if (activeProtocols == null) { +- ArrayList<ProtocolVersion> protocols = new ArrayList<>(4); ++ ArrayList<ProtocolVersion> protocols = new ArrayList<ProtocolVersion>(4); + for (ProtocolVersion protocol : enabledProtocols.collection()) { + boolean found = false; + for (CipherSuite suite : enabledCipherSuites.collection()) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java 2013-04-17 14:53:25.391553092 +0100 +@@ -169,7 +169,7 @@ + return name; + } + +- static List<ExtensionType> knownExtensions = new ArrayList<>(9); ++ static List<ExtensionType> knownExtensions = new ArrayList<ExtensionType>(9); + + static ExtensionType get(int id) { + for (ExtensionType ext : knownExtensions) { +@@ -673,7 +673,7 @@ + } + + public String toString() { +- List<String> list = new ArrayList<>(); ++ List<String> list = new ArrayList<String>(); + for (byte format : formats) { + list.add(toString(format)); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolList.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/ProtocolList.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java 2013-04-17 14:53:25.391553092 +0100 +@@ -79,7 +79,7 @@ + throw new IllegalArgumentException("Protocols may not be null"); + } + +- ArrayList<ProtocolVersion> versions = new ArrayList<>(3); ++ ArrayList<ProtocolVersion> versions = new ArrayList<ProtocolVersion>(3); + for (int i = 0; i < names.length; i++ ) { + ProtocolVersion version = ProtocolVersion.valueOf(names[i]); + if (versions.contains(version) == false) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java 2013-04-17 14:53:25.391553092 +0100 +@@ -156,7 +156,7 @@ + static Collection<SignatureAndHashAlgorithm> + getSupportedAlgorithms(AlgorithmConstraints constraints) { + +- Collection<SignatureAndHashAlgorithm> supported = new ArrayList<>(); ++ Collection<SignatureAndHashAlgorithm> supported = new ArrayList<SignatureAndHashAlgorithm>(); + synchronized (priorityMap) { + for (SignatureAndHashAlgorithm sigAlg : priorityMap.values()) { + if (sigAlg.priority <= SUPPORTED_ALG_PRIORITY_MAX_NUM && +@@ -173,7 +173,7 @@ + // Get supported algorithm collection from an untrusted collection + static Collection<SignatureAndHashAlgorithm> getSupportedAlgorithms( + Collection<SignatureAndHashAlgorithm> algorithms ) { +- Collection<SignatureAndHashAlgorithm> supported = new ArrayList<>(); ++ Collection<SignatureAndHashAlgorithm> supported = new ArrayList<SignatureAndHashAlgorithm>(); + for (SignatureAndHashAlgorithm sigAlg : algorithms) { + if (sigAlg.priority <= SUPPORTED_ALG_PRIORITY_MAX_NUM) { + supported.add(sigAlg); +@@ -185,7 +185,7 @@ + + static String[] getAlgorithmNames( + Collection<SignatureAndHashAlgorithm> algorithms) { +- ArrayList<String> algorithmNames = new ArrayList<>(); ++ ArrayList<String> algorithmNames = new ArrayList<String>(); + if (algorithms != null) { + for (SignatureAndHashAlgorithm sigAlg : algorithms) { + algorithmNames.add(sigAlg.algorithm); +@@ -198,7 +198,7 @@ + + static Set<String> getHashAlgorithmNames( + Collection<SignatureAndHashAlgorithm> algorithms) { +- Set<String> algorithmNames = new HashSet<>(); ++ Set<String> algorithmNames = new HashSet<String>(); + if (algorithms != null) { + for (SignatureAndHashAlgorithm sigAlg : algorithms) { + if (sigAlg.hash.value > 0) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java 2013-04-17 14:53:25.391553092 +0100 +@@ -261,7 +261,7 @@ + + protected Set<String> decomposes(KeyExchange keyExchange, + boolean forCertPathOnly) { +- Set<String> components = new HashSet<>(); ++ Set<String> components = new HashSet<String>(); + switch (keyExchange) { + case K_NULL: + if (!forCertPathOnly) { +@@ -356,7 +356,7 @@ + } + + protected Set<String> decomposes(BulkCipher bulkCipher) { +- Set<String> components = new HashSet<>(); ++ Set<String> components = new HashSet<String>(); + + if (bulkCipher.transformation != null) { + components.addAll(super.decomposes(bulkCipher.transformation)); +@@ -366,7 +366,7 @@ + } + + protected Set<String> decomposes(MacAlg macAlg) { +- Set<String> components = new HashSet<>(); ++ Set<String> components = new HashSet<String>(); + + if (macAlg == CipherSuite.M_MD5) { + components.add("MD5"); +@@ -407,7 +407,7 @@ + } + + if (cipherSuite != null) { +- Set<String> components = new HashSet<>(); ++ Set<String> components = new HashSet<String>(); + + if(cipherSuite.keyExchange != null) { + components.addAll( +@@ -448,7 +448,7 @@ + } + + if (cipherSuite != null) { +- Set<String> components = new HashSet<>(); ++ Set<String> components = new HashSet<String>(); + + if(cipherSuite.keyExchange != null) { + components.addAll( +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java 2013-04-17 14:53:25.395553156 +0100 +@@ -331,7 +331,7 @@ + Collection<CipherSuite> allowedCipherSuites = + CipherSuite.allowedCipherSuites(); + +- TreeSet<CipherSuite> suites = new TreeSet<>(); ++ TreeSet<CipherSuite> suites = new TreeSet<CipherSuite>(); + if (!(protocols.collection().isEmpty()) && + protocols.min.v != ProtocolVersion.NONE.v) { + for (CipherSuite suite : allowedCipherSuites) { +@@ -541,7 +541,7 @@ + return defaultKeyManagers; + } + +- final Map<String,String> props = new HashMap<>(); ++ final Map<String,String> props = new HashMap<String,String>(); + AccessController.doPrivileged( + new PrivilegedExceptionAction<Object>() { + public Object run() throws Exception { +@@ -922,7 +922,7 @@ + // Does the certificate chain end with a trusted certificate? + int checkedLength = chain.length - 1; + +- Collection<X509Certificate> trustedCerts = new HashSet<>(); ++ Collection<X509Certificate> trustedCerts = new HashSet<X509Certificate>(); + X509Certificate[] certs = tm.getAcceptedIssuers(); + if ((certs != null) && (certs.length > 0)){ + Collections.addAll(trustedCerts, certs); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java 2013-04-17 14:53:25.395553156 +0100 +@@ -618,7 +618,7 @@ + * key and the calling security context. This is important since + * sessions can be shared across different protection domains. + */ +- private Hashtable<SecureKey, Object> table = new Hashtable<>(); ++ private Hashtable<SecureKey, Object> table = new Hashtable<SecureKey, Object>(); + + /** + * Assigns a session value. Session change events are given if +@@ -686,7 +686,7 @@ + */ + public String[] getValueNames() { + Enumeration<SecureKey> e; +- Vector<Object> v = new Vector<>(); ++ Vector<Object> v = new Vector<Object>(); + SecureKey key; + Object securityCtx = SecureKey.getCurrentSecurityContext(); + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java 2013-04-17 14:53:25.395553156 +0100 +@@ -2496,7 +2496,7 @@ + entrySet, HandshakeCompletedEvent e) { + + super("HandshakeCompletedNotify-Thread"); +- targets = new HashSet<>(entrySet); // clone the entry set ++ targets = new HashSet(entrySet); // clone the entry set + event = e; + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java 2013-04-17 14:53:25.395553156 +0100 +@@ -337,7 +337,7 @@ + + X500Principal[] x500Issuers = (X500Principal[])issuers; + // the algorithm below does not produce duplicates, so avoid Set +- List<String> aliases = new ArrayList<>(); ++ List<String> aliases = new ArrayList<String>(); + + for (Map.Entry<String,X509Credentials> entry : + credentialsMap.entrySet()) { +@@ -397,7 +397,7 @@ + * possible. Principals that cannot be converted are ignored. + */ + private static X500Principal[] convertPrincipals(Principal[] principals) { +- List<X500Principal> list = new ArrayList<>(principals.length); ++ List<X500Principal> list = new ArrayList<X500Principal>(principals.length); + for (int i = 0; i < principals.length; i++) { + Principal p = principals[i]; + if (p instanceof X500Principal) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java 2013-04-17 14:53:25.395553156 +0100 +@@ -134,7 +134,7 @@ + FileInputStream fis = null; + String defaultTrustStoreType; + String defaultTrustStoreProvider; +- final HashMap<String,String> props = new HashMap<>(); ++ final HashMap<String,String> props = new HashMap<String,String>(); + final String sep = File.separator; + KeyStore ks = null; + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java 2013-04-17 14:53:25.395553156 +0100 +@@ -307,7 +307,7 @@ + (keyTypes.length == 0) || (keyTypes[0] == null)) { + return null; + } +- List<KeyType> list = new ArrayList<>(keyTypes.length); ++ List<KeyType> list = new ArrayList<KeyType>(keyTypes.length); + for (String keyType : keyTypes) { + list.add(new KeyType(keyType)); + } +@@ -429,7 +429,7 @@ + // make a Set out of the array + private Set<Principal> getIssuerSet(Principal[] issuers) { + if ((issuers != null) && (issuers.length != 0)) { +- return new HashSet<>(Arrays.asList(issuers)); ++ return new HashSet<Principal>(Arrays.asList(issuers)); + } else { + return null; + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/JarSigner.java openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/JarSigner.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java 2013-04-17 14:53:25.395553156 +0100 +@@ -123,14 +123,14 @@ + boolean token = false; // token-based keystore + String jarfile; // jar files to sign or verify + String alias; // alias to sign jar with +- List<String> ckaliases = new ArrayList<>(); // aliases in -verify ++ List<String> ckaliases = new ArrayList<String>(); // aliases in -verify + char[] storepass; // keystore password + boolean protectedPath; // protected authentication path + String storetype; // keystore type + String providerName; // provider name + Vector<String> providers = null; // list of providers + // arguments for provider constructors +- HashMap<String,String> providerArgs = new HashMap<>(); ++ HashMap<String,String> providerArgs = new HashMap<String,String>(); + char[] keypass; // private key password + String sigfile; // name of .SF file + String sigalg; // name of signature algorithm +@@ -567,7 +567,7 @@ + + try { + jf = new JarFile(jarName, true); +- Vector<JarEntry> entriesVec = new Vector<>(); ++ Vector<JarEntry> entriesVec = new Vector<JarEntry>(); + byte[] buffer = new byte[8192]; + + Enumeration<JarEntry> entries = jf.entries(); +@@ -594,7 +594,7 @@ + // The map to record display info, only used when -verbose provided + // key: signer info string + // value: the list of files with common key +- Map<String,List<String>> output = new LinkedHashMap<>(); ++ Map<String,List<String>> output = new LinkedHashMap<String,List<String>>(); + + if (man != null) { + if (verbose != null) System.out.println(); +@@ -946,7 +946,7 @@ + .append(signTimeForm.format(source)).append("]").toString(); + } + +- private Map<CodeSigner,Integer> cacheForInKS = new IdentityHashMap<>(); ++ private Map<CodeSigner,Integer> cacheForInKS = new IdentityHashMap<CodeSigner,Integer>(); + + private int inKeyStoreForOneSigner(CodeSigner signer) { + if (cacheForInKS.containsKey(signer)) { +@@ -989,7 +989,7 @@ + return result; + } + +- Hashtable<Certificate, String> storeHash = new Hashtable<>(); ++ Hashtable<Certificate, String> storeHash = new Hashtable<Certificate,String>(); + + int inKeyStore(CodeSigner[] signers) { + +@@ -1119,7 +1119,7 @@ + * generated one. (This may invalidate existing signatures!) + */ + BASE64Encoder encoder = new JarBASE64Encoder(); +- Vector<ZipEntry> mfFiles = new Vector<>(); ++ Vector<ZipEntry> mfFiles = new Vector<ZipEntry>(); + + boolean wasSigned = false; + +@@ -1476,7 +1476,7 @@ + return false; + } + +- Map<CodeSigner,String> cacheForSignerInfo = new IdentityHashMap<>(); ++ Map<CodeSigner,String> cacheForSignerInfo = new IdentityHashMap<CodeSigner,String>(); + + /** + * Returns a string of singer info, with a newline at the end +@@ -1567,7 +1567,7 @@ + + certificateFactory = CertificateFactory.getInstance("X.509"); + validator = CertPathValidator.getInstance("PKIX"); +- Set<TrustAnchor> tas = new HashSet<>(); ++ Set<TrustAnchor> tas = new HashSet<TrustAnchor>(); + try { + KeyStore caks = KeyTool.getCacertsKeyStore(); + if (caks != null) { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java 2013-04-17 14:52:22.430547174 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java 2013-04-17 14:53:25.399553220 +0100 +@@ -154,11 +154,11 @@ + private KeyStore caks = null; // "cacerts" keystore + private char[] srcstorePass = null; + private String srcstoretype = null; +- private Set<char[]> passwords = new HashSet<>(); ++ private Set<char[]> passwords = new HashSet<char[]>(); + private String startDate = null; + +- private List<String> ids = new ArrayList<>(); // used in GENCRL +- private List<String> v3ext = new ArrayList<>(); ++ private List<String> ids = new ArrayList<String>(); // used in GENCRL ++ private List<String> v3ext = new ArrayList<String>(); + + enum Command { + CERTREQ("Generates.a.certificate.request", +@@ -2093,7 +2093,7 @@ + */ + public static List<CRL> readCRLsFromCert(X509Certificate cert) + throws Exception { +- List<CRL> crls = new ArrayList<>(); ++ List<CRL> crls = new ArrayList<CRL>(); + CRLDistributionPointsExtension ext = + X509CertImpl.toImpl(cert).getCRLDistributionPointsExtension(); + if (ext == null) return crls; +@@ -2260,7 +2260,7 @@ + if (jarfile != null) { + JarFile jf = new JarFile(jarfile, true); + Enumeration<JarEntry> entries = jf.entries(); +- Set<CodeSigner> ss = new HashSet<>(); ++ Set<CodeSigner> ss = new HashSet<CodeSigner>(); + byte[] buffer = new byte[8192]; + int pos = 0; + while (entries.hasMoreElements()) { +@@ -3360,7 +3360,7 @@ + } + + // start building chain +- Vector<Certificate> chain = new Vector<>(2); ++ Vector<Certificate> chain = new Vector<Certificate>(2); + if (buildChain((X509Certificate)certToVerify, chain, certs)) { + Certificate[] newChain = new Certificate[chain.size()]; + // buildChain() returns chain with self-signed root-cert first and +@@ -3886,7 +3886,7 @@ + break; + case 2: // EKU + if(value != null) { +- Vector<ObjectIdentifier> v = new Vector<>(); ++ Vector<ObjectIdentifier> v = new Vector<ObjectIdentifier>(); + for (String s: value.split(",")) { + int p = oneOf(s, + "anyExtendedKeyUsage", +@@ -3956,7 +3956,7 @@ + } + if(value != null) { + List<AccessDescription> accessDescriptions = +- new ArrayList<>(); ++ new ArrayList<AccessDescription>(); + String[] ps = value.split(","); + for(String item: ps) { + colonpos = item.indexOf(':'); +@@ -4240,7 +4240,7 @@ + } + + public static <A,B> Pair<A,B> of(A a, B b) { +- return new Pair<>(a,b); ++ return new Pair<A,B>(a,b); + } + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java 2013-04-17 14:53:25.399553220 +0100 +@@ -643,7 +643,7 @@ + Class<?> pc = Class.forName(type, true, + Thread.currentThread().getContextClassLoader()); + Constructor<?> c = null; +- Vector<String> objects = new Vector<>(2); ++ Vector<String> objects = new Vector<String>(2); + if (name != null) objects.add(name); + if (actions != null) objects.add(actions); + switch (objects.size()) { +@@ -1722,7 +1722,7 @@ + new PolicyParser.GrantEntry(signedby, codebase); + + // get the new Principals +- LinkedList<PolicyParser.PrincipalEntry> prins = new LinkedList<>(); ++ LinkedList<PolicyParser.PrincipalEntry> prins = new LinkedList<PolicyParser.PrincipalEntry>(); + TaggedList prinList = (TaggedList)getComponent(PE_PRIN_LIST); + for (int i = 0; i < prinList.getItemCount(); i++) { + prins.add((PolicyParser.PrincipalEntry)prinList.getObject(i)); +@@ -1730,7 +1730,7 @@ + ge.principals = prins; + + // get the new Permissions +- Vector<PolicyParser.PermissionEntry> perms = new Vector<>(); ++ Vector<PolicyParser.PermissionEntry> perms = new Vector<PolicyParser.PermissionEntry>(); + TaggedList permList = (TaggedList)getComponent(PE_PERM_LIST); + for (int i = 0; i < permList.getItemCount(); i++) { + perms.addElement((PolicyParser.PermissionEntry)permList.getObject(i)); +@@ -3647,7 +3647,7 @@ + * This is a java.awt.List that bind an Object to each String it holds. + */ + class TaggedList extends List { +- private java.util.List<Object> data = new LinkedList<>(); ++ private java.util.List<Object> data = new LinkedList<Object>(); + public TaggedList(int i, boolean b) { + super(i, b); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java 2013-04-17 14:52:22.430547174 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java 2013-04-17 14:53:25.399553220 +0100 +@@ -42,7 +42,7 @@ + */ + public final class UntrustedCertificates { + +- private final static Set<X509Certificate> untrustedCerts = new HashSet<>(); ++ private final static Set<X509Certificate> untrustedCerts = new HashSet<X509Certificate>(); + + /** + * Checks if a certificate is untrusted. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java 2013-04-17 14:53:25.399553220 +0100 +@@ -1260,7 +1260,7 @@ + if (exts == null) { + return null; + } +- Set<String> extSet = new TreeSet<>(); ++ Set<String> extSet = new TreeSet<String>(); + for (Extension ex : exts.getAllExtensions()) { + if (ex.isCritical()) { + extSet.add(ex.getExtensionId().toString()); +@@ -1290,7 +1290,7 @@ + if (exts == null) { + return null; + } +- Set<String> extSet = new TreeSet<>(); ++ Set<String> extSet = new TreeSet<String>(); + for (Extension ex : exts.getAllExtensions()) { + if (!ex.isCritical()) { + extSet.add(ex.getExtensionId().toString()); +@@ -1527,10 +1527,10 @@ + if (names.isEmpty()) { + return Collections.<List<?>>emptySet(); + } +- List<List<?>> newNames = new ArrayList<>(); ++ List<List<?>> newNames = new ArrayList<List<?>>(); + for (GeneralName gname : names.names()) { + GeneralNameInterface name = gname.getName(); +- List<Object> nameEntry = new ArrayList<>(2); ++ List<Object> nameEntry = new ArrayList<Object>(2); + nameEntry.add(Integer.valueOf(name.getType())); + switch (name.getType()) { + case GeneralNameInterface.NAME_RFC822: +@@ -1588,12 +1588,12 @@ + } + } + if (mustClone) { +- List<List<?>> namesCopy = new ArrayList<>(); ++ List<List<?>> namesCopy = new ArrayList<List<?>>(); + for (List<?> nameEntry : altNames) { + Object nameObject = nameEntry.get(1); + if (nameObject instanceof byte[]) { + List<Object> nameEntryCopy = +- new ArrayList<>(nameEntry); ++ new ArrayList<Object>(nameEntry); + nameEntryCopy.set(1, ((byte[])nameObject).clone()); + namesCopy.add(Collections.unmodifiableList(nameEntryCopy)); + } else { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java 2013-04-17 14:53:25.399553220 +0100 +@@ -352,7 +352,7 @@ + if (extensions == null) { + return null; + } +- Set<String> extSet = new TreeSet<>(); ++ Set<String> extSet = new TreeSet<String>(); + for (Extension ex : extensions.getAllExtensions()) { + if (ex.isCritical()) { + extSet.add(ex.getExtensionId().toString()); +@@ -373,7 +373,7 @@ + if (extensions == null) { + return null; + } +- Set<String> extSet = new TreeSet<>(); ++ Set<String> extSet = new TreeSet<String>(); + for (Extension ex : extensions.getAllExtensions()) { + if (!ex.isCritical()) { + extSet.add(ex.getExtensionId().toString()); +@@ -510,7 +510,7 @@ + return Collections.emptyMap(); + } + Collection<Extension> exts = extensions.getAllExtensions(); +- Map<String, java.security.cert.Extension> map = new TreeMap<>(); ++ Map<String, java.security.cert.Extension> map = new TreeMap<String, java.security.cert.Extension>(); + for (Extension ext : exts) { + map.put(ext.getId(), ext); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java 2013-04-17 14:53:25.399553220 +0100 +@@ -104,8 +104,8 @@ + private X500Principal issuerPrincipal = null; + private Date thisUpdate = null; + private Date nextUpdate = null; +- private Map<X509IssuerSerial,X509CRLEntry> revokedMap = new TreeMap<>(); +- private List<X509CRLEntry> revokedList = new LinkedList<>(); ++ private Map<X509IssuerSerial,X509CRLEntry> revokedMap = new TreeMap<X509IssuerSerial,X509CRLEntry>(); ++ private List<X509CRLEntry> revokedList = new LinkedList<X509CRLEntry>(); + private CRLExtensions extensions = null; + private final static boolean isExplicit = true; + private static final long YR_2050 = 2524636800000L; +@@ -907,7 +907,7 @@ + if (extensions == null) { + return null; + } +- Set<String> extSet = new TreeSet<>(); ++ Set<String> extSet = new TreeSet<String>(); + for (Extension ex : extensions.getAllExtensions()) { + if (ex.isCritical()) { + extSet.add(ex.getExtensionId().toString()); +@@ -928,7 +928,7 @@ + if (extensions == null) { + return null; + } +- Set<String> extSet = new TreeSet<>(); ++ Set<String> extSet = new TreeSet<String>(); + for (Extension ex : extensions.getAllExtensions()) { + if (!ex.isCritical()) { + extSet.add(ex.getExtensionId().toString()); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/native2ascii/Main.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java 2013-04-17 14:53:25.403553284 +0100 +@@ -95,7 +95,7 @@ + * Run the converter + */ + public synchronized boolean convert(String argv[]){ +- List<String> v = new ArrayList<>(2); ++ List<String> v = new ArrayList<String>(2); + File outputFile = null; + boolean createOutputFile = false; + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java 2013-04-17 14:53:25.403553284 +0100 +@@ -113,7 +113,7 @@ + } + // Use case insensitive string to prevent duplication + if (uattributes == null) { +- uattributes = new HashSet<>(4); ++ uattributes = new HashSet<CaseInsensitiveString>(4); + } + uattributes.add(new CaseInsensitiveString(attribute)); + return this; +@@ -157,7 +157,7 @@ + } + } + if (ukeywords == null) { +- ukeywords = new HashMap<>(4); ++ ukeywords = new HashMap<CaseInsensitiveString,String>(4); + } + ukeywords.put(cikey, type); + } +@@ -211,7 +211,7 @@ + setUnicodeLocaleExtension(val); + } else { + if (extensions == null) { +- extensions = new HashMap<>(4); ++ extensions = new HashMap<CaseInsensitiveChar,String>(4); + } + extensions.put(key, val); + } +@@ -262,7 +262,7 @@ + } + + if (extensions == null) { +- extensions = new ArrayList<>(4); ++ extensions = new ArrayList<String>(4); + } + extensions.add(sb.toString()); + } else { +@@ -313,7 +313,7 @@ + clearExtensions(); + + if (!LocaleUtils.isEmpty(bcpExtensions)) { +- Set<CaseInsensitiveChar> done = new HashSet<>(bcpExtensions.size()); ++ Set<CaseInsensitiveChar> done = new HashSet<CaseInsensitiveChar>(bcpExtensions.size()); + for (String bcpExt : bcpExtensions) { + CaseInsensitiveChar key = new CaseInsensitiveChar(bcpExt); + // ignore duplicates +@@ -323,7 +323,7 @@ + setUnicodeLocaleExtension(bcpExt.substring(2)); + } else { + if (extensions == null) { +- extensions = new HashMap<>(4); ++ extensions = new HashMap<CaseInsensitiveChar,String>(4); + } + extensions.put(key, bcpExt.substring(2)); + } +@@ -334,7 +334,7 @@ + if (privateuse != null && privateuse.length() > 0) { + // privateuse string contains prefix, e.g. "x-abc-def" + if (extensions == null) { +- extensions = new HashMap<>(1); ++ extensions = new HashMap<CaseInsensitiveChar,String>(1); + } + extensions.put(new CaseInsensitiveChar(privateuse), privateuse.substring(2)); + } +@@ -442,19 +442,19 @@ + UnicodeLocaleExtension ue = (UnicodeLocaleExtension)e; + for (String uatr : ue.getUnicodeLocaleAttributes()) { + if (uattributes == null) { +- uattributes = new HashSet<>(4); ++ uattributes = new HashSet<CaseInsensitiveString>(4); + } + uattributes.add(new CaseInsensitiveString(uatr)); + } + for (String ukey : ue.getUnicodeLocaleKeys()) { + if (ukeywords == null) { +- ukeywords = new HashMap<>(4); ++ ukeywords = new HashMap<CaseInsensitiveString,String>(4); + } + ukeywords.put(new CaseInsensitiveString(ukey), ue.getUnicodeLocaleType(ukey)); + } + } else { + if (extensions == null) { +- extensions = new HashMap<>(4); ++ extensions = new HashMap<CaseInsensitiveChar,String>(4); + } + extensions.put(new CaseInsensitiveChar(key), e.getValue()); + } +@@ -604,7 +604,7 @@ + break; + } + if (uattributes == null) { +- uattributes = new HashSet<>(4); ++ uattributes = new HashSet<CaseInsensitiveString>(4); + } + uattributes.add(new CaseInsensitiveString(itr.current())); + itr.next(); +@@ -622,7 +622,7 @@ + assert(typeStart == -1 || typeEnd != -1); + type = (typeStart == -1) ? "" : subtags.substring(typeStart, typeEnd); + if (ukeywords == null) { +- ukeywords = new HashMap<>(4); ++ ukeywords = new HashMap<CaseInsensitiveString,String>(4); + } + ukeywords.put(key, type); + +@@ -652,7 +652,7 @@ + assert(typeStart == -1 || typeEnd != -1); + type = (typeStart == -1) ? "" : subtags.substring(typeStart, typeEnd); + if (ukeywords == null) { +- ukeywords = new HashMap<>(4); ++ ukeywords = new HashMap<CaseInsensitiveString,String>(4); + } + ukeywords.put(key, type); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LanguageTag.java openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LanguageTag.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java 2013-04-17 14:53:25.403553284 +0100 +@@ -62,7 +62,7 @@ + // Map contains grandfathered tags and its preferred mappings from + // http://www.ietf.org/rfc/rfc5646.txt + // Keys are lower-case strings. +- private static final Map<String, String[]> GRANDFATHERED = new HashMap<>(); ++ private static final Map<String, String[]> GRANDFATHERED = new HashMap<String,String[]>(); + + static { + // grandfathered = irregular ; non-redundant tags registered +@@ -257,7 +257,7 @@ + } + found = true; + if (extlangs.isEmpty()) { +- extlangs = new ArrayList<>(3); ++ extlangs = new ArrayList<String>(3); + } + extlangs.add(s); + sts.parseLength = itr.currentEnd(); +@@ -322,7 +322,7 @@ + } + found = true; + if (variants.isEmpty()) { +- variants = new ArrayList<>(3); ++ variants = new ArrayList<String>(3); + } + variants.add(s); + sts.parseLength = itr.currentEnd(); +@@ -365,7 +365,7 @@ + } + + if (extensions.isEmpty()) { +- extensions = new ArrayList<>(4); ++ extensions = new ArrayList<String>(4); + } + extensions.add(sb.toString()); + found = true; +@@ -462,7 +462,7 @@ + break; + } + if (variants == null) { +- variants = new ArrayList<>(); ++ variants = new ArrayList<String>(); + } + variants.add(var); // Do not canonicalize! + varitr.next(); +@@ -503,7 +503,7 @@ + privateuse = ext.getValue(); + } else { + if (extensions == null) { +- extensions = new ArrayList<>(); ++ extensions = new ArrayList<String>(); + } + extensions.add(locextKey.toString() + SEP + ext.getValue()); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java 2013-04-17 14:53:25.403553284 +0100 +@@ -81,7 +81,7 @@ + } + + // Build extension map +- SortedMap<Character, Extension> map = new TreeMap<>(); ++ SortedMap<Character, Extension> map = new TreeMap<Character,Extension>(); + if (hasExtension) { + for (Entry<CaseInsensitiveChar, String> ext : extensions.entrySet()) { + char key = LocaleUtils.toLower(ext.getKey().value()); +@@ -104,14 +104,14 @@ + SortedMap<String, String> ukmap = null; + + if (hasUAttributes) { +- uaset = new TreeSet<>(); ++ uaset = new TreeSet<String>(); + for (CaseInsensitiveString cis : uattributes) { + uaset.add(LocaleUtils.toLowerString(cis.value())); + } + } + + if (hasUKeywords) { +- ukmap = new TreeMap<>(); ++ ukmap = new TreeMap<String,String>(); + for (Entry<CaseInsensitiveString, String> kwd : ukeywords.entrySet()) { + String key = LocaleUtils.toLowerString(kwd.getKey().value()); + String type = LocaleUtils.toLowerString(kwd.getValue()); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java 2013-04-17 14:53:25.403553284 +0100 +@@ -38,14 +38,14 @@ + + public abstract class LocaleObjectCache<K, V> { + private ConcurrentMap<K, CacheEntry<K, V>> map; +- private ReferenceQueue<V> queue = new ReferenceQueue<>(); ++ private ReferenceQueue<V> queue = new ReferenceQueue<V>(); + + public LocaleObjectCache() { + this(16, 0.75f, 16); + } + + public LocaleObjectCache(int initialCapacity, float loadFactor, int concurrencyLevel) { +- map = new ConcurrentHashMap<>(initialCapacity, loadFactor, concurrencyLevel); ++ map = new ConcurrentHashMap<K, CacheEntry<K,V>>(initialCapacity, loadFactor, concurrencyLevel); + } + + public V get(K key) { +@@ -64,7 +64,7 @@ + return null; + } + +- CacheEntry<K, V> newEntry = new CacheEntry<>(key, newVal, queue); ++ CacheEntry<K, V> newEntry = new CacheEntry<K,V>(key, newVal, queue); + + entry = map.putIfAbsent(key, newEntry); + if (entry == null) { +@@ -81,7 +81,7 @@ + } + + protected V put(K key, V value) { +- CacheEntry<K, V> entry = new CacheEntry<>(key, value, queue); ++ CacheEntry<K, V> entry = new CacheEntry<K,V>(key, value, queue); + CacheEntry<K, V> oldEntry = map.put(key, entry); + return (oldEntry == null) ? null : oldEntry.get(); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java 2013-04-17 14:53:25.403553284 +0100 +@@ -59,7 +59,7 @@ + * set of provider implementations of a particular locale sensitive service. + */ + private static ConcurrentMap<Class<? extends LocaleServiceProvider>, LocaleServiceProviderPool> poolOfPools = +- new ConcurrentHashMap<>(); ++ new ConcurrentHashMap<Class<? extends LocaleServiceProvider>, LocaleServiceProviderPool>(); + + /** + * A Set containing locale service providers that implement the +@@ -264,7 +264,7 @@ + synchronized (LocaleServiceProviderPool.class) { + if (availableJRELocales == null) { + Locale[] allLocales = LocaleData.getAvailableLocales(); +- List<Locale> tmpList = new ArrayList<>(allLocales.length); ++ List<Locale> tmpList = new ArrayList<Locale>(allLocales.length); + for (Locale locale : allLocales) { + tmpList.add(getLookupLocale(locale)); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/logging/PlatformLogger.java openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/util/logging/PlatformLogger.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java 2013-04-17 14:53:25.403553284 +0100 +@@ -113,7 +113,7 @@ + + // Table of known loggers. Maps names to PlatformLoggers. + private static Map<String,WeakReference<PlatformLogger>> loggers = +- new HashMap<>(); ++ new HashMap<String,WeakReference<PlatformLogger>>(); + + /** + * Returns a PlatformLogger of a given name. +@@ -126,7 +126,7 @@ + } + if (log == null) { + log = new PlatformLogger(name); +- loggers.put(name, new WeakReference<>(log)); ++ loggers.put(name, new WeakReference<PlatformLogger>(log)); + } + return log; + } +@@ -469,7 +469,7 @@ + */ + static class JavaLogger extends LoggerProxy { + private static final Map<Integer, Object> levelObjects = +- new HashMap<>(); ++ new HashMap<Integer, Object>(); + + static { + if (LoggingSupport.isAvailable()) { +diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/Demo.java openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java +--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/Demo.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java 2013-04-17 14:53:25.403553284 +0100 +@@ -160,7 +160,7 @@ + } + + Action action = Action.valueOf(args[0]); +- Map<String, Object> env = env = new HashMap<>(); ++ Map<String, Object> env = env = new HashMap<String,Object>(); + if (action == Action.create) + env.put("create", "true"); + try (FileSystem fs = provider.newFileSystem(Paths.get(args[1]), env)) { +@@ -656,9 +656,9 @@ + + private static void fchCopy(Path src, Path dst) throws IOException + { +- Set<OpenOption> read = new HashSet<>(); ++ Set<OpenOption> read = new HashSet<OpenOption>(); + read.add(READ); +- Set<OpenOption> openwrite = new HashSet<>(); ++ Set<OpenOption> openwrite = new HashSet<OpenOption>(); + openwrite.add(CREATE_NEW); + openwrite.add(WRITE); + +@@ -676,9 +676,9 @@ + + private static void chCopy(Path src, Path dst) throws IOException + { +- Set<OpenOption> read = new HashSet<>(); ++ Set<OpenOption> read = new HashSet<OpenOption>(); + read.add(READ); +- Set<OpenOption> openwrite = new HashSet<>(); ++ Set<OpenOption> openwrite = new HashSet<OpenOption>(); + openwrite.add(CREATE_NEW); + openwrite.add(WRITE); + +diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java +--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java 2013-04-17 14:53:25.403553284 +0100 +@@ -142,8 +142,8 @@ + return new ZipCoder(Charset.defaultCharset()); + } + +- private final ThreadLocal<CharsetDecoder> decTL = new ThreadLocal<>(); +- private final ThreadLocal<CharsetEncoder> encTL = new ThreadLocal<>(); ++ private final ThreadLocal<CharsetDecoder> decTL = new ThreadLocal<CharsetDecoder>(); ++ private final ThreadLocal<CharsetEncoder> encTL = new ThreadLocal<CharsetEncoder>();r + + private CharsetDecoder decoder() { + CharsetDecoder dec = decTL.get(); +diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java +--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java 2013-04-17 14:53:25.403553284 +0100 +@@ -134,7 +134,7 @@ + throws IOException + { + ZipFileAttributes zfas = readAttributes(); +- LinkedHashMap<String, Object> map = new LinkedHashMap<>(); ++ LinkedHashMap<String, Object> map = new LinkedHashMap<String,Object>(); + if ("*".equals(attributes)) { + for (AttrID id : AttrID.values()) { + try { +diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java +--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java 2013-04-17 14:53:25.407553348 +0100 +@@ -157,7 +157,7 @@ + + @Override + public Iterable<Path> getRootDirectories() { +- ArrayList<Path> pathArr = new ArrayList<>(); ++ ArrayList<Path> pathArr = new ArrayList<Path>(); + pathArr.add(new ZipPath(this, new byte[]{'/'})); + return pathArr; + } +@@ -202,7 +202,7 @@ + + @Override + public Iterable<FileStore> getFileStores() { +- ArrayList<FileStore> list = new ArrayList<>(1); ++ ArrayList<FileStore> list = new ArrayList<FileStore>(1); + list.add(new ZipFileStore(new ZipPath(this, new byte[]{'/'}))); + return list; + } +@@ -268,7 +268,7 @@ + endWrite(); + } + if (!streams.isEmpty()) { // unlock and close all remaining streams +- Set<InputStream> copy = new HashSet<>(streams); ++ Set<InputStream> copy = new HashSet<InputStream>(streams); + for (InputStream is: copy) + is.close(); + } +@@ -396,7 +396,7 @@ + IndexNode inode = getInode(path); + if (inode == null) + throw new NotDirectoryException(getString(path)); +- List<Path> list = new ArrayList<>(); ++ List<Path> list = new ArrayList<Path>(); + IndexNode child = inode.child; + while (child != null) { + ZipPath zp = toZipPath(child.name); +@@ -825,7 +825,7 @@ + + // the ex-channel and ex-path that need to close when their outstanding + // input streams are all closed by the obtainers. +- private Set<ExChannelCloser> exChClosers = new HashSet<>(); ++ private Set<ExChannelCloser> exChClosers = new HashSet<ExChannelCloser>(); + + private Set<Path> tmppaths = Collections.synchronizedSet(new HashSet<Path>()); + private Path getTempPathForEntry(byte[] path) throws IOException { +@@ -1022,7 +1022,7 @@ + private byte[] initCEN() throws IOException { + end = findEND(); + if (end.endpos == 0) { +- inodes = new LinkedHashMap<>(10); ++ inodes = new LinkedHashMap<IndexNode,IndexNode>(10); + locpos = 0; + buildNodeTree(); + return null; // only END header present +@@ -1043,7 +1043,7 @@ + zerror("read CEN tables failed"); + } + // Iterate through the entries in the central directory +- inodes = new LinkedHashMap<>(end.centot + 1); ++ inodes = new LinkedHashMap<IndexNode,IndexNode>(end.centot + 1); + int pos = 0; + int limit = cen.length - ENDHDR; + while (pos < limit) { +@@ -1190,7 +1190,7 @@ + Path tmpFile = createTempFileInSameDirectoryAs(zfpath); + try (OutputStream os = new BufferedOutputStream(Files.newOutputStream(tmpFile, WRITE))) + { +- ArrayList<Entry> elist = new ArrayList<>(inodes.size()); ++ ArrayList<Entry> elist = new ArrayList(inodes.size()); + long written = 0; + byte[] buf = new byte[8192]; + Entry e = null; +@@ -1601,7 +1601,7 @@ + // Maxmum number of de/inflater we cache + private final int MAX_FLATER = 20; + // List of available Inflater objects for decompression +- private final List<Inflater> inflaters = new ArrayList<>(); ++ private final List<Inflater> inflaters = new ArrayList<Inflater>(); + + // Gets an inflater from the list of available inflaters or allocates + // a new one. +@@ -1630,7 +1630,7 @@ + } + + // List of available Deflater objects for compression +- private final List<Deflater> deflaters = new ArrayList<>(); ++ private final List<Deflater> deflaters = new ArrayList<Deflater>(); + + // Gets an deflater from the list of available deflaters or allocates + // a new one. +@@ -2340,7 +2340,7 @@ + private void buildNodeTree() throws IOException { + beginWrite(); + try { +- HashSet<IndexNode> dirs = new HashSet<>(); ++ HashSet<IndexNode> dirs = new HashSet<IndexNode>(); + IndexNode root = new IndexNode(ROOTPATH, -1); + inodes.put(root, root); + dirs.add(root); +diff -Nru openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java +--- openjdk-boot.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java 2013-04-17 14:53:25.407553348 +0100 +@@ -62,7 +62,7 @@ + public class ZipFileSystemProvider extends FileSystemProvider { + + +- private final Map<Path, ZipFileSystem> filesystems = new HashMap<>(); ++ private final Map<Path, ZipFileSystem> filesystems = new HashMap<Path,ZipFileSystem>(); + + public ZipFileSystemProvider() {} + +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java +--- openjdk-boot.orig/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java 2013-04-17 14:53:25.407553348 +0100 +@@ -68,7 +68,7 @@ + // We cache the C environment. This means that subsequent calls + // to putenv/setenv from C will not be visible from Java code. + byte[][] environ = environ(); +- theEnvironment = new HashMap<>(environ.length/2 + 3); ++ theEnvironment = new HashMap<Variable,Value>(environ.length/2 + 3); + // Read environment variables back to front, + // so that earlier variables override later ones. + for (int i = environ.length-1; i > 0; i-=2) +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java +--- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java 2013-04-17 14:52:22.434547238 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java 2013-04-17 14:53:39.871784437 +0100 +@@ -354,7 +354,7 @@ + * log against that map. The resulting map is then written back + * to the disk. + */ +- final List<Change> changeLog = new ArrayList<>(); ++ final List<Change> changeLog = new ArrayList<Change>(); + + /** + * Represents a change to a preference. +@@ -507,7 +507,7 @@ + }); + if (newNode) { + // These 2 things guarantee node will get wrtten at next flush/sync +- prefsCache = new TreeMap<>(); ++ prefsCache = new TreeMap<String, String>(); + nodeCreate = new NodeCreate(); + changeLog.add(nodeCreate); + } +@@ -550,7 +550,7 @@ + loadCache(); + } catch(Exception e) { + // assert lastSyncTime == 0; +- prefsCache = new TreeMap<>(); ++ prefsCache = new TreeMap<String, String>(); + } + } + +@@ -567,7 +567,7 @@ + AccessController.doPrivileged( + new PrivilegedExceptionAction<Void>() { + public Void run() throws BackingStoreException { +- Map<String, String> m = new TreeMap<>(); ++ Map<String, String> m = new TreeMap<String, String>(); + long newLastSyncTime = 0; + FileInputStream fis = null; + try { +@@ -581,7 +581,7 @@ + prefsFile.renameTo( new File( + prefsFile.getParentFile(), + "IncorrectFormatPrefs.xml")); +- m = new TreeMap<>(); ++ m = new TreeMap<String, String>(); + } else if (e instanceof FileNotFoundException) { + getLogger().warning("Prefs file removed in background " + + prefsFile.getPath()); +@@ -662,7 +662,7 @@ + return AccessController.doPrivileged( + new PrivilegedAction<String[]>() { + public String[] run() { +- List<String> result = new ArrayList<>(); ++ List<String> result = new ArrayList<String>(); + File[] dirContents = dir.listFiles(); + if (dirContents != null) { + for (int i = 0; i < dirContents.length; i++) +@@ -810,7 +810,7 @@ + } else if (lastSyncTime != 0 && !dir.exists()) { + // This node was removed in the background. Playback any changes + // against a virgin (empty) Map. +- prefsCache = new TreeMap<>(); ++ prefsCache = new TreeMap<String, String>(); + replayChanges(); + } + if (!changeLog.isEmpty()) { +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java 2013-04-17 14:53:25.407553348 +0100 +@@ -60,7 +60,7 @@ + int maxperkeyword, + int maxkeywords) + { +- LinkedList<String> ll = new LinkedList<>(); ++ LinkedList<String> ll = new LinkedList<String>(); + + try { + BufferedReader in = +@@ -200,7 +200,7 @@ + // no local domain so try fallback (RPC) domain or + // hostname + +- sl = new LinkedList<>(); ++ sl = new LinkedList<String>(); + String domain = fallbackDomain0(); + if (domain != null && domain.length() > 0) { + sl.add(domain); +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java 2013-04-17 14:53:25.407553348 +0100 +@@ -130,7 +130,7 @@ + pollArrayAddress = pollArray.address(); + wfd = init(); + if (OPEN_MAX > MAX_UPDATE_ARRAY_SIZE) +- eventsHigh = new HashMap<>(); ++ eventsHigh = new HashMap<Integer,Byte>(); + } + + void initInterrupt(int fd0, int fd1) { +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java 2013-04-17 14:53:25.407553348 +0100 +@@ -153,12 +153,12 @@ + + static { + HashMap<ControlSequence, String> tSequenceToEncodingMap = +- new HashMap<>(33, 1.0f); ++ new HashMap<ControlSequence, String>(33, 1.0f); + HashMap<ControlSequence, Boolean> tHighBitsMap = +- new HashMap<>(31, 1.0f); ++ new HashMap<ControlSequence, Boolean>(31, 1.0f); + HashMap<String, ControlSequence> tEncodingToSequenceMap = +- new HashMap<>(21, 1.0f); +- ArrayList<String> tEncodings = new ArrayList<>(21); ++ new HashMap<String, ControlSequence>(21, 1.0f); ++ ArrayList<String> tEncodings = new ArrayList<String>(21); + + if (!(isEncodingSupported("US-ASCII") && + isEncodingSupported("ISO-8859-1"))) +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java 2013-04-17 14:53:25.407553348 +0100 +@@ -53,7 +53,7 @@ + static final Set<String> supportedFileAttributeViews = + supportedFileAttributeViews(); + private static Set<String> supportedFileAttributeViews() { +- Set<String> result = new HashSet<>(); ++ Set<String> result = new HashSet<String>(); + result.addAll(standardFileAttributeViews()); + // additional Linux-specific views + result.add("dos"); +@@ -76,7 +76,7 @@ + * Returns object to iterate over the mount entries in the given fstab file. + */ + Iterable<UnixMountEntry> getMountEntries(String fstab) { +- ArrayList<UnixMountEntry> entries = new ArrayList<>(); ++ ArrayList<UnixMountEntry> entries = new ArrayList<UnixMountEntry>(); + try { + long fp = setmntent(fstab.getBytes(), "r".getBytes()); + try { +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java 2013-04-17 14:53:25.407553348 +0100 +@@ -63,7 +63,7 @@ + + // Parses buffer as array of NULL-terminated C strings. + private List<String> asList(long address, int size) { +- List<String> list = new ArrayList<>(); ++ List<String> list = new ArrayList<String>(); + int start = 0; + int pos = 0; + while (pos < size) { +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java 2013-04-17 14:53:25.407553348 +0100 +@@ -198,7 +198,7 @@ + * Decode the buffer, returning an ACL + */ + private static List<AclEntry> decode(long address, int n) { +- ArrayList<AclEntry> acl = new ArrayList<>(n); ++ ArrayList<AclEntry> acl = new ArrayList<AclEntry>(n); + for (int i=0; i<n; i++) { + long offset = address + i*SIZEOF_ACE_T; + +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java 2013-04-17 14:53:25.411553412 +0100 +@@ -76,7 +76,7 @@ + static final Set<String> supportedFileAttributeViews = + supportedFileAttributeViews(); + private static Set<String> supportedFileAttributeViews() { +- Set<String> result = new HashSet<>(); ++ Set<String> result = new HashSet<String>(); + result.addAll(standardFileAttributeViews()); + // additional Solaris-specific views + result.add("acl"); +@@ -101,7 +101,7 @@ + */ + @Override + Iterable<UnixMountEntry> getMountEntries() { +- ArrayList<UnixMountEntry> entries = new ArrayList<>(); ++ ArrayList<UnixMountEntry> entries = new ArrayList<UnixMountEntry>(); + try { + UnixPath mnttab = new UnixPath(this, "/etc/mnttab"); + long fp = fopen(mnttab, "r"); +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java 2013-04-17 14:53:25.411553412 +0100 +@@ -83,7 +83,7 @@ + } + + // read list of extended attributes +- List<String> list = new ArrayList<>(); ++ List<String> list = new ArrayList<String>(); + try { + byte[] name; + while ((name = readdir(dp)) != null) { +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java 2013-04-17 14:53:25.411553412 +0100 +@@ -194,7 +194,7 @@ + @Override + public Set<PosixFilePermission> permissions() { + int bits = (st_mode & UnixConstants.S_IAMB); +- HashSet<PosixFilePermission> perms = new HashSet<>(); ++ HashSet<PosixFilePermission> perms = new HashSet<PosixFilePermission>(); + + if ((bits & UnixConstants.S_IRUSR) > 0) + perms.add(PosixFilePermission.OWNER_READ); +diff -Nru openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessEnvironment.java openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java +--- openjdk-boot.orig/jdk/src/windows/classes/java/lang/ProcessEnvironment.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java 2013-04-17 14:53:25.411553412 +0100 +@@ -250,7 +250,8 @@ + envblock.substring(eql+1,end)); + } + +- theCaseInsensitiveEnvironment = new TreeMap<>(nameComparator); ++ theCaseInsensitiveEnvironment ++ = new TreeMap<String,String>(nameComparator); + theCaseInsensitiveEnvironment.putAll(theEnvironment); + } + +@@ -295,7 +296,8 @@ + // Only for use by ProcessImpl.start() + String toEnvironmentBlock() { + // Sort Unicode-case-insensitively by name +- List<Map.Entry<String,String>> list = new ArrayList<>(entrySet()); ++ List<Map.Entry<String,String>> list ++ = new ArrayList<Map.Entry<String,String>>(entrySet()); + Collections.sort(list, entryComparator); + + StringBuilder sb = new StringBuilder(size()*30); +diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java +--- openjdk-boot.orig/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java 2013-04-17 14:53:25.411553412 +0100 +@@ -63,7 +63,7 @@ + // Parse string that consists of token delimited by space or commas + // and return LinkedHashMap + private LinkedList<String> stringToList(String str) { +- LinkedList<String> ll = new LinkedList<>(); ++ LinkedList<String> ll = new LinkedList<String>(); + + // comma and space are valid delimites + StringTokenizer st = new StringTokenizer(str, ", "); +diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java +--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java 2013-04-17 14:53:25.411553412 +0100 +@@ -128,7 +128,7 @@ + } + + // iterate over roots, ignoring those that the security manager denies +- ArrayList<Path> result = new ArrayList<>(); ++ ArrayList<Path> result = new ArrayList<Path>(); + SecurityManager sm = System.getSecurityManager(); + for (int i = 0; i <= 25; i++) { // 0->A, 1->B, 2->C... + if ((drives & (1 << i)) != 0) { +diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java +--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java 2013-04-17 14:53:25.411553412 +0100 +@@ -575,7 +575,7 @@ + // generate offset array + private void initOffsets() { + if (offsets == null) { +- ArrayList<Integer> list = new ArrayList<>(); ++ ArrayList<Integer> list = new ArrayList<Integer>(); + if (isEmpty()) { + // empty path considered to have one name element + list.add(0); +diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java +--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java 2013-04-17 14:53:25.411553412 +0100 +@@ -378,7 +378,7 @@ + AclInformation aclInfo = GetAclInformation(aclAddress); + aceCount = aclInfo.aceCount(); + } +- ArrayList<AclEntry> result = new ArrayList<>(aceCount); ++ ArrayList<AclEntry> result = new ArrayList<AclEntry>(aceCount); + + // decode each of the ACEs to AclEntry objects + for (int i=0; i<aceCount; i++) { +diff -Nru openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java +--- openjdk-boot.orig/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java 2013-04-17 14:53:25.411553412 +0100 +@@ -65,7 +65,7 @@ + + // enumerates the file streams using FindFirstStream/FindNextStream APIs. + private List<String> listUsingStreamEnumeration() throws IOException { +- List<String> list = new ArrayList<>(); ++ List<String> list = new ArrayList<String>(); + try { + FirstStream first = FindFirstStream(file.getPathForWin32Calls()); + if (first != null) { +@@ -114,7 +114,7 @@ + NativeBuffer buffer = null; + + // result with names of alternative data streams +- final List<String> list = new ArrayList<>(); ++ final List<String> list = new ArrayList<String>(); + + try { + buffer = NativeBuffers.getNativeBuffer(BUFFER_SIZE); +@@ -216,7 +216,7 @@ + // wrap with channel + FileChannel fc = null; + try { +- Set<OpenOption> opts = new HashSet<>(); ++ Set<OpenOption> opts = new HashSet<OpenOption>(); + opts.add(READ); + if (!followLinks) + opts.add(WindowsChannelFactory.OPEN_REPARSE_POINT); +@@ -243,7 +243,7 @@ + // wrap with channel + FileChannel fc = null; + try { +- Set<OpenOption> opts = new HashSet<>(); ++ Set<OpenOption> opts = new HashSet<OpenOption>(); + opts.add(READ); + if (!followLinks) + opts.add(WindowsChannelFactory.OPEN_REPARSE_POINT); +@@ -298,7 +298,7 @@ + x.rethrowAsIOException(file); + } + try { +- Set<OpenOption> opts = new HashSet<>(); ++ Set<OpenOption> opts = new HashSet<OpenOption>(); + if (!followLinks) + opts.add(WindowsChannelFactory.OPEN_REPARSE_POINT); + opts.add(CREATE); +diff -Nru openjdk-boot.orig/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java +--- openjdk-boot.orig/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java 2013-04-17 14:53:25.411553412 +0100 +@@ -56,7 +56,7 @@ + public static void main(String[] args) { + System.err.println("\n Regression test for bug 6541870\n"); + try { +- ArrayList<NPEProvoker> list = new ArrayList<>(); ++ ArrayList<NPEProvoker> list = new ArrayList<NPEProvoker>(); + list.add(new NPEProvoker()); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); +diff -Nru openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java +--- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java 2013-04-17 14:53:25.411553412 +0100 +@@ -50,7 +50,7 @@ + private final Injector[] after = new Injector[256]; + private final String className; + private final String methodName; +- private final Map<Integer,byte[]> snippets = new HashMap<>(); ++ private final Map<Integer,byte[]> snippets = new HashMap<Integer,byte[]>(); + + private int pos; + private int newPos; +diff -Nru openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java +--- openjdk-boot.orig/jdk/test/java/lang/instrument/ilib/Inject.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java 2013-04-17 14:53:25.411553412 +0100 +@@ -107,7 +107,7 @@ + class IndexedInjector implements TrackerInjector { + int counter = 0; + int tracker; +- List<Info> infoList = new ArrayList<>(); ++ List<Info> infoList = new ArrayList<Info>(); + + public int stackSize(int currentSize) { + return currentSize + 1; +diff -Nru openjdk-boot.orig/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java +--- openjdk-boot.orig/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java 2013-04-17 14:53:25.415553475 +0100 +@@ -103,7 +103,7 @@ + } + } + +- private static final Set<Type> checking = new HashSet<>(); ++ private static final Set<Type> checking = new HashSet<Type>(); + + private static void check(Type t, String what) { + if (t == null || !checking.add(t)) +diff -Nru openjdk-boot.orig/jdk/test/java/util/logging/ClassLoaderLeakTest.java openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java +--- openjdk-boot.orig/jdk/test/java/util/logging/ClassLoaderLeakTest.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java 2013-04-17 14:53:25.415553475 +0100 +@@ -89,7 +89,7 @@ + + MyClassLoader appClassLoader = new MyClassLoader(urls, "test0"); + WeakReference<MyClassLoader> ref = +- new WeakReference<>(appClassLoader); ++ new WeakReference<MyClassLoader>(appClassLoader); + + + Thread appThread = new Thread(appsThreadGroup, launcher, "AppThread-0"); +diff -Nru openjdk-boot.orig/jdk/test/java/util/Random/DistinctSeeds.java openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java +--- openjdk-boot.orig/jdk/test/java/util/Random/DistinctSeeds.java 2013-04-15 23:41:13.000000000 +0100 ++++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java 2013-04-17 14:53:25.415553475 +0100 +@@ -59,7 +59,7 @@ + } + } + final int threadCount = 2; +- List<RandomCollector> collectors = new ArrayList<>(); ++ List<RandomCollector> collectors = new ArrayList<RandomCollector>(); + List<Thread> threads = new ArrayList<Thread>(); + for (int i = 0; i < threadCount; i++) { + RandomCollector r = new RandomCollector(); diff --git a/patches/boot/ecj-fphexconstants.patch b/patches/boot/ecj-fphexconstants.patch new file mode 100644 index 0000000..c8472fe --- /dev/null +++ b/patches/boot/ecj-fphexconstants.patch @@ -0,0 +1,60 @@ +diff -Nru ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Double.java openjdk-boot/jdk/src/share/classes/java/lang/Double.java +--- ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Double.java 2009-10-30 16:49:00.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Double.java 2009-10-30 16:59:16.000000000 +0000 +@@ -76,7 +76,7 @@ + * {@code 0x1.fffffffffffffP+1023} and also equal to + * {@code Double.longBitsToDouble(0x7fefffffffffffffL)}. + */ +- public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308 ++ public static final double MAX_VALUE = 1.7976931348623157e+308; + + /** + * A constant holding the smallest positive normal value of type +@@ -86,7 +86,7 @@ + * + * @since 1.6 + */ +- public static final double MIN_NORMAL = 0x1.0p-1022; // 2.2250738585072014E-308 ++ public static final double MIN_NORMAL = 2.2250738585072014E-308; + + /** + * A constant holding the smallest positive nonzero value of type +@@ -95,7 +95,7 @@ + * {@code 0x0.0000000000001P-1022} and also equal to + * {@code Double.longBitsToDouble(0x1L)}. + */ +- public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 4.9e-324 ++ public static final double MIN_VALUE = 4.9e-324; + + /** + * Maximum exponent a finite {@code double} variable may have. +diff -Nru ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Float.java openjdk-boot/jdk/src/share/classes/java/lang/Float.java +--- ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Float.java 2009-10-30 16:49:00.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Float.java 2009-10-30 16:59:16.000000000 +0000 +@@ -76,7 +76,7 @@ + * {@code 0x1.fffffeP+127f} and also equal to + * {@code Float.intBitsToFloat(0x7f7fffff)}. + */ +- public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f ++ public static final float MAX_VALUE = 3.4028235e+38f; + + /** + * A constant holding the smallest positive normal value of type +@@ -86,7 +86,7 @@ + * + * @since 1.6 + */ +- public static final float MIN_NORMAL = 0x1.0p-126f; // 1.17549435E-38f ++ public static final float MIN_NORMAL = 1.17549435E-38f; + + /** + * A constant holding the smallest positive nonzero value of type +@@ -94,7 +94,7 @@ + * hexadecimal floating-point literal {@code 0x0.000002P-126f} + * and also equal to {@code Float.intBitsToFloat(0x1)}. + */ +- public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f ++ public static final float MIN_VALUE = 1.4e-45f; + + /** + * Maximum exponent a finite {@code float} variable may have. It diff --git a/patches/boot/ecj-multicatch.patch b/patches/boot/ecj-multicatch.patch new file mode 100644 index 0000000..ce248c9 --- /dev/null +++ b/patches/boot/ecj-multicatch.patch @@ -0,0 +1,235 @@ +--- openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java.orig ++++ openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java +@@ -91,7 +91,10 @@ + requireNonNull(csn, "charsetName"); + try { + return Charset.forName(csn); +- } catch (IllegalCharsetNameException|UnsupportedCharsetException unused) { ++ } catch (IllegalCharsetNameException unused) { ++ // UnsupportedEncodingException should be thrown ++ throw new UnsupportedEncodingException(csn); ++ } catch (UnsupportedCharsetException unused) { + // UnsupportedEncodingException should be thrown + throw new UnsupportedEncodingException(csn); + } +--- openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java.orig ++++ openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java +@@ -85,7 +85,10 @@ + Objects.requireNonNull(csn, "charsetName"); + try { + return Charset.forName(csn); +- } catch (IllegalCharsetNameException|UnsupportedCharsetException unused) { ++ } catch (IllegalCharsetNameException unused) { ++ // UnsupportedEncodingException should be thrown ++ throw new UnsupportedEncodingException(csn); ++ } catch (UnsupportedCharsetException unused) { + // UnsupportedEncodingException should be thrown + throw new UnsupportedEncodingException(csn); + } +--- openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java.orig ++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java +@@ -606,7 +606,9 @@ + // create an MXBean proxy + return JMX.newMXBeanProxy(connection, objName, mxbeanInterface, + emitter); +- } catch (InstanceNotFoundException|MalformedObjectNameException e) { ++ } catch (InstanceNotFoundException e) { ++ throw new IllegalArgumentException(e); ++ } catch (MalformedObjectNameException e) { + throw new IllegalArgumentException(e); + } + } +--- openjdk-boot/jdk/src/share/classes/java/util/Formatter.java.orig ++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java +@@ -1857,7 +1857,10 @@ + Objects.requireNonNull(csn, "charsetName"); + try { + return Charset.forName(csn); +- } catch (IllegalCharsetNameException|UnsupportedCharsetException unused) { ++ } catch (IllegalCharsetNameException unused) { ++ // UnsupportedEncodingException should be thrown ++ throw new UnsupportedEncodingException(csn); ++ } catch (UnsupportedCharsetException unused) { + // UnsupportedEncodingException should be thrown + throw new UnsupportedEncodingException(csn); + } +--- openjdk-boot/jdk/src/share/classes/java/util/Scanner.java.orig ++++ openjdk-boot/jdk/src/share/classes/java/util/Scanner.java +@@ -633,7 +633,10 @@ + Objects.requireNonNull(csn, "charsetName"); + try { + return Charset.forName(csn); +- } catch (IllegalCharsetNameException|UnsupportedCharsetException e) { ++ } catch (IllegalCharsetNameException e) { ++ // IllegalArgumentException should be thrown ++ throw new IllegalArgumentException(e); ++ } catch (UnsupportedCharsetException e) { + // IllegalArgumentException should be thrown + throw new IllegalArgumentException(e); + } +@@ -684,7 +687,9 @@ + Objects.requireNonNull(charsetName, "charsetName"); + try { + return Charset.forName(charsetName).newDecoder(); +- } catch (IllegalCharsetNameException|UnsupportedCharsetException unused) { ++ } catch (IllegalCharsetNameException unused) { ++ throw new IllegalArgumentException(charsetName); ++ } catch (UnsupportedCharsetException unused) { + throw new IllegalArgumentException(charsetName); + } + } +--- openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java.orig ++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java +@@ -676,7 +676,11 @@ + IGNORE = IMPL_LOOKUP.findStatic(THIS_CLASS, "ignore", ignoreType); + EMPTY = IMPL_LOOKUP.findStatic(THIS_CLASS, "empty", ignoreType.dropParameterTypes(0, 1)); + NEW_ARRAY = IMPL_LOOKUP.findStatic(THIS_CLASS, "newArray", MethodType.methodType(Object[].class, int.class)); +- } catch (NoSuchMethodException | IllegalAccessException ex) { ++ } catch (NoSuchMethodException ex) { ++ Error err = new InternalError("uncaught exception"); ++ err.initCause(ex); ++ throw err; ++ } catch (IllegalAccessException ex) { + Error err = new InternalError("uncaught exception"); + err.initCause(ex); + throw err; +--- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java.orig ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/PAData.java +@@ -280,7 +280,9 @@ + .append(info.getSalt()) + .append('\n'); + } +- } catch (IOException|Asn1Exception e) { ++ } catch (Asn1Exception e) { ++ sb.append("\t <Unparseable PA-ETYPE-INFO>\n"); ++ } catch (IOException e) { + sb.append("\t <Unparseable PA-ETYPE-INFO>\n"); + } + } +@@ -307,7 +309,9 @@ + .encodeBuffer(s2kparams)); + } + } +- } catch (IOException|Asn1Exception e) { ++ } catch (IOException e) { ++ sb.append("\t <Unparseable PA-ETYPE-INFO>\n"); ++ } catch (Asn1Exception e) { + sb.append("\t <Unparseable PA-ETYPE-INFO>\n"); + } + } +--- openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java.orig ++++ openjdk-boot/jdk/src/share/classes/sun/text/bidi/BidiBase.java +@@ -3477,7 +3477,9 @@ + try { + Field f = clazz.getField(name); + return f.get(null); +- } catch (NoSuchFieldException | IllegalAccessException x) { ++ } catch (NoSuchFieldException x) { ++ throw new AssertionError(x); ++ } catch (IllegalAccessException x) { + throw new AssertionError(x); + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java 2012-03-22 10:00:56.029260268 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java 2012-03-22 10:02:41.275789667 +0000 +@@ -94,7 +94,7 @@ + && mainClass.indexOf(arg.getProcessSubstring()) != -1) { + pids.add(vmd.id()); + } +- } catch (MonitorException|URISyntaxException e) { ++ } catch (MonitorException e) { + if (e.getMessage() != null) { + System.err.println(e.getMessage()); + } else { +@@ -105,7 +105,18 @@ + e.printStackTrace(); + } + } +- } ++ } catch (URISyntaxException e) { ++ if (e.getMessage() != null) { ++ System.err.println(e.getMessage()); ++ } else { ++ Throwable cause = e.getCause(); ++ if ((cause != null) && (cause.getMessage() != null)) { ++ System.err.println(cause.getMessage()); ++ } else { ++ e.printStackTrace(); ++ } ++ } ++ } + } + if (pids.isEmpty()) { + System.err.println("Could not find any processes matching : '" +@@ -185,9 +196,11 @@ + try { + String mainClass = getMainClass(vmd); + return mainClass != null && mainClass.equals(JCmd.class.getName()); +- } catch (URISyntaxException|MonitorException ex) { ++ } catch (URISyntaxException ex) { + return false; +- } ++ } catch (MonitorException ex) { ++ return false; ++ } + } + + private static String getMainClass(VirtualMachineDescriptor vmd) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java 2012-05-02 20:50:17.549643066 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java 2012-05-02 20:52:03.435320716 +0100 +@@ -65,7 +65,10 @@ + throw new RuntimeException("Duplicate untrusted certificate: " + + cert.getSubjectX500Principal()); + } +- } catch (CertificateException | IOException e) { ++ } catch (CertificateException e) { ++ throw new RuntimeException( ++ "Incorrect untrusted certificate: " + alias, e); ++ } catch (IOException e) { + throw new RuntimeException( + "Incorrect untrusted certificate: " + alias, e); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java openjdk-boot/jdk/src/share/classes/java/util/HashMap.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/HashMap.java 2012-06-08 17:12:17.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java 2012-06-11 14:54:16.123125601 +0100 +@@ -237,7 +237,9 @@ + UNSAFE = sun.misc.Unsafe.getUnsafe(); + HASHSEED_OFFSET = UNSAFE.objectFieldOffset( + HashMap.class.getDeclaredField("hashSeed")); +- } catch (NoSuchFieldException | SecurityException e) { ++ } catch (NoSuchFieldException e ) { ++ throw new Error("Failed to record hashSeed offset", e); ++ } catch (SecurityException e) { + throw new Error("Failed to record hashSeed offset", e); + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/Hashtable.java 2012-06-08 17:12:17.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java 2012-06-11 14:54:40.275511896 +0100 +@@ -227,7 +227,9 @@ + UNSAFE = sun.misc.Unsafe.getUnsafe(); + HASHSEED_OFFSET = UNSAFE.objectFieldOffset( + Hashtable.class.getDeclaredField("hashSeed")); +- } catch (NoSuchFieldException | SecurityException e) { ++ } catch (NoSuchFieldException e) { ++ throw new Error("Failed to record hashSeed offset", e); ++ } catch (SecurityException e) { + throw new Error("Failed to record hashSeed offset", e); + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java 2013-02-02 16:14:27.971429681 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java 2013-02-02 16:14:58.283922372 +0000 +@@ -738,7 +738,9 @@ + private static Object newInstance(Constructor<?> cons, InvocationHandler h) { + try { + return cons.newInstance(new Object[] {h} ); +- } catch (IllegalAccessException | InstantiationException e) { ++ } catch (IllegalAccessException e) { ++ throw new InternalError(e.toString()); ++ } catch (InstantiationException e) { + throw new InternalError(e.toString()); + } catch (InvocationTargetException e) { + Throwable t = e.getCause(); diff --git a/patches/boot/ecj-opts.patch b/patches/boot/ecj-opts.patch new file mode 100644 index 0000000..99ed532 --- /dev/null +++ b/patches/boot/ecj-opts.patch @@ -0,0 +1,12 @@ +diff -Nru openjdk-boot.orig/jdk/make/java/nio/Makefile openjdk-boot/jdk/make/java/nio/Makefile +--- openjdk-boot.orig/jdk/make/java/nio/Makefile 2009-12-13 18:43:31.000000000 +0000 ++++ openjdk-boot/jdk/make/java/nio/Makefile 2009-12-13 19:03:31.000000000 +0000 +@@ -31,7 +31,7 @@ + PACKAGE = java.nio + LIBRARY = nio + PRODUCT = java +-OTHER_JAVACFLAGS += -Xmaxwarns 1000 -Xlint:serial -Werror ++OTHER_JAVACFLAGS += -Xlint:serial -Werror + include $(BUILDDIR)/common/Defs.gmk + + NIO_SRC = $(SHARE_SRC)/classes/java/nio diff --git a/patches/boot/ecj-stringswitch.patch b/patches/boot/ecj-stringswitch.patch new file mode 100644 index 0000000..085c4d0 --- /dev/null +++ b/patches/boot/ecj-stringswitch.patch @@ -0,0 +1,493 @@ +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-02-17 18:47:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2013-02-20 01:19:23.757194433 +0000 +@@ -350,18 +350,15 @@ + if (attrCommands != null) { + Attribute.Layout lkey = Attribute.keyForLookup(ctype, name); + String cmd = attrCommands.get(lkey); +- if (cmd != null) { +- switch (cmd) { +- case "pass": +- String message1 = "passing attribute bitwise in " + h; +- throw new Attribute.FormatException(message1, ctype, name, cmd); +- case "error": +- String message2 = "attribute not allowed in " + h; +- throw new Attribute.FormatException(message2, ctype, name, cmd); +- case "strip": +- skip(length, name + " attribute in " + h); +- continue; +- } ++ if ("pass".equals(cmd)) { ++ String message1 = "passing attribute bitwise in " + h; ++ throw new Attribute.FormatException(message1, ctype, name, cmd); ++ } else if ("error".equals(cmd)) { ++ String message2 = "attribute not allowed in " + h; ++ throw new Attribute.FormatException(message2, ctype, name, cmd); ++ } else if ("strip".equals(cmd)) { ++ skip(length, name + " attribute in " + h); ++ continue; + } + } + // Find canonical instance of the requested attribute. +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-02-17 18:47:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2013-02-20 01:19:23.757194433 +0000 +@@ -73,16 +73,14 @@ + { + // Non-standard, undocumented "--unpack" switch enables unpack mode. + String arg0 = av.isEmpty() ? "" : av.get(0); +- switch (arg0) { +- case "--pack": ++ if ("--pack".equals(arg0)) + av.remove(0); +- break; +- case "--unpack": +- av.remove(0); +- doPack = false; +- doUnpack = true; +- break; +- } ++ else if ("--unpack".equals(arg0)) ++ { ++ av.remove(0); ++ doPack = false; ++ doUnpack = true; ++ } + } + + // Collect engine properties here: +@@ -182,21 +180,16 @@ + // Deal with remaining non-engine properties: + for (String opt : avProps.keySet()) { + String val = avProps.get(opt); +- switch (opt) { +- case "--repack": +- doRepack = true; +- break; +- case "--no-gzip": +- doZip = (val == null); +- break; +- case "--log-file=": +- logFile = val; +- break; +- default: +- throw new InternalError(MessageFormat.format( +- RESOURCE.getString(DriverResource.BAD_OPTION), +- opt, avProps.get(opt))); +- } ++ if ("--repack".equals(opt)) ++ doRepack = true; ++ else if ("--no-gzip".equals(opt)) ++ doZip = (val == null); ++ else if ("--log-file=".equals(opt)) ++ logFile = val; ++ else ++ throw new InternalError(MessageFormat.format( ++ RESOURCE.getString(DriverResource.BAD_OPTION), ++ opt, avProps.get(opt))); + } + + 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-02-17 18:47:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2013-02-20 01:19:23.757194433 +0000 +@@ -1107,30 +1107,25 @@ + // what is one of { Debug, Compile, Constant, Exceptions, InnerClasses } + if (verbose > 0) + Utils.log.info("Stripping "+what.toLowerCase()+" data and attributes..."); +- switch (what) { +- case "Debug": +- strip("SourceFile"); +- strip("LineNumberTable"); +- strip("LocalVariableTable"); +- strip("LocalVariableTypeTable"); +- break; +- case "Compile": +- // Keep the inner classes normally. +- // Although they have no effect on execution, +- // the Reflection API exposes them, and JCK checks them. +- // NO: // strip("InnerClasses"); +- strip("Deprecated"); +- strip("Synthetic"); +- break; +- case "Exceptions": +- // Keep the exceptions normally. +- // Although they have no effect on execution, +- // the Reflection API exposes them, and JCK checks them. +- strip("Exceptions"); +- break; +- case "Constant": +- stripConstantFields(); +- break; ++ if ("Debug".equals(what)) { ++ strip("SourceFile"); ++ strip("LineNumberTable"); ++ strip("LocalVariableTable"); ++ strip("LocalVariableTypeTable"); ++ } else if ("Compile".equals(what)) { ++ // Keep the inner classes normally. ++ // Although they have no effect on execution, ++ // the Reflection API exposes them, and JCK checks them. ++ // NO: // strip("InnerClasses"); ++ strip("Deprecated"); ++ strip("Synthetic"); ++ } else if ("Exceptions".equals(what)) { ++ // Keep the exceptions normally. ++ // Although they have no effect on execution, ++ // the Reflection API exposes them, and JCK checks them. ++ strip("Exceptions"); ++ } else if ("Constant".equals(what)) { ++ stripConstantFields(); + } + } + +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-02-17 18:47:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java 2013-02-20 01:19:23.757194433 +0000 +@@ -64,17 +64,23 @@ + + protected NTLM(String version) throws NTLMException { + if (version == null) version = "LMv2/NTLMv2"; +- switch (version) { +- case "LM": v = NTLM; writeLM = true; writeNTLM = false; break; +- case "NTLM": v = NTLM; writeLM = false; writeNTLM = true; break; +- case "LM/NTLM": v = NTLM; writeLM = writeNTLM = true; break; +- case "NTLM2": v = NTLM2; writeLM = writeNTLM = true; break; +- case "LMv2": v = NTLMv2; writeLM = true; writeNTLM = false; break; +- case "NTLMv2": v = NTLMv2; writeLM = false; writeNTLM = true; break; +- case "LMv2/NTLMv2": v = NTLMv2; writeLM = writeNTLM = true; break; +- default: throw new NTLMException(NTLMException.BAD_VERSION, +- "Unknown version " + version); +- } ++ if (version.equals("LM")) ++ { v = NTLM; writeLM = true; writeNTLM = false; } ++ else if (version.equals("NTLM")) ++ { v = NTLM; writeLM = false; writeNTLM = true; } ++ else if (version.equals("LM/NTLM")) ++ { v = NTLM; writeLM = writeNTLM = true; } ++ else if (version.equals("NTLM2")) ++ { v = NTLM2; writeLM = writeNTLM = true; } ++ else if (version.equals("LMv2")) ++ { v = NTLMv2; writeLM = true; writeNTLM = false; } ++ else if (version.equals("NTLMv2")) ++ { v = NTLMv2; writeLM = false; writeNTLM = true; } ++ else if (version.equals("LMv2/NTLMv2")) ++ { v = NTLMv2; writeLM = writeNTLM = true; } ++ else ++ throw new NTLMException(NTLMException.BAD_VERSION, ++ "Unknown version " + version); + try { + 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-02-17 18:47:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-02-20 01:35:29.564524781 +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()) { +- case "doPrivileged": +- case "doPrivilegedWithCombiner": ++ String memName = mem.getName(); ++ if ("doPrivileged".equals(memName) || ++ "doPrivilegedWithCombiner".equals(memName)) { + return defc == java.security.AccessController.class; +- case "checkMemberAccess": ++ } else if ("checkMemberAccess".equals(memName)) { + return canBeCalledVirtual(mem, java.lang.SecurityManager.class); +- case "getUnsafe": ++ } else if ("getUnsafe".equals(memName)) { + return defc == sun.misc.Unsafe.class; +- case "lookup": ++ } 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; +- case "invoke": ++ } else if ("invoke".equals(memName)) { + return defc == java.lang.reflect.Method.class; +- case "get": +- case "getBoolean": +- case "getByte": +- case "getChar": +- case "getShort": +- case "getInt": +- case "getLong": +- case "getFloat": +- case "getDouble": +- case "set": +- case "setBoolean": +- case "setByte": +- case "setChar": +- case "setShort": +- case "setInt": +- 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; +- case "newInstance": ++ } else if ("newInstance".equals(memName)) { + if (defc == java.lang.reflect.Constructor.class) return true; + if (defc == java.lang.Class.class) return true; +- break; +- case "forName": +- case "getClassLoader": +- case "getClasses": +- case "getFields": +- case "getMethods": +- case "getConstructors": +- case "getDeclaredClasses": +- case "getDeclaredFields": +- case "getDeclaredMethods": +- case "getDeclaredConstructors": +- case "getField": +- case "getMethod": +- case "getConstructor": +- 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 "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; +- 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; +- break; +- case "getContextClassLoader": ++ } else if ("getContextClassLoader".equals(memName)) { + return canBeCalledVirtual(mem, java.lang.Thread.class); +- case "getPackage": +- case "getPackages": ++ } else if ("getPackage".equals(memName) || ++ "getPackages".equals(memName)) { + return defc == java.lang.Package.class; +- case "getParent": +- case "getSystemClassLoader": ++ } else if ("getParent".equals(memName) || ++ "getSystemClassLoader".equals(memName)) { + return defc == java.lang.ClassLoader.class; +- case "load": +- case "loadLibrary": ++ } else if ("load".equals(memName) || ++ "loadLibrary".equals(memName)) { + if (defc == java.lang.Runtime.class) return true; + if (defc == java.lang.System.class) return true; +- break; +- case "getCallerClass": ++ } else if ("getCallerClass".equals(memName)) { + if (defc == sun.reflect.Reflection.class) return true; + if (defc == java.lang.System.class) return true; +- break; +- case "getCallerClassLoader": ++ } else if ("getCallerClassLoader".equals(memName)) { + return defc == java.lang.ClassLoader.class; +- case "registerAsParallelCapable": ++ } else if ("registerAsParallelCapable".equals(memName)) { + return canBeCalledVirtual(mem, java.lang.ClassLoader.class); +- case "getProxyClass": +- case "newProxyInstance": ++ } else if ("getProxyClass".equals(memName) || ++ "newProxyInstance".equals(memName)) { + return defc == java.lang.reflect.Proxy.class; +- case "asInterfaceInstance": ++ } else if ("asInterfaceInstance".equals(memName)) { + return defc == java.lang.invoke.MethodHandleProxies.class; +- case "getBundle": +- case "clearCache": ++ } else if ("getBundle".equals(memName) || ++ "clearCache".equals(memName)) { + return defc == java.util.ResourceBundle.class; + } + return false; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java 2013-02-17 18:47:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java 2013-02-20 01:19:23.757194433 +0000 +@@ -268,14 +268,16 @@ + + private static + boolean isObjectMethod(Method m) { +- switch (m.getName()) { +- case "toString": ++ String name = m.getName(); ++ if ("toString".equals(name)) { + return (m.getReturnType() == String.class + && m.getParameterTypes().length == 0); +- case "hashCode": ++ } ++ if ("hashCode".equals(name)) { + return (m.getReturnType() == int.class + && m.getParameterTypes().length == 0); +- case "equals": ++ } ++ if ("equals".equals(name)) { + return (m.getReturnType() == boolean.class + && m.getParameterTypes().length == 1 + && m.getParameterTypes()[0] == Object.class); +@@ -286,12 +288,14 @@ + private static + Object callObjectMethod(Object self, Method m, Object[] args) { + assert(isObjectMethod(m)) : m; +- switch (m.getName()) { +- case "toString": ++ String name = m.getName(); ++ if ("toString".equals(name)) { + return self.getClass().getName() + "@" + Integer.toHexString(self.hashCode()); +- case "hashCode": ++ } ++ if ("hashCode".equals(name)) { + return System.identityHashCode(self); +- case "equals": ++ } ++ if ("equals".equals(name)) { + return (self == args[0]); + } + return null; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2013-02-17 18:47:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2013-02-20 01:19:23.757194433 +0000 +@@ -119,24 +119,20 @@ + String optStr = (opts.length > 1 && opts[1] != null) + ? opts[1].trim() + : "all"; +- switch (optStr) { +- case "vm": ++ if ("vm".equals(optStr)) ++ printVmSettings(ostream, initialHeapSize, maxHeapSize, ++ stackSize, isServer); ++ else if ("properties".equals(optStr)) ++ printProperties(ostream); ++ else if ("locale".equals(optStr)) ++ printLocale(ostream); ++ else ++ { + printVmSettings(ostream, initialHeapSize, maxHeapSize, +- stackSize, isServer); +- break; +- case "properties": ++ stackSize, isServer); + printProperties(ostream); +- break; +- case "locale": + printLocale(ostream); +- break; +- default: +- printVmSettings(ostream, initialHeapSize, maxHeapSize, +- stackSize, isServer); +- printProperties(ostream); +- printLocale(ostream); +- break; +- } ++ } + } + + /* +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java 2013-02-17 18:47:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java 2013-02-20 01:19:23.757194433 +0000 +@@ -378,19 +378,23 @@ + GE; // ">=" + + static Operator of(String s) { +- switch (s) { +- case "==": +- return EQ; +- case "!=": +- return NE; +- case "<": +- return LT; +- case "<=": +- return LE; +- case ">": +- return GT; +- case ">=": +- return GE; ++ if ("==".equals(s)) { ++ return EQ; ++ } ++ if ("!=".equals(s)) { ++ return NE; ++ } ++ if ("<".equals(s)) { ++ return LT; ++ } ++ if ("<=".equals(s)) { ++ return LE; ++ } ++ if (">".equals(s)) { ++ return GT; ++ } ++ if (">=".equals(s)) { ++ return GE; + } + + throw new IllegalArgumentException( diff --git a/patches/boot/ecj-trywithresources.patch b/patches/boot/ecj-trywithresources.patch new file mode 100644 index 0000000..fc6781f --- /dev/null +++ b/patches/boot/ecj-trywithresources.patch @@ -0,0 +1,1085 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2013-02-02 13:23:34.755400199 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2013-02-02 15:27:16.682037474 +0000 +@@ -743,7 +743,9 @@ + + private void dumpBand() throws IOException { + assert(optDumpBands); +- try (PrintStream ps = new PrintStream(getDumpStream(this, ".txt"))) { ++ PrintStream ps = null; ++ try { ++ ps = new PrintStream(getDumpStream(this, ".txt")); + String irr = (bandCoding == regularCoding) ? "" : " irregular"; + ps.print("# length="+length+ + " size="+outputSize()+ +@@ -758,9 +760,19 @@ + } + printArrayTo(ps, values, 0, length); + } +- try (OutputStream ds = getDumpStream(this, ".bnd")) { ++ finally { ++ if (ps != null) ++ ps.close(); ++ } ++ OutputStream ds = null; ++ try { ++ ds = getDumpStream(this, ".bnd"); + bandCoding.writeArrayTo(ds, values, 0, length); + } ++ finally { ++ if (ds != null) ++ ds.close(); ++ } + } + + /** Disburse one value. */ +@@ -829,12 +841,18 @@ + + private void dumpBand() throws IOException { + assert(optDumpBands); +- try (OutputStream ds = getDumpStream(this, ".bnd")) { ++ OutputStream ds = null; ++ try { ++ ds = getDumpStream(this, ".bnd"); + if (bytesForDump != null) + bytesForDump.writeTo(ds); + else + bytes.writeTo(ds); + } ++ finally { ++ if (ds != null) ++ ds.close(); ++ } + } + + public void readDataFrom(InputStream in) throws IOException { +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-02-02 15:09:33.497049506 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2013-02-02 15:27:16.710037923 +0000 +@@ -151,8 +151,13 @@ + if ("--config-file=".equals(state)) { + String propFile = av.remove(0); + Properties fileProps = new Properties(); +- try (InputStream propIn = new FileInputStream(propFile)) { ++ InputStream propIn = null; ++ try { ++ propIn = new FileInputStream(propFile); + fileProps.load(propIn); ++ } finally { ++ if (propIn != null) ++ propIn.close(); + } + if (engProps.get(verboseProp) != null) + fileProps.list(System.out); +@@ -343,9 +348,14 @@ + else + fileOut = new FileOutputStream(outfile); + fileOut = new BufferedOutputStream(fileOut); +- try (JarOutputStream out = new JarOutputStream(fileOut)) { ++ JarOutputStream out = null; ++ try { ++ out = new JarOutputStream(fileOut); + junpack.unpack(in, out); + // p200 closes in but not out ++ } finally { ++ if (out != null) ++ out.close(); + } + // At this point, we have a good jarfile (or newfile, if -r) + } +@@ -407,7 +417,9 @@ + long filelen = new File(jarfile).length(); + if (filelen <= 0) return ""; + long skiplen = Math.max(0, filelen - tail.length); +- try (InputStream in = new FileInputStream(new File(jarfile))) { ++ InputStream in = null; ++ try { ++ in = new FileInputStream(new File(jarfile)); + in.skip(skiplen); + in.read(tail); + for (int i = tail.length-4; i >= 0; i--) { +@@ -421,6 +433,9 @@ + } + } + return ""; ++ } finally { ++ if (in != null) ++ in.close(); + } + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java 2013-02-02 13:14:33.194730803 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java 2013-02-02 15:27:16.710037923 +0000 +@@ -245,9 +245,15 @@ + void run(File inFile, JarOutputStream jstream) throws IOException { + // %%% maybe memory-map the file, and pass it straight into unpacker + ByteBuffer mappedFile = null; +- try (FileInputStream fis = new FileInputStream(inFile)) { ++ FileInputStream fis = null; ++ try { ++ fis = new FileInputStream(inFile); + run(fis, jstream, mappedFile); + } ++ finally { ++ if (fis != null) ++ fis.close(); ++ } + // Note: caller is responsible to finish with jstream. + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2012-07-20 19:23:35.697424304 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2013-02-02 15:27:16.714037986 +0000 +@@ -540,9 +540,15 @@ + Index index = initCPIndex(tag, cpMap); + + if (optDumpBands) { +- try (PrintStream ps = new PrintStream(getDumpStream(index, ".idx"))) { ++ PrintStream ps = null; ++ try { ++ ps = new PrintStream(getDumpStream(index, ".idx")); + printArrayTo(ps, index.cpMap, 0, index.cpMap.length); + } ++ finally { ++ if (ps != null) ++ ps.close(); ++ } + } + } + +@@ -828,9 +834,10 @@ + attr_definition_headers.readFrom(in); + attr_definition_name.readFrom(in); + attr_definition_layout.readFrom(in); +- try (PrintStream dump = !optDumpBands ? null +- : new PrintStream(getDumpStream(attr_definition_headers, ".def"))) +- { ++ PrintStream dump = null; ++ try { ++ dump = !optDumpBands ? null ++ : new PrintStream(getDumpStream(attr_definition_headers, ".def")); + for (int i = 0; i < numAttrDefs; i++) { + int header = attr_definition_headers.getByte(); + Utf8Entry name = (Utf8Entry) attr_definition_name.getRef(); +@@ -849,6 +856,10 @@ + if (dump != null) dump.println(index+" "+def); + } + } ++ finally { ++ if (dump != null) ++ dump.close(); ++ } + attr_definition_headers.doneDisbursing(); + attr_definition_name.doneDisbursing(); + attr_definition_layout.doneDisbursing(); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2012-07-20 19:23:35.697424304 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2013-02-02 15:27:16.714037986 +0000 +@@ -458,9 +458,15 @@ + Utils.log.info("Writing "+cpMap.length+" "+ConstantPool.tagName(tag)+" entries..."); + + if (optDumpBands) { +- try (PrintStream ps = new PrintStream(getDumpStream(index, ".idx"))) { ++ PrintStream ps = null; ++ try { ++ ps = new PrintStream(getDumpStream(index, ".idx")); + printArrayTo(ps, cpMap, 0, cpMap.length); + } ++ finally { ++ if (ps != null) ++ ps.close(); ++ } + } + + switch (tag) { +@@ -921,9 +927,10 @@ + } + }); + attrDefsWritten = new Attribute.Layout[numAttrDefs]; +- try (PrintStream dump = !optDumpBands ? null +- : new PrintStream(getDumpStream(attr_definition_headers, ".def"))) +- { ++ PrintStream dump = null; ++ try { ++ dump = !optDumpBands ? null ++ : new PrintStream(getDumpStream(attr_definition_headers, ".def")); + int[] indexForDebug = Arrays.copyOf(attrIndexLimit, ATTR_CONTEXT_LIMIT); + for (int i = 0; i < defs.length; i++) { + int header = ((Integer)defs[i][0]).intValue(); +@@ -949,6 +956,10 @@ + } + } + } ++ finally { ++ if (dump != null) ++ dump.close(); ++ } + } + + void writeAttrCounts() throws IOException { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2012-07-20 19:23:35.697424304 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2013-02-02 15:27:16.714037986 +0000 +@@ -122,8 +122,9 @@ + // Do this after the previous props are put in place, + // to allow override if necessary. + String propFile = "intrinsic.properties"; +- +- try (InputStream propStr = PackerImpl.class.getResourceAsStream(propFile)) { ++ InputStream propStr = null; ++ try { ++ propStr = PackerImpl.class.getResourceAsStream(propFile); + if (propStr == null) { + throw new RuntimeException(propFile + " cannot be loaded"); + } +@@ -131,6 +132,14 @@ + } catch (IOException ee) { + throw new RuntimeException(ee); + } ++ finally { ++ try { ++ if (propStr != null) ++ propStr.close(); ++ } catch (IOException ee) { ++ throw new RuntimeException(ee); ++ } ++ } + + for (Map.Entry<Object, Object> e : props.entrySet()) { + String key = (String) e.getKey(); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2013-02-02 13:14:33.390733939 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2013-02-02 15:27:16.714037986 +0000 +@@ -160,9 +160,15 @@ + } + // Use the stream-based implementation. + // %%% Reconsider if native unpacker learns to memory-map the file. +- try (FileInputStream instr = new FileInputStream(in)) { ++ FileInputStream instr = null; ++ try { ++ instr = new FileInputStream(in); + unpack(instr, out); + } ++ finally { ++ if (instr != null) ++ instr.close(); ++ } + if (props.getBoolean(Utils.UNPACK_REMOVE_PACKFILE)) { + in.delete(); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2012-07-20 19:23:35.697424304 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2013-02-02 15:27:16.714037986 +0000 +@@ -268,18 +268,30 @@ + // 4947205 : Peformance is slow when using pack-effort=0 + out = new BufferedOutputStream(out); + out = new NonCloser(out); // protect from JarOutputStream.close() +- try (JarOutputStream jout = new JarOutputStream(out)) { ++ JarOutputStream jout = null; ++ try { ++ jout = new JarOutputStream(out); + copyJarFile(in, jout); + } ++ finally { ++ if (jout != null) ++ jout.close(); ++ } + } + static void copyJarFile(JarFile in, OutputStream out) throws IOException { + + // 4947205 : Peformance is slow when using pack-effort=0 + out = new BufferedOutputStream(out); + out = new NonCloser(out); // protect from JarOutputStream.close() +- try (JarOutputStream jout = new JarOutputStream(out)) { ++ JarOutputStream jout = null; ++ try { ++ jout = new JarOutputStream(out); + copyJarFile(in, jout); + } ++ finally { ++ if (jout != null) ++ jout.close(); ++ } + } + // Wrapper to prevent closing of client-supplied stream. + static private +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2012-10-11 14:18:23.863432719 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2013-02-02 15:27:16.730038242 +0000 +@@ -1401,10 +1401,14 @@ + java.net.URLConnection uconn = tClass.getResource(tResource).openConnection(); + int len = uconn.getContentLength(); + byte[] bytes = new byte[len]; +- try (java.io.InputStream str = uconn.getInputStream()) { ++ java.io.InputStream str = null; ++ try { ++ str = uconn.getInputStream(); + int nr = str.read(bytes); + if (nr != len) throw new java.io.IOException(tResource); +- } ++ } finally { ++ str.close(); ++ } + values[0] = bytes; + } catch (java.io.IOException ex) { + throw new InternalError(ex.toString()); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java openjdk-boot/jdk/src/share/classes/java/lang/Package.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Package.java 2012-07-20 19:23:37.685461320 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java 2013-02-02 15:27:16.714037986 +0000 +@@ -575,12 +575,23 @@ + * Returns the Manifest for the specified JAR file name. + */ + private static Manifest loadManifest(String fn) { +- try (FileInputStream fis = new FileInputStream(fn); +- JarInputStream jis = new JarInputStream(fis, false)) +- { ++ FileInputStream fis = null; ++ JarInputStream jis = null; ++ try { ++ fis = new FileInputStream(fn); ++ jis = new JarInputStream(fis, false); + return jis.getManifest(); + } catch (IOException e) { + return null; ++ } finally { ++ try { ++ if (jis != null) ++ jis.close(); ++ if (fis != null) ++ fis.close(); ++ } catch (IOException e) { ++ return null; ++ } + } + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/channels/SocketChannel.java openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java +--- openjdk-boot.orig/jdk/src/share/classes/java/nio/channels/SocketChannel.java 2012-07-20 19:23:37.821463852 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java 2013-02-02 15:27:16.718038050 +0000 +@@ -188,7 +188,7 @@ + } catch (Throwable suppressed) { + x.addSuppressed(suppressed); + } +- throw x; ++ throw (IOException) x; + } + assert sc.isConnected(); + return sc; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java +--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java 2012-07-20 19:23:37.949466233 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java 2013-02-02 15:27:16.718038050 +0000 +@@ -122,9 +122,15 @@ + if (attrs.isDirectory()) { + Files.createDirectory(target); + } else { +- try (InputStream in = Files.newInputStream(source)) { ++ InputStream in = null; ++ try { ++ in = Files.newInputStream(source); + Files.copy(in, target); + } ++ finally { ++ if (in != null) ++ in.close(); ++ } + } + + // copy basic attributes to target +@@ -142,7 +148,7 @@ + } catch (Throwable suppressed) { + x.addSuppressed(suppressed); + } +- throw x; ++ throw (IOException) x; + } + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java +--- openjdk-boot.orig/jdk/src/share/classes/java/nio/file/Files.java 2012-07-20 19:23:37.957466384 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java 2013-02-02 15:27:16.718038050 +0000 +@@ -2839,8 +2839,11 @@ + } + + // do the copy +- try (OutputStream out = ostream) { +- return copy(in, out); ++ try { ++ return copy(in, ostream); ++ } ++ finally { ++ ostream.close(); + } + } + +@@ -2881,9 +2884,15 @@ + // ensure not null before opening file + Objects.requireNonNull(out); + +- try (InputStream in = newInputStream(source)) { ++ InputStream in = null; ++ try { ++ in = newInputStream(source); + return copy(in, out); + } ++ finally { ++ if (in != null) ++ in.close(); ++ } + } + + /** +@@ -2949,8 +2958,14 @@ + if (size > (long)Integer.MAX_VALUE) + throw new OutOfMemoryError("Required array size too large"); + +- try (InputStream in = newInputStream(path)) { +- return read(in, (int)size); ++ InputStream in = null; ++ try { ++ in = newInputStream(path); ++ return read(in, (int)size); ++ } ++ finally { ++ if (in != null) ++ in.close(); + } + } + +@@ -2996,7 +3011,9 @@ + public static List<String> readAllLines(Path path, Charset cs) + throws IOException + { +- try (BufferedReader reader = newBufferedReader(path, cs)) { ++ BufferedReader reader = null; ++ try { ++ reader = newBufferedReader(path, cs); + List<String> result = new ArrayList<>(); + for (;;) { + String line = reader.readLine(); +@@ -3006,6 +3023,10 @@ + } + return result; + } ++ finally { ++ if (reader != null) ++ reader.close(); ++ } + } + + /** +@@ -3055,7 +3076,9 @@ + // ensure bytes is not null before opening file + Objects.requireNonNull(bytes); + +- try (OutputStream out = Files.newOutputStream(path, options)) { ++ OutputStream out = null; ++ try { ++ out = Files.newOutputStream(path, options); + int len = bytes.length; + int rem = len; + while (rem > 0) { +@@ -3064,6 +3087,10 @@ + rem -= n; + } + } ++ finally { ++ if (out != null) ++ out.close(); ++ } + return path; + } + +@@ -3115,12 +3142,18 @@ + Objects.requireNonNull(lines); + CharsetEncoder encoder = cs.newEncoder(); + OutputStream out = newOutputStream(path, options); +- try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, encoder))) { ++ BufferedWriter writer = null; ++ try { ++ writer = new BufferedWriter(new OutputStreamWriter(out, encoder)); + for (CharSequence line: lines) { + writer.append(line); + writer.newLine(); + } + } ++ finally { ++ if (writer != null) ++ writer.close(); ++ } + return path; + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Currency.java openjdk-boot/jdk/src/share/classes/java/util/Currency.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/Currency.java 2012-07-20 19:23:38.113469287 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java 2013-02-02 15:27:16.718038050 +0000 +@@ -233,9 +233,14 @@ + "currency.properties"); + if (propFile.exists()) { + Properties props = new Properties(); +- try (FileReader fr = new FileReader(propFile)) { ++ FileReader fr = null; ++ try { ++ fr = new FileReader(propFile); + props.load(fr); + } ++ finally { ++ fr.close(); ++ } + Set<String> keys = props.stringPropertyNames(); + Pattern propertiesPattern = + Pattern.compile("([A-Z]{3})\\s*,\\s*(\\d{3})\\s*,\\s*([0-3])"); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/jar/JarFile.java openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java +--- openjdk-boot.orig/jdk/src/share/classes/java/util/jar/JarFile.java 2013-02-02 13:39:11.966432272 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java 2013-02-02 15:31:18.945915470 +0000 +@@ -383,9 +383,15 @@ + * META-INF files. + */ + private byte[] getBytes(ZipEntry ze) throws IOException { +- try (InputStream is = super.getInputStream(ze)) { ++ InputStream is = null; ++ try { ++ is = super.getInputStream(ze); + return IOUtils.readFully(is, (int)ze.getSize(), true); + } ++ finally { ++ if (is != null) ++ is.close(); ++ } + } + + /** +diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java +--- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java 2012-07-20 19:23:38.561477629 +0100 ++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java 2013-02-02 15:27:16.718038050 +0000 +@@ -144,8 +144,9 @@ + buf = new char[(int)len]; + int read = 0; + int offset = 0; +- +- try (Reader charStream = clob.getCharacterStream()) { ++ Reader charStream = null; ++ try { ++ charStream = clob.getCharacterStream(); + if (charStream == null) { + throw new SQLException("Invalid Clob object. The call to getCharacterStream " + + "returned null which cannot be serialized."); +@@ -153,23 +154,41 @@ + + // Note: get an ASCII stream in order to null-check it, + // even though we don't do anything with it. +- try (InputStream asciiStream = clob.getAsciiStream()) { ++ InputStream asciiStream = null; ++ try { ++ asciiStream = clob.getAsciiStream(); + if (asciiStream == null) { + throw new SQLException("Invalid Clob object. The call to getAsciiStream " + + "returned null which cannot be serialized."); + } + } +- +- try (Reader reader = new BufferedReader(charStream)) { ++ finally { ++ if (asciiStream != null) ++ asciiStream.close(); ++ } ++ Reader reader = null; ++ try { ++ reader = new BufferedReader(charStream); + do { + read = reader.read(buf, offset, (int)(len - offset)); + offset += read; + } while (read > 0); + } ++ finally { ++ if (reader != null) ++ reader.close(); ++ } + } catch (java.io.IOException ex) { + throw new SerialException("SerialClob: " + ex.getMessage()); + } +- ++ finally { ++ try { ++ if (charStream != null) ++ charStream.close(); ++ } catch (java.io.IOException ex) { ++ throw new SerialException("SerialClob: " + ex.getMessage()); ++ } ++ } + origLen = len; + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java +--- openjdk-boot.orig/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java 2012-07-20 19:23:38.565477702 +0100 ++++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java 2013-02-02 15:27:16.718038050 +0000 +@@ -367,9 +367,15 @@ + // Load user's implementation of SyncProvider + // here. -Drowset.properties=/abc/def/pqr.txt + ROWSET_PROPERTIES = strRowsetProperties; +- try (FileInputStream fis = new FileInputStream(ROWSET_PROPERTIES)) { ++ FileInputStream fis = null; ++ try { ++ fis = new FileInputStream(ROWSET_PROPERTIES); + properties.load(fis); + } ++ finally { ++ if (fis != null) ++ fis.close(); ++ } + parseProperties(properties); + } + +@@ -381,15 +387,19 @@ + "rowset.properties"; + + ClassLoader cl = Thread.currentThread().getContextClassLoader(); +- +- try (InputStream stream = +- (cl == null) ? ClassLoader.getSystemResourceAsStream(ROWSET_PROPERTIES) +- : cl.getResourceAsStream(ROWSET_PROPERTIES)) { ++ InputStream stream = null; ++ try { ++ stream = ++ (cl == null) ? ClassLoader.getSystemResourceAsStream(ROWSET_PROPERTIES) ++ : cl.getResourceAsStream(ROWSET_PROPERTIES); + if (stream == null) { + throw new SyncFactoryException( + "Resource " + ROWSET_PROPERTIES + " not found"); + } + properties.load(stream); ++ } finally { ++ if (stream != null) ++ stream.close(); + } + + parseProperties(properties); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java 2012-07-20 19:23:39.413493489 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java 2013-02-02 15:27:16.718038050 +0000 +@@ -194,7 +194,8 @@ + * Given a URL, retrieves a JAR file, caches it to disk, and creates a + * cached JAR file object. + */ +- private static JarFile retrieve(final URL url, final URLJarFileCloseController closeController) throws IOException { ++ private static JarFile retrieve(final URL url, final URLJarFileCloseController closeController) ++ throws IOException { + /* + * See if interface is set, then call retrieve function of the class + * that implements URLJarFileCallBack interface (sun.plugin - to +@@ -211,7 +212,8 @@ + JarFile result = null; + + /* get the stream before asserting privileges */ +- try (final InputStream in = url.openConnection().getInputStream()) { ++ try { ++ final InputStream in = url.openConnection().getInputStream(); + result = AccessController.doPrivileged( + new PrivilegedExceptionAction<JarFile>() { + public JarFile run() throws IOException { +@@ -227,7 +229,10 @@ + } catch (IOException ioe) { + thr.addSuppressed(ioe); + } +- throw thr; ++ throw (IOException) thr; ++ } finally { ++ if (in != null) ++ in.close(); + } + } + }); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java 2012-07-20 19:23:39.493494979 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java 2013-02-02 15:27:16.718038050 +0000 +@@ -255,7 +255,9 @@ + this.entries = new HashMap<Path,CacheEntry>(); + + // get the initial entries in the directory +- try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) { ++ DirectoryStream<Path> stream = null; ++ try { ++ stream = Files.newDirectoryStream(dir); + for (Path entry: stream) { + // don't follow links + long lastModified = +@@ -264,6 +266,10 @@ + } + } catch (DirectoryIteratorException e) { + throw e.getCause(); ++ } finally { ++ if (stream != null) { ++ stream.close(); ++ } + } + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java 2012-07-20 19:23:39.665498183 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java 2013-02-02 15:27:16.718038050 +0000 +@@ -92,9 +92,13 @@ + tabName = filename; + try { + lastModified = new File(tabName).lastModified(); +- try (KeyTabInputStream kis = +- new KeyTabInputStream(new FileInputStream(filename))) { ++ KeyTabInputStream kis = null; ++ try { ++ kis = new KeyTabInputStream(new FileInputStream(filename)); + load(kis); ++ } finally { ++ if (kis != null) ++ kis.close(); + } + } catch (FileNotFoundException e) { + entries.clear(); +@@ -439,9 +443,13 @@ + public synchronized static KeyTab create(String name) + throws IOException, RealmException { + +- try (KeyTabOutputStream kos = +- new KeyTabOutputStream(new FileOutputStream(name))) { ++ KeyTabOutputStream kos = null; ++ try { ++ kos = new KeyTabOutputStream(new FileOutputStream(name)); + kos.writeVersion(KRB5_KT_VNO); ++ } finally { ++ if (kos != null) ++ kos.close(); + } + return new KeyTab(name); + } +@@ -450,12 +458,16 @@ + * Saves the file at the directory. + */ + public synchronized void save() throws IOException { +- try (KeyTabOutputStream kos = +- new KeyTabOutputStream(new FileOutputStream(tabName))) { ++ KeyTabOutputStream kos = null; ++ try { ++ kos = new KeyTabOutputStream(new FileOutputStream(tabName)); + kos.writeVersion(kt_vno); + for (int i = 0; i < entries.size(); i++) { + kos.writeEntry(entries.elementAt(i)); + } ++ } finally { ++ if (kos != null) ++ kos.close(); + } + } + +@@ -519,9 +531,13 @@ + * @exception IOException. + */ + public synchronized void createVersion(File file) throws IOException { +- try (KeyTabOutputStream kos = +- new KeyTabOutputStream(new FileOutputStream(file))) { ++ KeyTabOutputStream kos = null; ++ try { ++ kos = new KeyTabOutputStream(new FileOutputStream(file)); + kos.write16(KRB5_KT_VNO); ++ } finally { ++ if (kos != null) ++ kos.close(); + } + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SeedGenerator.java openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/provider/SeedGenerator.java 2012-07-20 19:23:39.709498997 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java 2013-02-02 15:27:16.722038114 +0000 +@@ -179,7 +179,9 @@ + // The temporary dir + File f = new File(p.getProperty("java.io.tmpdir")); + int count = 0; +- try (DirectoryStream<Path> stream = Files.newDirectoryStream(f.toPath())) { ++ DirectoryStream<Path> stream = null; ++ try { ++ stream = Files.newDirectoryStream(f.toPath()); + // We use a Random object to choose what file names + // should be used. Otherwise on a machine with too + // many files, the same first 1024 files always get +@@ -194,6 +196,10 @@ + break; + } + } ++ } finally { ++ if (stream != null) { ++ stream.close(); ++ } + } + } catch (Exception ex) { + md.update((byte)ex.hashCode()); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/tools/KeyTool.java 2012-07-20 19:23:39.781500341 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java 2013-02-02 15:27:16.722038114 +0000 +@@ -1149,9 +1149,14 @@ + } else { + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + keyStore.store(bout, pass); +- try (FileOutputStream fout = new FileOutputStream(ksfname)) { ++ FileOutputStream fout = null; ++ try { ++ fout = new FileOutputStream(ksfname); + fout.write(bout.toByteArray()); +- } ++ } finally { ++ if (fout != null) ++ fout.close(); ++ } + } + } + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java 2013-02-02 15:09:33.569050655 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/security/util/UntrustedCertificates.java 2013-02-02 15:27:16.722038114 +0000 +@@ -56,8 +56,9 @@ + + private static void add(String alias, String pemCert) { + // generate certificate from PEM certificate +- try (ByteArrayInputStream is = +- new ByteArrayInputStream(pemCert.getBytes())) { ++ ByteArrayInputStream is = null; ++ try { ++ is = new ByteArrayInputStream(pemCert.getBytes()); + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + X509Certificate cert = (X509Certificate)cf.generateCertificate(is); + +@@ -68,10 +69,15 @@ + } catch (CertificateException e) { + throw new RuntimeException( + "Incorrect untrusted certificate: " + alias, e); +- } catch (IOException e) { +- throw new RuntimeException( +- "Incorrect untrusted certificate: " + alias, e); +- } ++ } finally { ++ try { ++ if (is != null) ++ is.close(); ++ } catch (IOException e) { ++ throw new RuntimeException( ++ "Incorrect untrusted certificate: " + alias, e); ++ } ++ } + } + + static { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/Arguments.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/Arguments.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/Arguments.java 2012-07-20 19:23:39.965503764 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/Arguments.java 2013-02-02 15:27:16.722038114 +0000 +@@ -99,14 +99,19 @@ + } + + private void readCommandFile(String path) throws IOException { +- try (BufferedReader bf = new BufferedReader(new FileReader(path));) { +- StringBuilder sb = new StringBuilder(); +- String s; +- while ((s = bf.readLine()) != null) { +- sb.append(s).append("\n"); +- } +- command = sb.toString(); +- } ++ BufferedReader bf = null; ++ try { ++ bf = new BufferedReader(new FileReader(path)); ++ StringBuilder sb = new StringBuilder(); ++ String s; ++ while ((s = bf.readLine()) != null) { ++ sb.append(s).append("\n"); ++ } ++ command = sb.toString(); ++ } finally { ++ if (bf != null) ++ bf.close(); ++ } + } + + public static void usage() { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/tools/jcmd/JCmd.java 2013-02-02 15:09:33.569050655 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/tools/jcmd/JCmd.java 2013-02-02 15:27:16.722038114 +0000 +@@ -116,7 +116,7 @@ + e.printStackTrace(); + } + } +- } ++ } + } + if (pids.isEmpty()) { + System.err.println("Could not find any processes matching : '" +@@ -158,7 +158,9 @@ + if (line.trim().equals("stop")) { + break; + } +- try (InputStream in = hvm.executeJCmd(line);) { ++ InputStream in = null; ++ try { ++ in = hvm.executeJCmd(line); + // read to EOF and just print output + byte b[] = new byte[256]; + int n; +@@ -169,6 +171,9 @@ + System.out.print(s); + } + } while (n > 0); ++ } finally { ++ if (in != null) ++ in.close(); + } + } + vm.detach(); +@@ -205,8 +210,8 @@ + } catch (URISyntaxException ex) { + return false; + } catch (MonitorException ex) { +- return false; +- } ++ return false; ++ } + } + + private static String getMainClass(VirtualMachineDescriptor vmd) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java 2012-07-20 19:23:40.045505256 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java 2013-02-02 15:27:16.726038179 +0000 +@@ -127,9 +127,15 @@ + calendarProps = (Properties) AccessController.doPrivileged(new PrivilegedExceptionAction() { + public Object run() throws IOException { + Properties props = new Properties(); +- try (FileInputStream fis = new FileInputStream(fname)) { ++ FileInputStream fis = null; ++ try { ++ fis = new FileInputStream(fname); + props.load(fis); + } ++ finally { ++ if (fis != null) ++ fis.close(); ++ } + return props; + } + }); +diff -Nru openjdk-boot.orig/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java +--- openjdk-boot.orig/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java 2012-07-20 19:23:40.185507863 +0100 ++++ openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java 2013-02-02 15:27:16.726038179 +0000 +@@ -200,7 +200,7 @@ + } + + private static int[][] getUnicodeRanges() { +- List<Integer> ranges = new ArrayList<>(); ++ List<Integer> ranges = new ArrayList<Integer>(); + ranges.add(0); + Character.UnicodeBlock currentBlock = Character.UnicodeBlock.of(0); + for (int cp = 0x000001; cp < 0x110000; cp++ ) { +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java +--- openjdk-boot.orig/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java 2012-07-20 19:23:40.745518290 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java 2013-02-02 15:27:16.726038179 +0000 +@@ -569,11 +569,11 @@ + public Void run() throws BackingStoreException { + Map<String, String> m = new TreeMap<>(); + long newLastSyncTime = 0; ++ FileInputStream fis = null; + try { + newLastSyncTime = prefsFile.lastModified(); +- try (FileInputStream fis = new FileInputStream(prefsFile)) { +- XmlSupport.importMap(fis, m); +- } ++ fis = new FileInputStream(prefsFile); ++ XmlSupport.importMap(fis, m); + } catch(Exception e) { + if (e instanceof InvalidPreferencesFormatException) { + getLogger().warning("Invalid preferences format in " +@@ -588,6 +588,13 @@ + } else { + throw new BackingStoreException(e); + } ++ } finally { ++ try { ++ if (fis != null) ++ fis.close(); ++ } catch (IOException e) { ++ throw new BackingStoreException(e); ++ } + } + // Attempt succeeded; update state + prefsCache = m; +@@ -614,13 +621,14 @@ + AccessController.doPrivileged( + new PrivilegedExceptionAction<Void>() { + public Void run() throws BackingStoreException { ++ FileOutputStream fos = null; + try { + if (!dir.exists() && !dir.mkdirs()) + throw new BackingStoreException(dir + + " create failed."); +- try (FileOutputStream fos = new FileOutputStream(tmpFile)) { +- XmlSupport.exportMap(fos, prefsCache); +- } ++ ++ fos = new FileOutputStream(tmpFile); ++ XmlSupport.exportMap(fos, prefsCache); + if (!tmpFile.renameTo(prefsFile)) + throw new BackingStoreException("Can't rename " + + tmpFile + " to " + prefsFile); +@@ -629,6 +637,14 @@ + throw (BackingStoreException)e; + throw new BackingStoreException(e); + } ++ finally { ++ try { ++ if (fos != null) ++ fos.close(); ++ } catch (IOException e) { ++ throw new BackingStoreException(e); ++ } ++ } + return null; + } + }); +diff -Nru openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java +--- openjdk-boot.orig/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java 2012-07-20 19:23:40.869520594 +0100 ++++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java 2013-02-02 15:27:16.726038179 +0000 +@@ -255,9 +255,16 @@ + String fstypes = System.getProperty("java.home") + "/lib/fstypes.properties"; + Path file = Paths.get(fstypes); + try { +- try (ReadableByteChannel rbc = Files.newByteChannel(file)) { ++ ReadableByteChannel rbc = null; ++ try { ++ rbc = Files.newByteChannel(file); + result.load(Channels.newReader(rbc, "UTF-8")); + } ++ finally { ++ if (rbc != null) { ++ rbc.close(); ++ } ++ } + } catch (IOException x) { + } + return result; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2013-02-12 01:56:53.097168690 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2013-02-12 02:12:21.112109410 +0000 +@@ -555,8 +555,9 @@ + if (parent == null) { + parent = new File("."); + } +- try (DirectoryStream<Path> dstream = +- Files.newDirectoryStream(parent.toPath(), glob)) { ++ DirectoryStream<Path> dstream = null; ++ try { ++ dstream = Files.newDirectoryStream(parent.toPath(), glob); + int entries = 0; + for (Path p : dstream) { + out.add(p.normalize().toString()); +@@ -572,6 +573,10 @@ + System.err.print(e); + } + } ++ finally { ++ if (dstream != null) ++ try { dstream.close(); } catch (IOException ex) {} ++ } + } else { + out.add(a.arg); + } diff --git a/patches/boot/explicit-inner-class-headers.patch b/patches/boot/explicit-inner-class-headers.patch new file mode 100644 index 0000000..cb32692 --- /dev/null +++ b/patches/boot/explicit-inner-class-headers.patch @@ -0,0 +1,25 @@ +diff -Nru openjdk-boot.orig/jdk/make/common/Rules.gmk openjdk-boot/jdk/make/common/Rules.gmk +--- openjdk-boot.orig/jdk/make/common/Rules.gmk 2009-12-13 20:37:41.000000000 +0000 ++++ openjdk-boot/jdk/make/common/Rules.gmk 2009-12-13 21:11:04.000000000 +0000 +@@ -303,7 +303,11 @@ + $(prep-target) + @$(ECHO) "# Running javah:" + $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \ +- $(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner)) ++ $(CLASSES.export) ++ $(foreach innerclass,$(subst $$,\$$,$(EXPORTED_inner)), \ ++ $(JAVAH_CMD) \ ++ -o $(CLASSHDRDIR)/$(subst .,_,$(subst \$$,_,$(innerclass))).h \ ++ $(innerclass)) + @$(java-vm-cleanup) + @$(TOUCH) $@ + +diff -Nru openjdk-boot.orig/jdk/make/sun/awt/FILES_export_unix.gmk openjdk-boot/jdk/make/sun/awt/FILES_export_unix.gmk +--- openjdk-boot.orig/jdk/make/sun/awt/FILES_export_unix.gmk 2009-12-04 23:26:35.000000000 +0000 ++++ openjdk-boot/jdk/make/sun/awt/FILES_export_unix.gmk 2009-12-13 21:11:04.000000000 +0000 +@@ -189,3 +189,5 @@ + java/awt/dnd/DnDConstants.java \ + sun/awt/CausedFocusEvent.java + ++EXPORTED_inner = \ ++ sun.java2d.opengl.OGLContext$$OGLContextCaps diff --git a/patches/boot/fontconfig.patch b/patches/boot/fontconfig.patch new file mode 100644 index 0000000..95cb81f --- /dev/null +++ b/patches/boot/fontconfig.patch @@ -0,0 +1,16 @@ +diff -Nru openjdk-boot.orig/jdk/make/sun/awt/Makefile openjdk-boot/jdk/make/sun/awt/Makefile +--- openjdk-boot.orig/jdk/make/sun/awt/Makefile 2011-04-20 04:40:21.000000000 +0100 ++++ openjdk-boot/jdk/make/sun/awt/Makefile 2011-04-21 23:16:13.427471369 +0100 +@@ -400,10 +400,9 @@ + + COMPILEFONTCONFIG_JARFILE = $(BUILDTOOLJARDIR)/compilefontconfig.jar + +-$(LIBDIR)/%.bfc: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)%.properties \ +- $(COMPILEFONTCONFIG_JARFILE) ++$(LIBDIR)/%.bfc: $(GENSRCDIR)/fontconfig/%.bfc + $(prep-target) +- $(BOOT_JAVA_CMD) -jar $(COMPILEFONTCONFIG_JARFILE) $(COMPILEFONTCONFIG_FLAGS) $< $@ ++ $(install-file) + $(call chmod-file, 444) + @$(java-vm-cleanup) + diff --git a/patches/boot/generated-comments.patch b/patches/boot/generated-comments.patch new file mode 100644 index 0000000..01227c3 --- /dev/null +++ b/patches/boot/generated-comments.patch @@ -0,0 +1,21 @@ +diff -Nru ../openjdk.orig/openjdk-boot/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java openjdk-boot/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java +--- ../openjdk.orig/openjdk-boot/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java 2009-10-30 16:49:08.000000000 +0000 ++++ openjdk-boot/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java 2009-10-30 16:59:16.000000000 +0000 +@@ -647,9 +647,6 @@ + throws FileNotFoundException, IOException { + BufferedReader in = new BufferedReader(new FileReader(theTemplateFileName)); + PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(theOutputFileName))); +- out.println(commentStart + +- " This file was generated AUTOMATICALLY from a template file " + +- new java.util.Date() + commentEnd); + int marklen = commandMarker.length(); + LOOP: while(true) { + try { +@@ -876,7 +873,6 @@ + // liu : Add a comment showing the source of this table + result.append(commentStart + " The following tables and code generated using:" + + commentEnd + "\n "); +- result.append(commentStart + ' ' + commandLineDescription + commentEnd + "\n "); + + if (plane == 0 && bLatin1 == false) { + genCaseMapTableDeclaration(result); diff --git a/patches/boot/genstubs-nofork.patch b/patches/boot/genstubs-nofork.patch new file mode 100644 index 0000000..c1a823b --- /dev/null +++ b/patches/boot/genstubs-nofork.patch @@ -0,0 +1,12 @@ +diff -Nru openjdk.orig/langtools/make/build.xml openjdk/langtools/make/build.xml +--- openjdk-boot.orig/langtools/make/build.xml 2010-11-12 01:18:44.000000000 +0000 ++++ openjdk-boot/langtools/make/build.xml 2010-11-22 17:50:52.747031959 +0000 +@@ -622,7 +622,7 @@ + <genstubs + srcdir="${import.jdk.src.dir}" destdir="${build.genstubs.dir}" + includes="${import.jdk.stub.files}" +- fork="true" classpath="${build.toolclasses.dir}:${build.bootstrap.dir}/classes:${ant.core.lib}" ++ fork="false" classpath="${build.toolclasses.dir}:${build.bootstrap.dir}/classes:${ant.core.lib}" + /> + </target> + diff --git a/patches/boot/getannotation-cast.patch b/patches/boot/getannotation-cast.patch new file mode 100644 index 0000000..dbd7664 --- /dev/null +++ b/patches/boot/getannotation-cast.patch @@ -0,0 +1,12 @@ +diff -Nru openjdk.orig/jdk/src/share/classes/java/beans/MetaData.java openjdk/jdk/src/share/classes/java/beans/MetaData.java +--- openjdk.orig/jdk/src/share/classes/java/beans/MetaData.java 2009-02-10 02:25:40.000000000 +0000 ++++ openjdk/jdk/src/share/classes/java/beans/MetaData.java 2009-02-10 15:45:15.000000000 +0000 +@@ -1475,7 +1475,7 @@ + } + + private static String[] getAnnotationValue(Constructor<?> constructor) { +- ConstructorProperties annotation = constructor.getAnnotation(ConstructorProperties.class); ++ ConstructorProperties annotation = ((ConstructorProperties) constructor.getAnnotation(ConstructorProperties.class)); + return (annotation != null) + ? annotation.value() + : null; diff --git a/patches/boot/hotspot/default/jdk-dependency.patch b/patches/boot/hotspot/default/jdk-dependency.patch new file mode 100644 index 0000000..3b97351 --- /dev/null +++ b/patches/boot/hotspot/default/jdk-dependency.patch @@ -0,0 +1,23 @@ +diff -Nru openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make openjdk-boot/hotspot/make/linux/makefiles/sa.make +--- openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make 2012-05-23 22:15:04.747642641 +0100 ++++ openjdk-boot/hotspot/make/linux/makefiles/sa.make 2012-05-23 22:16:32.825095823 +0100 +@@ -91,7 +91,7 @@ + # are in AGENT_FILES, so use the shell to expand them. + # Be extra carefull to not produce too long command lines in the shell! + $(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST))) +- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST) ++ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST) + $(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer + $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) + $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js +diff -Nru openjdk-boot.orig/make/hotspot-rules.gmk openjdk-boot/make/hotspot-rules.gmk +--- openjdk-boot.orig/make/hotspot-rules.gmk 2012-05-23 20:37:39.000000000 +0100 ++++ openjdk-boot/make/hotspot-rules.gmk 2012-05-23 22:16:52.425419199 +0100 +@@ -85,6 +85,7 @@ + HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR) + HOTSPOT_BUILD_ARGUMENTS += ALT_EXPORT_PATH=$(HOTSPOT_EXPORT_PATH) + HOTSPOT_BUILD_ARGUMENTS += BUILD_FLAVOR=$(BUILD_FLAVOR) ++HOTSPOT_BUILD_ARGUMENTS += GENSRCDIR=$(GENSRCDIR) + + # Why do these need to be passed in? Because of windows nmake? and MAKEFLAGS=? + # Or is there something wrong with hotspot/make/Makefile? diff --git a/patches/boot/hotspot/zero/jdk-dependency.patch b/patches/boot/hotspot/zero/jdk-dependency.patch new file mode 100644 index 0000000..4cfe552 --- /dev/null +++ b/patches/boot/hotspot/zero/jdk-dependency.patch @@ -0,0 +1,25 @@ +diff -Nru openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make openjdk-boot/hotspot/make/linux/makefiles/sa.make +--- openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make 2012-07-20 18:05:26.733484117 +0100 ++++ openjdk-boot/hotspot/make/linux/makefiles/sa.make 2012-07-20 18:10:11.384736044 +0100 +@@ -97,8 +97,8 @@ + $(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST))) + $(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST))) + +- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST) +- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST) ++ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST) ++ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST) + + $(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer + $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) +diff -Nru openjdk-boot.orig/make/hotspot-rules.gmk openjdk-boot/make/hotspot-rules.gmk +--- openjdk-boot.orig/make/hotspot-rules.gmk 2012-06-29 15:19:51.000000000 +0100 ++++ openjdk-boot/make/hotspot-rules.gmk 2012-07-20 18:10:28.277161702 +0100 +@@ -85,6 +85,7 @@ + HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR) + HOTSPOT_BUILD_ARGUMENTS += ALT_EXPORT_PATH=$(HOTSPOT_EXPORT_PATH) + HOTSPOT_BUILD_ARGUMENTS += BUILD_FLAVOR=$(BUILD_FLAVOR) ++HOTSPOT_BUILD_ARGUMENTS += GENSRCDIR=$(GENSRCDIR) + + # Why do these need to be passed in? Because of windows nmake? and MAKEFLAGS=? + # Or is there something wrong with hotspot/make/Makefile? diff --git a/patches/boot/icedteart.patch b/patches/boot/icedteart.patch new file mode 100644 index 0000000..f3452c7 --- /dev/null +++ b/patches/boot/icedteart.patch @@ -0,0 +1,41 @@ +diff -Nru openjdk-boot.orig/jdk/make/common/BuildToolJar.gmk openjdk-boot/jdk/make/common/BuildToolJar.gmk +--- openjdk-boot.orig/jdk/make/common/BuildToolJar.gmk 2009-12-04 23:26:17.000000000 +0000 ++++ openjdk-boot/jdk/make/common/BuildToolJar.gmk 2009-12-13 20:16:48.000000000 +0000 +@@ -43,7 +43,8 @@ + @$(prep-target) + @$(MKDIR) -p $(BUILDTOOLCLASSDIR) + $(BOOT_JAVAC_CMD) -d $(BUILDTOOLCLASSDIR) \ +- -sourcepath $(BUILDTOOL_SOURCE_ROOT) $(BUILDTOOL_MAIN_SOURCE_FILE) ++ -sourcepath $(BUILDTOOL_SOURCE_ROOT) -classpath $(ICEDTEA_RT) \ ++ $(BUILDTOOL_MAIN_SOURCE_FILE) + $(BOOT_JAR_CMD) cfm $@ $(BUILDTOOL_MANIFEST_FILE) \ + -C $(BUILDTOOLCLASSDIR) $(PKGDIR) \ + $(BOOT_JAR_JFLAGS) || $(RM) $@ +diff -Nru openjdk-boot.orig/jdk/make/common/Rules.gmk openjdk-boot/jdk/make/common/Rules.gmk +--- openjdk-boot.orig/jdk/make/common/Rules.gmk 2009-12-04 23:26:17.000000000 +0000 ++++ openjdk-boot/jdk/make/common/Rules.gmk 2009-12-13 20:16:48.000000000 +0000 +@@ -237,8 +237,9 @@ + $(ECHO) "# Java sources to be compiled: (listed in file $<)"; \ + $(CAT) $<.filtered; \ + $(ECHO) "# Running javac:"; \ +- $(ECHO) $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$<.filtered; \ +- $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$<.filtered; \ ++ $(ECHO) $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -bootclasspath "$(CLASSDESTDIR):$(ICEDTEA_RT)" \ ++ -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ ++ $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -bootclasspath "$(CLASSDESTDIR):$(ICEDTEA_RT)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ + fi + @$(java-vm-cleanup) + +diff -Nru openjdk-boot.orig/jdk/make/sun/javazic/Makefile openjdk-boot/jdk/make/sun/javazic/Makefile +--- openjdk-boot.orig/jdk/make/sun/javazic/Makefile 2009-12-04 23:26:37.000000000 +0000 ++++ openjdk-boot/jdk/make/sun/javazic/Makefile 2009-12-13 20:16:48.000000000 +0000 +@@ -62,7 +62,8 @@ + $(WORKDIR)/$(MAPFILE): $(BUILDTOOLJARDIR)/javazic.jar $(TZFILES) + $(RM) -r $(@D) + $(prep-target) +- $(BOOT_JAVA_CMD) -jar $(BUILDTOOLJARDIR)/javazic.jar -V "$(TZDATA_VER)" -d $(WORKDIR) $(TZFILES) ++ $(BOOT_JAVA_CMD) -cp $(ABS_OUTPUTDIR)/classes:$(BUILDTOOLJARDIR)/javazic.jar \ ++ build.tools.javazic.Main -V "$(TZDATA_VER)" -d $(WORKDIR) $(TZFILES) + @$(java-vm-cleanup) + + $(INSTALLDIR)/$(MAPFILE): $(WORKDIR)/$(MAPFILE) diff --git a/patches/boot/jar.patch b/patches/boot/jar.patch new file mode 100644 index 0000000..7910375 --- /dev/null +++ b/patches/boot/jar.patch @@ -0,0 +1,43 @@ +diff -Nru openjdk-boot.orig/jdk/make/common/Release.gmk openjdk-boot/jdk/make/common/Release.gmk +--- openjdk-boot.orig/jdk/make/common/Release.gmk 2011-06-13 16:08:46.000000000 +0100 ++++ openjdk-boot/jdk/make/common/Release.gmk 2011-06-13 17:06:49.515488800 +0100 +@@ -627,9 +627,19 @@ + RESOURCES_JAR=$(ABS_TEMPDIR)/resources-orig.jar + $(RESOURCES_JAR): $(RES_JAR_FILELIST) $(OTHER_JAR_MANIFEST_FILE) + $(prep-target) ++ifneq (,$(JAR_KNOWS_ATFILE)) + $(CD) $(CLASSBINDIR) && \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ + @$(RES_JAR_FILELIST) $(BOOT_JAR_JFLAGS) ++else ifneq (,$(JAR_ACCEPTS_STDIN_LIST)) ++ (cd $(CLASSBINDIR) && $(CAT) $(RES_JAR_FILELIST) | \ ++ $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS)@ $(OTHER_JAR_MANIFEST_FILE) $@ \ ++ $(BOOT_JAR_JFLAGS)) ++else ++ (cd $(CLASSBINDIR) && \ ++ $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ ++ $(BOOT_JAR_JFLAGS) `cat $(RES_JAR_FILELIST)`) ++endif + @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) + + # Create jsse.jar containing SunJSSE implementation classes +@@ -683,9 +693,19 @@ + RT_JAR=$(ABS_TEMPDIR)/rt-orig.jar + $(RT_JAR): $(RT_JAR_FILELIST) $(RT_JAR_MANIFEST_FILE) + $(prep-target) ++ifneq (,$(JAR_KNOWS_ATFILE)) + $(CD) $(CLASSBINDIR) && \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ \ + @$(RT_JAR_FILELIST) $(BOOT_JAR_JFLAGS) ++else ifneq (,$(JAR_ACCEPTS_STDIN_LIST)) ++ $(CD) $(CLASSBINDIR) && $(CAT) $(RT_JAR_FILELIST) | \ ++ $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS)@ $(RT_JAR_MANIFEST_FILE) $@ \ ++ $(BOOT_JAR_JFLAGS) ++else ++ $(CD) $(CLASSBINDIR) && \ ++ $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ \ ++ $(BOOT_JAR_JFLAGS) `cat $(RT_JAR_FILELIST)` ++endif + @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) + + # Meta-index construction to make core class loaders lazier diff --git a/patches/boot/javafiles.patch b/patches/boot/javafiles.patch new file mode 100644 index 0000000..8cdc3f6 --- /dev/null +++ b/patches/boot/javafiles.patch @@ -0,0 +1,164 @@ +diff -Nru openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk +--- openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk 2010-07-29 21:54:09.000000000 +0100 ++++ openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk 2011-03-16 20:45:33.914471077 +0000 +@@ -62,7 +62,6 @@ + com/sun/corba/se/impl/encoding/TypeCodeInputStream.java \ + com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java \ + com/sun/corba/se/impl/encoding/TypeCodeReader.java \ +- com/sun/corba/se/impl/encoding/WrapperInputStream.java +- +- +- ++ com/sun/corba/se/impl/encoding/WrapperInputStream.java \ ++ com/sun/corba/se/impl/encoding/IDLJavaSerializationInputStream.java \ ++ com/sun/corba/se/impl/encoding/IDLJavaSerializationOutputStream.java +diff -Nru openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk +--- openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk 2010-07-29 21:54:09.000000000 +0100 ++++ openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk 2011-03-16 20:45:33.922471207 +0000 +@@ -66,4 +66,5 @@ + com/sun/corba/se/impl/ior/iiop/JavaSerializationComponent.java \ + com/sun/corba/se/impl/ior/iiop/MaxStreamFormatVersionComponentImpl.java \ + com/sun/corba/se/impl/ior/iiop/RequestPartitioningComponentImpl.java \ +- com/sun/corba/se/impl/ior/iiop/ORBTypeComponentImpl.java ++ com/sun/corba/se/impl/ior/iiop/ORBTypeComponentImpl.java \ ++ com/sun/corba/se/impl/ior/iiop/JavaSerializationComponent.java +diff -Nru openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk +--- openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk 2010-07-29 21:54:09.000000000 +0100 ++++ openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk 2011-03-16 20:45:33.922471207 +0000 +@@ -81,4 +81,5 @@ + com/sun/corba/se/impl/orbutil/graph/Node.java \ + com/sun/corba/se/impl/orbutil/graph/NodeData.java \ + com/sun/corba/se/impl/orbutil/graph/Graph.java \ +- com/sun/corba/se/impl/orbutil/graph/GraphImpl.java ++ com/sun/corba/se/impl/orbutil/graph/GraphImpl.java \ ++ com/sun/corba/se/impl/orbutil/GetPropertyAction.java +diff -Nru openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk +--- openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk 2010-07-29 21:54:09.000000000 +0100 ++++ openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk 2011-03-16 20:45:33.922471207 +0000 +@@ -81,5 +81,5 @@ + com/sun/corba/se/impl/protocol/giopmsgheaders/RequestMessage_1_1.java \ + com/sun/corba/se/impl/protocol/giopmsgheaders/RequestMessage_1_2.java \ + com/sun/corba/se/impl/protocol/giopmsgheaders/TargetAddress.java \ +- com/sun/corba/se/impl/protocol/giopmsgheaders/TargetAddressHelper.java +- ++ com/sun/corba/se/impl/protocol/giopmsgheaders/TargetAddressHelper.java \ ++ com/sun/corba/se/impl/protocol/giopmsgheaders/LocateReplyOrReplyMessage.java +diff -Nru openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk +--- openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk 2010-07-29 21:54:09.000000000 +0100 ++++ openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk 2011-03-16 20:45:33.922471207 +0000 +@@ -30,6 +30,7 @@ + com/sun/corba/se/spi/monitoring/StringMonitoredAttributeBase.java \ + com/sun/corba/se/spi/monitoring/LongMonitoredAttributeBase.java \ + com/sun/corba/se/spi/monitoring/MonitoringFactories.java \ ++ com/sun/corba/se/spi/monitoring/MonitoringConstants.java \ + com/sun/corba/se/spi/monitoring/MonitoredAttributeInfo.java \ + com/sun/corba/se/spi/monitoring/MonitoredObject.java \ + com/sun/corba/se/spi/monitoring/MonitoredObjectFactory.java \ +diff -Nru openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk +--- openjdk-boot.origcorba/make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk 2010-07-29 21:54:09.000000000 +0100 ++++ openjdk-boot/corba/make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk 2011-03-16 20:45:33.922471207 +0000 +@@ -29,5 +29,6 @@ + com/sun/corba/se/spi/presentation/rmi/IDLNameTranslator.java \ + com/sun/corba/se/spi/presentation/rmi/PresentationDefaults.java \ + com/sun/corba/se/spi/presentation/rmi/PresentationManager.java \ ++ com/sun/corba/se/spi/presentation/rmi/PresentationDefaults.java \ + com/sun/corba/se/spi/presentation/rmi/StubAdapter.java + +diff -Nru openjdk-boot.origjdk/make/java/java/FILES_java.gmk openjdk-boot/jdk/make/java/java/FILES_java.gmk +--- openjdk-boot.origjdk/make/java/java/FILES_java.gmk 2011-03-14 22:10:30.000000000 +0000 ++++ openjdk-boot/jdk/make/java/java/FILES_java.gmk 2011-03-16 20:45:33.922471207 +0000 +@@ -29,6 +29,80 @@ + # will generate header files + # + JAVA_JAVA_java = \ ++ java/lang/reflect/AccessibleObject.java \ ++ java/lang/reflect/AnnotatedElement.java \ ++ java/lang/reflect/Array.java \ ++ java/lang/reflect/Constructor.java \ ++ java/lang/reflect/Field.java \ ++ java/lang/reflect/GenericArrayType.java \ ++ java/lang/reflect/GenericDeclaration.java \ ++ java/lang/reflect/GenericSignatureFormatError.java \ ++ java/lang/reflect/InvocationHandler.java \ ++ java/lang/reflect/InvocationTargetException.java \ ++ java/lang/reflect/MalformedParameterizedTypeException.java \ ++ java/lang/reflect/Member.java \ ++ java/lang/reflect/Method.java \ ++ java/lang/reflect/Modifier.java \ ++ java/lang/reflect/package-info.java \ ++ java/lang/reflect/ParameterizedType.java \ ++ java/lang/reflect/Proxy.java \ ++ java/lang/reflect/ReflectAccess.java \ ++ java/lang/reflect/ReflectPermission.java \ ++ java/lang/reflect/Type.java \ ++ java/lang/reflect/TypeVariable.java \ ++ java/lang/reflect/UndeclaredThrowableException.java \ ++ java/lang/reflect/WildcardType.java \ ++ java/lang/ref/Finalizer.java \ ++ java/lang/ref/FinalReference.java \ ++ java/lang/ref/PhantomReference.java \ ++ java/lang/ref/Reference.java \ ++ java/lang/ref/ReferenceQueue.java \ ++ java/lang/ref/SoftReference.java \ ++ java/lang/ref/WeakReference.java \ ++ java/lang/management/ClassLoadingMXBean.java \ ++ java/lang/management/CompilationMXBean.java \ ++ java/lang/management/GarbageCollectorMXBean.java \ ++ java/lang/management/LockInfo.java \ ++ java/lang/management/ManagementFactory.java \ ++ java/lang/management/ManagementPermission.java \ ++ java/lang/management/MemoryManagerMXBean.java \ ++ java/lang/management/MemoryMXBean.java \ ++ java/lang/management/MemoryNotificationInfo.java \ ++ java/lang/management/MemoryPoolMXBean.java \ ++ java/lang/management/MemoryType.java \ ++ java/lang/management/MemoryUsage.java \ ++ java/lang/management/MonitorInfo.java \ ++ java/lang/management/OperatingSystemMXBean.java \ ++ java/lang/management/RuntimeMXBean.java \ ++ java/lang/management/ThreadInfo.java \ ++ java/lang/management/ThreadMXBean.java \ ++ java/lang/instrument/ClassDefinition.java \ ++ java/lang/instrument/ClassFileTransformer.java \ ++ java/lang/instrument/IllegalClassFormatException.java \ ++ java/lang/instrument/Instrumentation.java \ ++ java/lang/instrument/UnmodifiableClassException.java \ ++ java/lang/annotation/AnnotationFormatError.java \ ++ java/lang/annotation/Annotation.java \ ++ java/lang/annotation/AnnotationTypeMismatchException.java \ ++ java/lang/annotation/Documented.java \ ++ java/lang/annotation/ElementType.java \ ++ java/lang/annotation/IncompleteAnnotationException.java \ ++ java/lang/annotation/Inherited.java \ ++ java/lang/annotation/package-info.java \ ++ java/lang/annotation/Retention.java \ ++ java/lang/annotation/RetentionPolicy.java \ ++ java/lang/annotation/Target.java \ ++ java/io/IOError.java \ ++ java/lang/Deprecated.java \ ++ java/lang/Iterable.java \ ++ java/util/RandomAccess.java \ ++ java/lang/CharacterData00.java \ ++ java/lang/CharacterData01.java \ ++ java/lang/CharacterData02.java \ ++ java/lang/CharacterData0E.java \ ++ java/lang/CharacterDataLatin1.java \ ++ java/lang/CharacterDataPrivateUse.java \ ++ java/lang/CharacterDataUndefined.java \ + java/lang/Object.java \ + java/lang/AutoCloseable.java \ + java/lang/Class.java \ +@@ -139,13 +213,6 @@ + java/lang/Override.java \ + java/lang/SafeVarargs.java \ + java/lang/SuppressWarnings.java \ +- java/lang/ref/Reference.java \ +- java/lang/ref/SoftReference.java \ +- java/lang/ref/WeakReference.java \ +- java/lang/ref/FinalReference.java \ +- java/lang/ref/PhantomReference.java \ +- java/lang/ref/ReferenceQueue.java \ +- java/lang/ref/Finalizer.java \ + java/util/BitSet.java \ + java/util/Calendar.java \ + java/util/GregorianCalendar.java \ diff --git a/patches/boot/javah.patch b/patches/boot/javah.patch new file mode 100644 index 0000000..d563833 --- /dev/null +++ b/patches/boot/javah.patch @@ -0,0 +1,67 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/native/sun/java2d/opengl/OGLContext.h openjdk-boot/jdk/src/share/native/sun/java2d/opengl/OGLContext.h +--- openjdk-boot.orig/jdk/src/share/native/sun/java2d/opengl/OGLContext.h 2009-12-04 23:33:16.000000000 +0000 ++++ openjdk-boot/jdk/src/share/native/sun/java2d/opengl/OGLContext.h 2009-12-13 21:11:04.000000000 +0000 +@@ -27,6 +27,7 @@ + #define OGLContext_h_Included + + #include "sun_java2d_pipe_BufferedContext.h" ++#include "sun_java2d_pipe_hw_ContextCapabilities.h" + #include "sun_java2d_opengl_OGLContext.h" + #include "sun_java2d_opengl_OGLContext_OGLContextCaps.h" + +@@ -100,39 +101,39 @@ + * See OGLContext.java for more on these flags. + */ + #define CAPS_EMPTY \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_EMPTY ++ sun_java2d_pipe_hw_ContextCapabilities_CAPS_EMPTY + #define CAPS_RT_PLAIN_ALPHA \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_RT_PLAIN_ALPHA ++ sun_java2d_pipe_hw_ContextCapabilities_CAPS_RT_PLAIN_ALPHA + #define CAPS_RT_TEXTURE_ALPHA \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_RT_TEXTURE_ALPHA ++ sun_java2d_pipe_hw_ContextCapabilities_CAPS_RT_TEXTURE_ALPHA + #define CAPS_RT_TEXTURE_OPAQUE \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_RT_TEXTURE_OPAQUE ++ sun_java2d_pipe_hw_ContextCapabilities_CAPS_RT_TEXTURE_OPAQUE + #define CAPS_MULTITEXTURE \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_MULTITEXTURE ++ sun_java2d_pipe_hw_ContextCapabilities_CAPS_MULTITEXTURE + #define CAPS_TEXNONPOW2 \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_TEXNONPOW2 ++ sun_java2d_pipe_hw_ContextCapabilities_CAPS_TEXNONPOW2 + #define CAPS_TEXNONSQUARE \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_TEXNONSQUARE ++ sun_java2d_pipe_hw_ContextCapabilities_CAPS_TEXNONSQUARE + #define CAPS_PS20 \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_PS20 ++ sun_java2d_pipe_hw_ContextCapabilities_CAPS_PS20 + #define CAPS_PS30 \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_PS30 ++ sun_java2d_pipe_hw_ContextCapabilities_CAPS_PS30 + #define LAST_SHARED_CAP \ + sun_java2d_opengl_OGLContext_OGLContextCaps_LAST_SHARED_CAP + #define CAPS_EXT_FBOBJECT \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_EXT_FBOBJECT ++ sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_FBOBJECT + #define CAPS_STORED_ALPHA \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_STORED_ALPHA ++ sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_STORED_ALPHA + #define CAPS_DOUBLEBUFFERED \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_DOUBLEBUFFERED ++ sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_DOUBLEBUFFERED + #define CAPS_EXT_LCD_SHADER \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_EXT_LCD_SHADER ++ sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_LCD_SHADER + #define CAPS_EXT_BIOP_SHADER \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_EXT_BIOP_SHADER ++ sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_BIOP_SHADER + #define CAPS_EXT_GRAD_SHADER \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_EXT_GRAD_SHADER ++ sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_GRAD_SHADER + #define CAPS_EXT_TEXRECT \ +- sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_EXT_TEXRECT ++ sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_TEXRECT + + /** + * Evaluates to true if the given capability bitmask is present for the diff --git a/patches/boot/jaxp-dependency.patch b/patches/boot/jaxp-dependency.patch new file mode 100644 index 0000000..aa60814 --- /dev/null +++ b/patches/boot/jaxp-dependency.patch @@ -0,0 +1,25 @@ +diff -Nru openjdk-boot.orig/jaxws/build.properties openjdk-boot/jaxws/build.properties +--- openjdk-boot.orig/jaxws/build.properties 2010-07-29 21:54:11.000000000 +0100 ++++ openjdk-boot/jaxws/build.properties 2010-09-01 21:25:29.587888259 +0100 +@@ -62,6 +62,9 @@ + build.dir=${output.dir}/build + build.classes.dir=${build.dir}/classes + ++# JAXP built files ++jaxp.classes.dir=${output.dir}/../jaxp/build/classes ++ + # Distributed results + dist.dir=${output.dir}/dist + dist.lib.dir=${dist.dir}/lib +diff -Nru openjdk-boot.orig/jaxws/build.xml openjdk-boot/jaxws/build.xml +--- openjdk-boot.orig/jaxws/build.xml 2010-09-01 21:00:02.000000000 +0100 ++++ openjdk-boot/jaxws/build.xml 2010-09-01 21:25:29.595887577 +0100 +@@ -124,7 +124,7 @@ + <mkdir dir="${build.classes.dir}"/> + <javac + includeAntRuntime="false" +- classpath="${build.classes.dir}:${tools.jar}" ++ classpath="${jaxp.classes.dir}:${build.classes.dir}:${tools.jar}" + fork="true" + destdir="${build.classes.dir}" + memoryInitialSize="${javac.memoryInitialSize}" diff --git a/patches/boot/jaxws-getdtdtype.patch b/patches/boot/jaxws-getdtdtype.patch new file mode 100644 index 0000000..6a7d6ec --- /dev/null +++ b/patches/boot/jaxws-getdtdtype.patch @@ -0,0 +1,27 @@ +--- openjdk-boot.orig/jaxws/sources/jaxws_src/src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java 2009-11-17 16:37:06.000000000 +0000 ++++ openjdk-boot/jaxws/sources/jaxws_src/src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java 2009-11-17 16:38:00.000000000 +0000 +@@ -276,7 +276,7 @@ + qName = localName; + else + qName = prefix + ':' + localName; +- String type = staxAttr.getDTDType(); ++ String type = staxAttr.getDTDType().toString(); + String value = staxAttr.getValue(); + + attrs.addAttribute(uri, localName, qName, type, value); +--- openjdk-boot.orig/jaxws/sources/jaxws_src/src/com/sun/xml/internal/fastinfoset/stax/events/AttributeBase.java.old 2009-11-17 19:46:11.000000000 +0000 ++++ openjdk-boot/jaxws/sources/jaxws_src/src/com/sun/xml/internal/fastinfoset/stax/events/AttributeBase.java 2009-11-17 19:46:35.000000000 +0000 +@@ -108,11 +108,10 @@ + * the String "CDATA" + * @return the type as a String, default is "CDATA" + */ +- public String getDTDType() { +- return _attributeType; ++ public QName getDTDType() { ++ return new QName(_attributeType); + } + +- + /** + * A flag indicating whether this attribute was actually + * specified in the start-tag of its element, or was defaulted from the schema. diff --git a/patches/boot/jaxws-jdk-dependency.patch b/patches/boot/jaxws-jdk-dependency.patch new file mode 100644 index 0000000..8e36886 --- /dev/null +++ b/patches/boot/jaxws-jdk-dependency.patch @@ -0,0 +1,47 @@ +diff -Nru openjdk-boot.orig/jaxws/build.properties openjdk-boot/jaxws/build.properties +--- openjdk-boot.orig/jaxws/build.properties 2012-06-11 14:30:27.904723311 +0100 ++++ openjdk-boot/jaxws/build.properties 2012-06-11 14:38:13.847981281 +0100 +@@ -62,6 +62,10 @@ + # JAXP built files + jaxp.classes.dir=${output.dir}/../jaxp/build/classes + ++# JDK sources ++ ++jdk.sources=${jdk.topdir}/src/share/classes:${jdk.topdir}/src/solaris/classes ++ + # Distributed results + dist.dir=${output.dir}/dist + dist.lib.dir=${dist.dir}/lib +@@ -92,6 +96,7 @@ + output.dir=${output.dir}${line.separator}\ + build.dir=${build.dir}${line.separator}\ + dist.dir=${dist.dir}${line.separator}\ ++ jdk.topdir=${jdk.topdir}${line.separator}\ + ${line.separator} + + #------------------------------------------------------------ +diff -Nru openjdk-boot.orig/jaxws/build.xml openjdk-boot/jaxws/build.xml +--- openjdk-boot.orig/jaxws/build.xml 2012-06-11 14:30:27.904723311 +0100 ++++ openjdk-boot/jaxws/build.xml 2012-06-11 14:36:04.005990816 +0100 +@@ -138,6 +138,7 @@ + <javac + includeAntRuntime="false" + classpath="${jaxp.classes.dir}:${build.classes.dir}:${langtools.jar}" ++ sourcepath="${jdk.sources}" + fork="true" + destdir="${build.classes.dir}" + memoryInitialSize="${javac.memoryInitialSize}" +diff -Nru openjdk-boot.orig/jaxws/make/Makefile openjdk-boot/jaxws/make/Makefile +--- openjdk-boot.orig/jaxws/make/Makefile 2012-06-11 14:30:27.904723311 +0100 ++++ openjdk-boot/jaxws/make/Makefile 2012-06-11 14:36:04.005990816 +0100 +@@ -123,6 +123,10 @@ + endif + endif + ++ifdef JDK_TOPDIR ++ ANT_OPTIONS += -Djdk.topdir=$(JDK_TOPDIR) ++endif ++ + # Default target and expected 'do everything' target + default: all + diff --git a/patches/boot/jaxws-langtools-dependency.patch b/patches/boot/jaxws-langtools-dependency.patch new file mode 100644 index 0000000..9c0f03a --- /dev/null +++ b/patches/boot/jaxws-langtools-dependency.patch @@ -0,0 +1,48 @@ +diff -Nru openjdk-boot.orig/jaxws/build.properties openjdk-boot/jaxws/build.properties +--- openjdk-boot.orig/jaxws/build.properties 2011-03-08 18:42:23.703875234 +0000 ++++ openjdk-boot/jaxws/build.properties 2011-03-08 18:40:33.955159212 +0000 +@@ -32,7 +32,8 @@ + # other tools, and product versions of all the tools. + # Override this path as needed, either on the command line or in + # one of the standard user build.properties files (see build.xml) +-javac.jar=${bootstrap.dir}/lib/javac.jar ++javac.jar=${langtools.dist}/bootstrap/lib/javac.jar ++langtools.jar=${langtools.dist}/lib/classes.jar + + # The tools.jar is needed in the classpath to compile these sources + jdk.home=${java.home}/.. +@@ -93,8 +94,9 @@ + os.name=${os.name}${line.separator}\ + os.arch=${os.arch}${line.separator}\ + os.version=${os.version}${line.separator}\ +- bootstrap.dir=${bootstrap.dir}${line.separator}\ ++ bootstrap.dir=${langtools.dist}/bootstrap${line.separator}\ + javac.jar=${javac.jar}${line.separator}\ ++ langtools.jar=${langtools.jar}${line.separator}\ + javac.memoryInitialSize=${javac.memoryInitialSize}${line.separator}\ + javac.memoryMaximumSize=${javac.memoryMaximumSize}${line.separator}\ + javac.source=${javac.source}${line.separator}\ +diff -Nru openjdk-boot.orig/jaxws/build.xml openjdk-boot/jaxws/build.xml +--- openjdk-boot.orig/jaxws/build.xml 2011-03-08 18:43:11.778436442 +0000 ++++ openjdk-boot/jaxws/build.xml 2011-03-08 18:40:29.639288336 +0000 +@@ -124,7 +124,7 @@ + <mkdir dir="${build.classes.dir}"/> + <javac + includeAntRuntime="false" +- classpath="${jaxp.classes.dir}:${build.classes.dir}:${tools.jar}" ++ classpath="${jaxp.classes.dir}:${build.classes.dir}:${langtools.jar}" + fork="true" + destdir="${build.classes.dir}" + memoryInitialSize="${javac.memoryInitialSize}" +diff -Nru openjdk-boot.orig/jaxws/make/Makefile openjdk-boot/jaxws/make/Makefile +--- openjdk-boot.orig/jaxws/make/Makefile 2011-03-08 18:41:00.178374622 +0000 ++++ openjdk-boot/jaxws/make/Makefile 2011-03-08 18:40:14.167751211 +0000 +@@ -120,7 +120,7 @@ + ANT_JAVA_HOME = JAVA_HOME=$(ALT_BOOTDIR) + ANT_OPTIONS += -Djdk.home=$(ALT_BOOTDIR) + endif +- ANT_OPTIONS += -Dbootstrap.dir=$(ALT_LANGTOOLS_DIST)/bootstrap ++ ANT_OPTIONS += -Dlangtools.dist=$(ALT_LANGTOOLS_DIST) + else + ifdef ALT_JDK_IMPORT_PATH + ANT_JAVA_HOME = JAVA_HOME=$(ALT_JDK_IMPORT_PATH) diff --git a/patches/boot/jopt.patch b/patches/boot/jopt.patch new file mode 100644 index 0000000..4f0f48c --- /dev/null +++ b/patches/boot/jopt.patch @@ -0,0 +1,26 @@ +diff -Nru openjdk-boot.orig/corba/make/common/shared/Defs-java.gmk openjdk-boot/corba/make/common/shared/Defs-java.gmk +--- openjdk-boot.orig/corba/make/common/shared/Defs-java.gmk 2008-10-22 18:45:43.000000000 +0100 ++++ openjdk-boot/corba/make/common/shared/Defs-java.gmk 2008-10-22 18:49:29.000000000 +0100 +@@ -75,7 +75,9 @@ + JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%) + + # The jar -J options are special, must be added at the end of the command line ++ifneq (,$(JAR_KNOWS_J_OPTIONS)) + JAR_JFLAGS = $(JAVA_TOOLS_FLAGS:%=-J%) ++endif + + # JAVA_TOOLS_DIR is the default location to find Java tools to run, if + # langtools is not available. +diff -Nru openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk openjdk-boot/jdk/make/common/shared/Defs-java.gmk +--- openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk 2008-10-22 19:14:30.000000000 +0100 ++++ openjdk-boot/jdk/make/common/shared/Defs-java.gmk 2008-10-22 19:15:00.000000000 +0100 +@@ -82,7 +82,9 @@ + JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%) + + # The jar -J options are special, must be added at the end of the command line ++ifneq (,$(JAR_KNOWS_J_OPTIONS)) + JAR_JFLAGS = $(JAVA_TOOLS_FLAGS:%=-J%) ++endif + + # JAVA_TOOLS_DIR is the default location to find Java tools to run, if + # langtools is not available. diff --git a/patches/boot/langtools-force-old-jdk.patch b/patches/boot/langtools-force-old-jdk.patch new file mode 100644 index 0000000..e662203 --- /dev/null +++ b/patches/boot/langtools-force-old-jdk.patch @@ -0,0 +1,16 @@ +diff -Nru openjdk-boot.orig/langtools/make/build.xml openjdk-boot/langtools/make/build.xml +--- openjdk-boot.orig/langtools/make/build.xml 2011-03-08 11:36:45.555852490 +0000 ++++ openjdk-boot/langtools/make/build.xml 2011-03-08 18:33:09.332454251 +0000 +@@ -185,12 +185,6 @@ + <isset property="import.jdk.jar"/> + </condition> + +- <condition property="boot.java.provides.latest.jdk"> +- <available +- ignoresystemclasses="true" +- classpath="${boot.java.home}/jre/lib/rt.jar" classname="java.nio.file.Path"/> +- </condition> +- + <condition property="bootstrap.exclude.files" value="" else="${require.latest.jdk.files}"> + <isset property="boot.java.provides.latest.jdk"/> + </condition> diff --git a/patches/boot/pr39408.patch b/patches/boot/pr39408.patch new file mode 100644 index 0000000..48e8a8c --- /dev/null +++ b/patches/boot/pr39408.patch @@ -0,0 +1,18 @@ +diff -Nru openjdk.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c openjdk/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c +--- openjdk-boot.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2012-03-23 10:31:52.798787906 +0000 +@@ -55,6 +55,14 @@ + static int preCloseFD = -1; /* File descriptor to which we dup other fd's + before closing them for real */ + ++#undef sun_nio_ch_FileDispatcher_NO_LOCK ++#define sun_nio_ch_FileDispatcher_NO_LOCK -1L ++#undef sun_nio_ch_FileDispatcher_LOCKED ++#define sun_nio_ch_FileDispatcher_LOCKED 0L ++#undef sun_nio_ch_FileDispatcher_RET_EX_LOCK ++#define sun_nio_ch_FileDispatcher_RET_EX_LOCK 1L ++#undef sun_nio_ch_FileDispatcher_INTERRUPTED ++#define sun_nio_ch_FileDispatcher_INTERRUPTED 2L + + JNIEXPORT void JNICALL + Java_sun_nio_ch_FileDispatcherImpl_init(JNIEnv *env, jclass cl) diff --git a/patches/boot/pr40188.patch b/patches/boot/pr40188.patch new file mode 100644 index 0000000..a6afe5f --- /dev/null +++ b/patches/boot/pr40188.patch @@ -0,0 +1,15 @@ +diff -Nru openjdk-boot.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c openjdk-boot/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c +--- openjdk-boot.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2009-03-30 17:23:08.000000000 +0100 ++++ openjdk-boot/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2009-05-18 19:58:36.000000000 +0100 +@@ -192,9 +192,9 @@ + lockResult = fcntl(fd, cmd, &fl); + if (lockResult < 0) { + if ((cmd == F_SETLK64) && (errno == EAGAIN)) +- return sun_nio_ch_FileDispatcherImpl_NO_LOCK; ++ return sun_nio_ch_FileDispatcher_NO_LOCK; + if (errno == EINTR) +- return sun_nio_ch_FileDispatcherImpl_INTERRUPTED; ++ return sun_nio_ch_FileDispatcher_INTERRUPTED; + JNU_ThrowIOExceptionWithLastError(env, "Lock failed"); + } + return 0; diff --git a/patches/boot/pr40616.patch b/patches/boot/pr40616.patch new file mode 100644 index 0000000..732ed6e --- /dev/null +++ b/patches/boot/pr40616.patch @@ -0,0 +1,52 @@ +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java 2010-05-05 18:45:07.000000000 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java 2010-05-05 21:26:31.000000000 +0100 +@@ -83,8 +83,8 @@ + static void genClass(String args[]) throws Exception + { + InputStream is = new FileInputStream(new File(args[0], "euc_tw.map")); +- PrintStream ps = new PrintStream(new File(args[1], "EUC_TWMapping.java"), +- "ISO-8859-1"); ++ FileOutputStream fos = new FileOutputStream(new File(args[1], "EUC_TWMapping.java")); ++ PrintStream ps = new PrintStream(fos, false, "ISO-8859-1"); + String copyright = getCopyright(new File(args[3])); + + +diff -r c1cee45daf4d make/tools/src/build/tools/charsetmapping/HKSCS.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Wed Apr 28 22:15:05 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Thu May 06 14:17:11 2010 +0100 +@@ -43,29 +43,28 @@ + Pattern.compile("(?:0x)?+(\\p{XDigit}++)\\s++(?:0x|U\\+)?+(\\p{XDigit}++)?\\s*+(?:0x|U\\+)?(\\p{XDigit}++)?\\s*+.*"); + + static void genClass(String args[]) throws Exception { +- ++ FileOutputStream fos = new FileOutputStream(new File(args[1], "HKSCSMapping.java")); + // hkscs2008 + genClass0(new FileInputStream(new File(args[0], "HKSCS2008.map")), + new FileInputStream(new File(args[0], "HKSCS2008.c2b")), +- new PrintStream(new File(args[1], "HKSCSMapping.java"), +- "ISO-8859-1"), ++ new PrintStream(fos, false, "ISO-8859-1"), + "HKSCSMapping", + getCopyright(new File(args[3]))); + + + // xp2001 ++ fos = new FileOutputStream(new File(args[1], "HKSCS_XPMapping.java")); + genClass0(new FileInputStream(new File(args[0], "HKSCS_XP.map")), + null, +- new PrintStream(new File(args[1], "HKSCS_XPMapping.java"), +- "ISO-8859-1"), ++ new PrintStream(fos, false, "ISO-8859-1"), + "HKSCS_XPMapping", + getCopyright(new File(args[3]))); + + // hkscs2001 ++ fos = new FileOutputStream(new File(args[1], "HKSCS2001Mapping.java")); + genClass0(new FileInputStream(new File(args[0], "HKSCS2001.map")), + new FileInputStream(new File(args[0], "HKSCS2001.c2b")), +- new PrintStream(new File(args[1], "HKSCS2001Mapping.java"), +- "ISO-8859-1"), ++ new PrintStream(fos, false, "ISO-8859-1"), + "HKSCS2001Mapping", + getCopyright(new File(args[3]))); + } diff --git a/patches/boot/revert-6941137.patch b/patches/boot/revert-6941137.patch new file mode 100644 index 0000000..3fd2f7c --- /dev/null +++ b/patches/boot/revert-6941137.patch @@ -0,0 +1,12 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java openjdk-boot/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2011-06-11 00:38:11.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2011-06-14 01:44:11.082438342 +0100 +@@ -486,7 +486,7 @@ + String otherDir = getZoneInfoDir(homeDir); + if (otherDir != null) + zi = otherDir; +- zi = FileSystems.getDefault().getPath(zi).toRealPath().toString(); ++ zi = new File(zi).getCanonicalPath(); + } catch(Exception e) { + } + return zi; diff --git a/patches/boot/revert-6973616.patch b/patches/boot/revert-6973616.patch new file mode 100644 index 0000000..5abb0b9 --- /dev/null +++ b/patches/boot/revert-6973616.patch @@ -0,0 +1,12 @@ +diff -Nru openjdk-boot.orig/jdk/make/common/shared/Defs-versions.gmk openjdk-boot/jdk/make/common/shared/Defs-versions.gmk +--- openjdk-boot.orig/jdk/make/common/shared/Defs-versions.gmk 2011-04-11 15:03:04.000000000 +0100 ++++ openjdk-boot/jdk/make/common/shared/Defs-versions.gmk 2011-04-11 17:19:36.394376477 +0100 +@@ -209,7 +209,7 @@ + + # Generic + REQUIRED_ANT_VER = 1.7.1 +-REQUIRED_BOOT_VER = 1.6 ++REQUIRED_BOOT_VER = 1.5 + REQUIRED_FREETYPE_VERSION = 2.2.1 + REQUIRED_MAKE_VER = 3.81 + REQUIRED_UNZIP_VER = 5.12 diff --git a/patches/boot/scanner-charsets.patch b/patches/boot/scanner-charsets.patch new file mode 100644 index 0000000..a3a4b01 --- /dev/null +++ b/patches/boot/scanner-charsets.patch @@ -0,0 +1,69 @@ +diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/EUC_TW.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Mon May 17 20:40:10 2010 +0100 +@@ -27,7 +27,6 @@ + + import java.io.*; + import java.util.ArrayList; +-import java.util.Scanner; + import java.util.Formatter; + import java.util.regex.*; + import java.nio.charset.*; +diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/HKSCS.java +--- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Mon May 17 20:40:10 2010 +0100 +@@ -28,7 +28,6 @@ + import java.io.*; + import java.util.Arrays; + import java.util.ArrayList; +-import java.util.Scanner; + import java.util.Formatter; + import java.util.regex.*; + import java.nio.charset.*; +diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/Main.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/Main.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/Main.java Mon May 17 20:40:10 2010 +0100 +@@ -25,9 +25,6 @@ + + package build.tools.charsetmapping; + +-import java.io.*; +-import java.util.Scanner; +- + public class Main { + + public static void main(String args[]) throws Exception { +diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/Utils.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Mon May 17 20:40:10 2010 +0100 +@@ -26,6 +26,7 @@ + package build.tools.charsetmapping; + + import java.io.File; ++import java.io.FileInputStream; + import java.io.InputStream; + import java.io.InputStreamReader; + import java.io.OutputStream; +@@ -33,7 +34,6 @@ + import java.io.IOException; + import java.util.regex.Matcher; + import java.util.regex.Pattern; +-import java.util.Scanner; + import java.util.Formatter; + + public class Utils { +@@ -206,10 +206,11 @@ + } + + public static String getCopyright(File f) throws IOException { +- Scanner s = new Scanner(f, "ISO-8859-1"); ++ InputStreamReader r = new InputStreamReader(new FileInputStream(f), ++ "ISO-8859-1"); ++ BufferedReader s = new BufferedReader(r); + StringBuilder sb = new StringBuilder(); +- while (s.hasNextLine()) { +- String ln = s.nextLine(); ++ for (String ln = s.readLine(); ln != null; ln = s.readLine()) { + sb.append(ln + "\n"); + // assume we have the copyright as the first comment + if (ln.matches("^\\s\\*\\/$")) diff --git a/patches/boot/scanner-dbcs.patch b/patches/boot/scanner-dbcs.patch new file mode 100644 index 0000000..4dc3990 --- /dev/null +++ b/patches/boot/scanner-dbcs.patch @@ -0,0 +1,40 @@ +diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:24:56.000000000 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:34:01.000000000 +0100 +@@ -27,7 +27,6 @@ + import java.io.*; + import java.util.Arrays; + import java.util.ArrayList; +-import java.util.Scanner; + import java.util.Formatter; + import java.util.regex.*; + import java.nio.charset.*; +@@ -39,9 +38,8 @@ + + public static void genClass(String args[]) throws Exception { + +- Scanner s = new Scanner(new File(args[0], args[2])); +- while (s.hasNextLine()) { +- String line = s.nextLine(); ++ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2]))); ++ for (String line = s.readLine(); line != null; line = s.readLine()) { + if (line.startsWith("#") || line.length() == 0) + continue; + String[] fields = line.split("\\s+"); +@@ -188,14 +186,13 @@ + String b2cNR = b2cNRSB.toString(); + String c2bNR = c2bNRSB.toString(); + +- Scanner s = new Scanner(new File(srcDir, template)); ++ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template))); + PrintStream ops = new PrintStream(new FileOutputStream( + new File(dstDir, clzName + ".java"))); + if (hisName == null) + hisName = ""; + +- while (s.hasNextLine()) { +- String line = s.nextLine(); ++ for (String line = s.readLine(); line != null; line = s.readLine()) { + if (line.indexOf("$") == -1) { + ops.println(line); + continue; diff --git a/patches/boot/scanner-sbcs.patch b/patches/boot/scanner-sbcs.patch new file mode 100644 index 0000000..e711de1 --- /dev/null +++ b/patches/boot/scanner-sbcs.patch @@ -0,0 +1,38 @@ +diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:09:01.000000000 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:17:47.000000000 +0100 +@@ -28,7 +28,6 @@ + import java.io.*; + import java.util.Arrays; + import java.util.ArrayList; +-import java.util.Scanner; + import java.util.Formatter; + import java.util.regex.*; + import java.nio.charset.*; +@@ -38,9 +37,8 @@ + + public static void genClass(String args[]) throws Exception { + +- Scanner s = new Scanner(new File(args[0], args[2])); +- while (s.hasNextLine()) { +- String line = s.nextLine(); ++ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2]))); ++ for (String line = s.readLine(); line != null; line = s.readLine()) { + if (line.startsWith("#") || line.length() == 0) + continue; + String[] fields = line.split("\\s+"); +@@ -208,12 +206,11 @@ + String b2cNR = b2cNRSB.toString(); + String c2bNR = c2bNRSB.toString(); + +- Scanner s = new Scanner(new File(srcDir, template)); ++ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template))); + PrintStream out = new PrintStream(new FileOutputStream( + new File(dstDir, clzName + ".java"))); + +- while (s.hasNextLine()) { +- String line = s.nextLine(); ++ for (String line = s.readLine(); line != null; line = s.readLine()) { + int i = line.indexOf("$"); + if (i == -1) { + out.println(line); diff --git a/patches/boot/scanner-spp.patch b/patches/boot/scanner-spp.patch new file mode 100644 index 0000000..64a4498 --- /dev/null +++ b/patches/boot/scanner-spp.patch @@ -0,0 +1,65 @@ +diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-11 08:44:09.000000000 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-12 21:34:38.000000000 +0100 +@@ -25,6 +25,10 @@ + + package build.tools.spp; + ++import java.io.BufferedReader; ++import java.io.InputStreamReader; ++import java.io.IOException; ++ + import java.util.*; + import java.util.regex.*; + +@@ -83,7 +87,7 @@ + } + + StringBuffer out = new StringBuffer(); +- new Spp().spp(new Scanner(System.in), ++ new Spp().spp(new BufferedReader(new InputStreamReader(System.in)), + out, "", + keys, vars, be, + false); +@@ -104,12 +108,12 @@ + Matcher ifkey = Pattern.compile("^#if\\[(!)?" + KEY + "\\]").matcher(""); + Matcher elsekey = Pattern.compile("^#else\\[(!)?" + KEY + "\\]").matcher(""); + Matcher endkey = Pattern.compile("^#end\\[(!)?" + KEY + "\\]").matcher(""); +- Matcher vardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$").matcher(""); ++ Pattern pvardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$"); + Matcher vardef2 = Pattern.compile("\\$" + VAR + "\\$").matcher(""); + + void append(StringBuffer buf, String ln, + Set<String> keys, Map<String, String> vars) { +- vardef.reset(ln); ++ Matcher vardef = pvardef.matcher(ln); + while (vardef.find()) { + String repl = ""; + if (vardef.group(GN_VAR) != null) +@@ -133,19 +137,20 @@ + } + + // return true if #end[key], #end or EOF reached +- boolean spp(Scanner in, StringBuffer buf, String key, ++ boolean spp(BufferedReader in, StringBuffer buf, String key, + Set<String> keys, Map<String, String> vars, +- boolean be, boolean skip) { +- while (in.hasNextLine()) { +- String ln = in.nextLine(); ++ boolean be, boolean skip) throws IOException { ++ while (true) { ++ String ln = in.readLine(); ++ if (ln == null) ++ break; + if (be) { + if (ln.startsWith("#begin")) { + buf.setLength(0); //clean up to this line + continue; + } + if (ln.equals("#end")) { +- while (in.hasNextLine()) +- in.nextLine(); ++ do { } while (in.readLine() != null); + return true; //discard the rest to EOF + } + } diff --git a/patches/boot/symbols.patch b/patches/boot/symbols.patch new file mode 100644 index 0000000..8803b0c --- /dev/null +++ b/patches/boot/symbols.patch @@ -0,0 +1,23 @@ +diff -Nru openjdk-boot.orig/jdk/make/common/Release.gmk openjdk-boot/jdk/make/common/Release.gmk +--- openjdk-boot.orig/jdk/make/common/Release.gmk 2011-06-13 17:19:59.000000000 +0100 ++++ openjdk-boot/jdk/make/common/Release.gmk 2011-06-14 01:19:26.469436464 +0100 +@@ -975,19 +975,6 @@ + @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) + $(CP) $(LIBDIR)/tools.jar $(JDK_IMAGE_DIR)/lib/tools.jar + @# +- @# lib/ct.sym +- @# +- $(MKDIR) -p $(OUTPUTDIR)/symbols/META-INF/sym +- $(JAVAC_CMD) -XDprocess.packages -proc:only \ +- -processor com.sun.tools.javac.sym.CreateSymbols \ +- -Acom.sun.tools.javac.sym.Jar=$(RT_JAR) \ +- -Acom.sun.tools.javac.sym.Dest=$(OUTPUTDIR)/symbols/META-INF/sym/rt.jar \ +- $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS) +- $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $(LIBDIR)/ct.sym \ +- -C $(OUTPUTDIR)/symbols META-INF $(BOOT_JAR_JFLAGS) +- @$(java-vm-cleanup) +- $(CP) $(LIBDIR)/ct.sym $(JDK_IMAGE_DIR)/lib/ct.sym +- @# + @# CORBA supported orb.idl and ir.idl should be copied to lib + @# + $(CP) $(LIBDIR)/orb.idl $(JDK_IMAGE_DIR)/lib/orb.idl diff --git a/patches/boot/test_gamma.patch b/patches/boot/test_gamma.patch new file mode 100644 index 0000000..9e3cc25 --- /dev/null +++ b/patches/boot/test_gamma.patch @@ -0,0 +1,47 @@ +diff -Nru ../openjdk.orig/openjdk-boot/hotspot/make/linux/Makefile openjdk-boot/hotspot/make/linux/Makefile +--- ../openjdk.orig/openjdk-boot/hotspot/make/linux/Makefile 2009-10-30 17:37:07.000000000 +0000 ++++ openjdk-boot/hotspot/make/linux/Makefile 2009-10-30 17:45:40.000000000 +0000 +@@ -287,42 +287,36 @@ + + $(TARGETS_C2): $(SUBDIRS_C2) + cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) +- cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && ./test_gamma + ifdef INSTALL + cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) install + endif + + $(TARGETS_TIERED): $(SUBDIRS_TIERED) + cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) +- cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && ./test_gamma + ifdef INSTALL + cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) install + endif + + $(TARGETS_C1): $(SUBDIRS_C1) + cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) +- cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && ./test_gamma + ifdef INSTALL + cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) install + endif + + $(TARGETS_CORE): $(SUBDIRS_CORE) + cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) +- cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && ./test_gamma + ifdef INSTALL + cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install + endif + + $(TARGETS_ZERO): $(SUBDIRS_ZERO) + cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) +- cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && ./test_gamma + ifdef INSTALL + cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) install + endif + + $(TARGETS_SHARK): $(SUBDIRS_SHARK) + cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS) +- cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && ./test_gamma + ifdef INSTALL + cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS) install + endif + diff --git a/patches/boot/tobin.patch b/patches/boot/tobin.patch new file mode 100644 index 0000000..cdf6469 --- /dev/null +++ b/patches/boot/tobin.patch @@ -0,0 +1,39 @@ +diff -Nru ../openjdk.orig/openjdk-boot/jdk/make/sun/xawt/Makefile openjdk-boot/jdk/make/sun/xawt/Makefile +--- ../openjdk.orig/openjdk-boot/jdk/make/sun/xawt/Makefile 2009-10-30 16:49:39.000000000 +0000 ++++ openjdk-boot/jdk/make/sun/xawt/Makefile 2009-10-30 16:59:16.000000000 +0000 +@@ -294,11 +294,7 @@ + + TEMPDIR_CLASSES = $(TEMPDIR)/classes + +-$(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class: ToBin.java +- @$(prep-target) +- $(BOOT_JAVAC_CMD) -d $(TEMPDIR_CLASSES) $< +- +-$(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class $(ICONS) ++$(TEMPDIR)/.gen_icons: $(ICONS) + $(prep-target) + for i in $(ICONS); do \ + filename=`basename $$i`; \ +@@ -308,20 +304,14 @@ + $(ECHO) "package sun.awt.X11;" >> $$classname ; \ + $(ECHO) "public class XAWTIcon32_$$name {" >> $$classname; \ + $(ECHO) "public static int[] $$name = { " >> $$classname; \ +- $(CAT) $$i | \ +- $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \ +- -Djava.awt.headless=true \ +- sun.awt.X11.ToBin >> $$classname; \ ++ $(ECHO) "0,0" >> $$classname ; \ + $(ECHO) "}; }" >> $$classname; \ + classname=$(GEN_DIR)/XAWTIcon64_$$name.java; \ + $(RM) $$classname; \ + $(ECHO) "package sun.awt.X11;" >> $$classname ; \ + $(ECHO) "public class XAWTIcon64_$$name {" >> $$classname; \ + $(ECHO) "public static long[] $$name = { " >> $$classname; \ +- $(CAT) $$i | \ +- $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \ +- -Djava.awt.headless=true \ +- sun.awt.X11.ToBin >> $$classname; \ ++ $(ECHO) "0,0" >> $$classname ; \ + $(ECHO) "}; }" >> $$classname; \ + done + $(TOUCH) $@ diff --git a/patches/boot/tools.jar.patch b/patches/boot/tools.jar.patch new file mode 100644 index 0000000..846993a --- /dev/null +++ b/patches/boot/tools.jar.patch @@ -0,0 +1,14 @@ +diff -Nru openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make openjdk-boot/hotspot/make/linux/makefiles/sa.make +--- openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make 2010-08-27 19:15:27.000000000 +0100 ++++ openjdk-boot/hotspot/make/linux/makefiles/sa.make 2010-09-01 20:49:39.417105243 +0100 +@@ -71,8 +71,8 @@ + echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \ + exit 1; \ + fi +- $(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \ +- echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\ ++ $(QUIETLY) if [ ! -d $(MODULELIB_PATH) ] ; then \ ++ echo "$(MODULELIB_PATH) is not a directory.";\ + echo ""; \ + exit 1; \ + fi diff --git a/patches/boot/use_target_6_for_bootstrap_classes.patch b/patches/boot/use_target_6_for_bootstrap_classes.patch new file mode 100644 index 0000000..9f847a2 --- /dev/null +++ b/patches/boot/use_target_6_for_bootstrap_classes.patch @@ -0,0 +1,77 @@ +diff -r 9cf5ed6b45d6 make/java/text/base/Makefile +--- openjdk-boot/jdk/make/java/text/base/Makefile Mon Jul 25 16:20:39 2011 -0700 ++++ openjdk-boot/jdk/make/java/text/base/Makefile Wed Jul 27 19:10:34 2011 +0100 +@@ -34,6 +34,9 @@ + # + include FILES_java.gmk + ++LANGUAGE_VERSION = -source 6 ++CLASS_VERSION = -target 6 ++ + # + # Include + # +diff -r 9cf5ed6b45d6 make/java/java/Makefile +--- openjdk-boot/jdk/make/java/java/Makefile Mon Jul 25 16:20:39 2011 -0700 ++++ openjdk-boot/jdk/make/java/java/Makefile Thu Jul 28 02:14:07 2011 +0100 +@@ -52,6 +52,8 @@ + OTHER_CFLAGS += -DJDK_UPDATE_VERSION='"$(JDK_UPDATE_VERSION)"' + endif + ++LANGUAGE_VERSION = -source 6 ++CLASS_VERSION = -target 6 + + # + # Files to compile. +diff -r 9cf5ed6b45d6 make/sun/rmi/rmi/Makefile +--- openjdk-boot/jdk/make/sun/rmi/rmi/Makefile Mon Jul 25 16:20:39 2011 -0700 ++++ openjdk-boot/jdk/make/sun/rmi/rmi/Makefile Thu Jul 28 03:12:35 2011 +0100 +@@ -33,6 +33,9 @@ + LIBRARY = rmi + include $(BUILDDIR)/common/Defs.gmk + ++LANGUAGE_VERSION = -source 6 ++CLASS_VERSION = -target 6 ++ + # + # Add use of a mapfile + # +diff -r 9cf5ed6b45d6 make/com/sun/jndi/rmi/registry/Makefile +--- openjdk-boot/jdk/make/com/sun/jndi/rmi/registry/Makefile Mon Jul 25 16:20:39 2011 -0700 ++++ openjdk-boot/jdk/make/com/sun/jndi/rmi/registry/Makefile Thu Jul 28 04:26:24 2011 +0100 +@@ -32,6 +32,9 @@ + PRODUCT = sun + include $(BUILDDIR)/common/Defs.gmk + ++LANGUAGE_VERSION = -source 6 ++CLASS_VERSION = -target 6 ++ + # + # Files to compile + # +diff -r 9cf5ed6b45d6 make/com/sun/jndi/cosnaming/Makefile +--- openjdk-boot/jdk/make/com/sun/jndi/cosnaming/Makefile Mon Jul 25 16:20:39 2011 -0700 ++++ openjdk-boot/jdk/make/com/sun/jndi/cosnaming/Makefile Thu Jul 28 05:50:27 2011 +0100 +@@ -32,6 +32,9 @@ + PRODUCT = sun + include $(BUILDDIR)/common/Defs.gmk + ++LANGUAGE_VERSION = -source 6 ++CLASS_VERSION = -target 6 ++ + # + # Resources + # +diff --git a/make/sun/security/action/Makefile b/make/sun/security/action/Makefile +--- openjdk-boot/jdk/make/sun/security/action/Makefile ++++ openjdk-boot/jdk/make/sun/security/action/Makefile +@@ -28,6 +28,9 @@ + PRODUCT = sun + include $(BUILDDIR)/common/Defs.gmk + ++LANGUAGE_VERSION = -source 6 ++CLASS_VERSION = -target 6 ++ + # + # Files + # diff --git a/patches/boot/xbootclasspath.patch b/patches/boot/xbootclasspath.patch new file mode 100644 index 0000000..aaa5b39 --- /dev/null +++ b/patches/boot/xbootclasspath.patch @@ -0,0 +1,120 @@ +diff -Nru openjdk-boot.orig/corba/make/common/shared/Defs-java.gmk openjdk-boot/corba/make/common/shared/Defs-java.gmk +--- openjdk-boot.orig/corba/make/common/shared/Defs-java.gmk 2012-06-29 15:19:55.000000000 +0100 ++++ openjdk-boot/corba/make/common/shared/Defs-java.gmk 2012-06-29 18:52:40.584723407 +0100 +@@ -131,26 +131,14 @@ + CLASS_VERSION = -target $(TARGET_CLASS_VERSION) + JAVACFLAGS += $(CLASS_VERSION) + JAVACFLAGS += -encoding ascii +-JAVACFLAGS += -classpath $(BOOTDIR)/lib/tools.jar ++JAVACFLAGS += -classpath $(LANGTOOLS_DIST)/lib/classes.jar + JAVACFLAGS += $(OTHER_JAVACFLAGS) + + # Langtools +-ifdef LANGTOOLS_DIST +- JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar +- JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar +- DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar +- JAVAC_CMD = $(BOOT_JAVA_CMD) \ +- "-Xbootclasspath/p:$(JAVAC_JAR)" \ +- -jar $(JAVAC_JAR) $(JAVACFLAGS) +- JAVADOC_CMD = $(BOOT_JAVA_CMD) \ +- "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \ +- -jar $(JAVADOC_JAR) +-else +- # If no explicit tools, use boot tools (add VM flags in this case) +- JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ +- $(JAVACFLAGS) +- JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) +-endif ++# If no explicit tools, use boot tools (add VM flags in this case) ++JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ ++ $(JAVACFLAGS) ++JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) + + # Override of what javac to use (see deploy workspace) + ifdef JAVAC +diff -Nru openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk openjdk-boot/jdk/make/common/shared/Defs-java.gmk +--- openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk 2012-06-29 15:21:00.000000000 +0100 ++++ openjdk-boot/jdk/make/common/shared/Defs-java.gmk 2012-06-29 18:53:43.337711469 +0100 +@@ -157,7 +157,7 @@ + JAVACFLAGS += $(OTHER_JAVACFLAGS) + + # Needed for javah +-JAVAHFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCE_PATH)" ++JAVAHFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCE_PATH):$(ICEDTEA_RT):$(CLASSDESTDIR)" + + # Needed for javadoc to ensure it builds documentation + # against the newly built classes +@@ -168,27 +168,15 @@ + + # Langtools + ifdef LANGTOOLS_DIST +- JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar +- JAVAH_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar + JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar + DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar +- JAVAC_CMD = $(BOOT_JAVA_CMD) \ +- "-Xbootclasspath/p:$(JAVAC_JAR)" \ +- -jar $(JAVAC_JAR) $(JAVACFLAGS) +- JAVAH_CMD = $(BOOT_JAVA_CMD) \ +- "-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)" \ +- -jar $(JAVAH_JAR) $(JAVAHFLAGS) + JAVADOC_CMD = $(BOOT_JAVA_CMD) \ + "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \ + -jar $(JAVADOC_JAR) $(JAVADOCFLAGS) +-else +- # If no explicit tools, use boot tools (add VM flags in this case) + JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ + $(JAVACFLAGS) + JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \ + $(JAVAHFLAGS) +- JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) \ +- $(JAVADOCFLAGS) + endif + + # Override of what javac to use (see deploy workspace) +diff -Nru openjdk-boot.orig/jdk/make/java/text/base/Makefile openjdk-boot/jdk/make/java/text/base/Makefile +--- openjdk-boot.orig/jdk/make/java/text/base/Makefile 2012-06-29 15:21:00.000000000 +0100 ++++ openjdk-boot/jdk/make/java/text/base/Makefile 2012-06-29 18:52:40.596723600 +0100 +@@ -80,8 +80,8 @@ + -sourcepath $(TEXT_SRCDIR) \ + $(TEXT_SOURCES) + $(MKDIR) -p $(TEXT_CLASSDIR) +- $(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \ +- -jar $(GENERATEBREAKITERATORDATA_JARFILE) \ ++ $(BOOT_JAVA_CMD) -cp $(TEXT_CLASSES):$(GENERATEBREAKITERATORDATA_JARFILE):$(ABS_OUTPUTDIR)/classes \ ++ build.tools.generatebreakiteratordata.GenerateBreakIteratorData \ + -o $(TEXT_CLASSDIR) \ + -spec $(UNICODEDATA)/UnicodeData.txt + @$(java-vm-cleanup) +diff -Nru openjdk-boot.orig/jdk/make/sun/text/Makefile openjdk-boot/jdk/make/sun/text/Makefile +--- openjdk-boot.orig/jdk/make/sun/text/Makefile 2012-06-29 15:21:00.000000000 +0100 ++++ openjdk-boot/jdk/make/sun/text/Makefile 2012-06-29 18:52:40.596723600 +0100 +@@ -85,8 +85,9 @@ + $(BOOT_JAVAC_CMD) -d $(TEXT_CLASSES) \ + -sourcepath $(TEXT_SRCDIR) \ + $(BIRULES) $(BIINFO) +- $(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \ +- -jar $(GENERATEBREAKITERATORDATA_JARFILE) \ ++ $(BOOT_JAVA_CMD) \ ++ -cp $(TEXT_CLASSES):$(ABS_OUTPUTDIR)/classes:$(GENERATEBREAKITERATORDATA_JARFILE) \ ++ build.tools.generatebreakiteratordata.GenerateBreakIteratorData \ + -o $(CLASSDESTDIR)/sun/text/resources \ + -spec $(UNICODEDATA)/UnicodeData.txt \ + -language th +diff -Nru openjdk-boot.orig/langtools/make/build.xml openjdk-boot/langtools/make/build.xml +--- openjdk-boot.orig/langtools/make/build.xml 2012-06-29 18:09:26.064153871 +0100 ++++ openjdk-boot/langtools/make/build.xml 2012-06-29 18:52:40.596723600 +0100 +@@ -872,10 +872,8 @@ + executable="${boot.java.home}/bin/javac" + srcdir="${make.tools.dir}/GenStubs" + destdir="${build.toolclasses.dir}/" +- classpath="${ant.core.lib}" +- includeantruntime="false"> +- <compilerarg value="-Xbootclasspath/p:${build.bootstrap.dir}/classes"/> +- </javac> ++ classpath="${build.bootstrap.dir}/classes:${ant.core.lib}" ++ includeantruntime="false"/> + <taskdef name="genstubs" + classname="GenStubs$$Ant" + classpath="${build.toolclasses.dir}:${build.bootstrap.dir}/classes:${ant.home}/lib/ant.jar"/> diff --git a/patches/boot/xsltproc.patch b/patches/boot/xsltproc.patch new file mode 100644 index 0000000..7a1fcf0 --- /dev/null +++ b/patches/boot/xsltproc.patch @@ -0,0 +1,54 @@ +diff -r 591c7dc0b2ee make/linux/makefiles/jvmti.make +--- openjdk-boot/hotspot/make/linux/makefiles/jvmti.make Thu May 19 13:27:44 2011 +0200 ++++ openjdk-boot/hotspot/make/linux/makefiles/jvmti.make Wed May 25 20:01:25 2011 +0100 +@@ -58,8 +58,6 @@ + + JvmtiGeneratedFiles = $(JvmtiGeneratedNames:%=$(JvmtiOutDir)/%) + +-XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiGen +- + .PHONY: all jvmtidocs clean cleanall + + # ######################################################################### +@@ -76,34 +74,34 @@ + + $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnter.cpp -PARAM interface jvmti ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnter.cpp --stringparam interface jvmti $(JvmtiSrcDir)/jvmtiEnter.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp: $(JvmtiGenClass) $(InterpreterSrcDir)/bytecodeInterpreter.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl + @echo Generating $@ +- $(XSLT) -IN $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml -XSL $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl -OUT $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp ++ $(XSLT) -o $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml + + $(JvmtiOutDir)/jvmtiEnterTrace.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnterTrace.cpp -PARAM interface jvmti -PARAM trace Trace ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnterTrace.cpp --stringparam interface jvmti --stringparam trace Trace $(JvmtiSrcDir)/jvmtiEnter.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/jvmtiEnvRecommended.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiEnvFillClass) + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnv.xsl -OUT $(JvmtiOutDir)/jvmtiEnvStub.cpp ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmti.xml + $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiEnvFill $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiOutDir)/jvmtiEnvRecommended.cpp + + $(JvmtiOutDir)/jvmtiEnv.hpp: $(both) $(JvmtiSrcDir)/jvmtiHpp.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiHpp.xsl -OUT $(JvmtiOutDir)/jvmtiEnv.hpp ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnv.hpp $(JvmtiSrcDir)/jvmtiHpp.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/jvmti.h: $(both) $(JvmtiSrcDir)/jvmtiH.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiH.xsl -OUT $(JvmtiOutDir)/jvmti.h ++ $(XSLT) -o $(JvmtiOutDir)/jvmti.h $(JvmtiSrcDir)/jvmtiH.xsl $(JvmtiSrcDir)/jvmti.xml + + jvmtidocs: $(JvmtiOutDir)/jvmti.html + + $(JvmtiOutDir)/jvmti.html: $(both) $(JvmtiSrcDir)/jvmti.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmti.xsl -OUT $(JvmtiOutDir)/jvmti.html ++ $(XSLT) -o $(JvmtiOutDir)/jvmti.html $(JvmtiSrcDir)/jvmti.xsl $(JvmtiSrcDir)/jvmti.xml + + # ######################################################################### + |