IcedTea7 forest & OpenJDK7 u2
Dr Andrew John Hughes
ahughes at redhat.com
Mon Jan 16 15:06:26 PST 2012
On 00:23 Mon 16 Jan , Damien Raude-Morvan wrote:
> Hi Andrew,
>
> Le mardi 10 janvier 2012 14:34:57, Dr Andrew John Hughes a écrit :
> > I've done a merge of the OpenJDK7 u2 changes into the IcedTea7 forest
> > and made them available at:
> >
> > http://icedtea.classpath.org/people/andrew/icedtea7-forest
> >
> > Please test this out over the next few days. If there are no issues
> > by the end of the week, I'll push the changes to the main tree.
> >
> > We should follow this with a 2.1 release shortly after.
>
> I've tried to build your icedtea7-forest with actual icedtea7 tip and managed
> to get hotspot building with small refresh / update to boot patches (see ecj-*
> attachements). I've also refreshed rhino.patch as one hunk failed. Maybe you
> can import my changes into icedtea7 tip ?
>
Thanks. I hadn't looked at IcedTea support yet. Hopefully your patches will save
me time in having to do this.
> Unfortunately, ZeroVM (as alternative vm) seems to fail to build. I've to re-
> run a new build to get actual error.
>
Ok. My main concern at this point is the 'normal' HotSpot build. There are already
known issues with Zero/Shark and the older HotSpot in IcedTea6, never mind 7.
> Regards,
> --
> Damien
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java
> @@ -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++) != '[')
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java
> @@ -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;
> @@ -1068,8 +1068,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) {
> @@ -1704,7 +1704,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;
> @@ -1713,16 +1713,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)));
>
> }
> @@ -1912,7 +1912,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;
> @@ -2536,7 +2536,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;
> }
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java
> @@ -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(),
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java
> @@ -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]);
> }
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java
> @@ -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]);
> }
> @@ -1133,7 +1133,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
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
> @@ -59,7 +59,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;
> @@ -82,7 +82,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;
> @@ -96,7 +96,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);
> @@ -530,7 +530,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}+");
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java
> @@ -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))
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java
> @@ -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();
> }
>
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java
> @@ -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));
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java
> @@ -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() {
> --- openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java
> @@ -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]);
> --- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java
> @@ -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();
>
> --- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java
> @@ -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) {
> --- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
> @@ -184,7 +184,7 @@
> private UnixNumericUserPrincipal UIDPrincipal;
> private UnixNumericGroupPrincipal GIDPrincipal;
> private LinkedList<UnixNumericGroupPrincipal> supplementaryGroups =
> - new LinkedList<>();
> + new LinkedList<UnixNumericGroupPrincipal>();
>
> // initial state
> private Subject subject;
> --- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java
> @@ -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]);
> }
> --- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java
> @@ -76,7 +76,7 @@
> private SolarisNumericUserPrincipal UIDPrincipal;
> private SolarisNumericGroupPrincipal GIDPrincipal;
> private LinkedList<SolarisNumericGroupPrincipal> supplementaryGroups =
> - new LinkedList<>();
> + new LinkedList<SolarisNumericGroupPrincipal>();
>
> /**
> * Initialize this <code>LoginModule</code>.
> --- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java
> @@ -70,7 +70,7 @@
> private UnixNumericUserPrincipal UIDPrincipal;
> private UnixNumericGroupPrincipal GIDPrincipal;
> private LinkedList<UnixNumericGroupPrincipal> supplementaryGroups =
> - new LinkedList<>();
> + new LinkedList<UnixNumericGroupPrincipal>();
>
> /**
> * Initialize this <code>LoginModule</code>.
> --- openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java
> @@ -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");
> --- openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/beans/Introspector.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/beans/ThreadGroupContext.java
> @@ -42,7 +42,7 @@
> */
> final class ThreadGroupContext {
>
> - private static final Map<ThreadGroup, ThreadGroupContext> contexts = new WeakHashMap<>();
> + private static final Map<ThreadGroup, ThreadGroupContext> contexts = new WeakHashMap();
>
> /**
> * Returns the appropriate {@code AppContext} for the caller,
> @@ -99,7 +99,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);
> }
> --- openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/io/DeleteOnExitHook.java
> @@ -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.
> --- openjdk-boot/jdk/src/share/classes/java/io/File.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/io/File.java
> @@ -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))
> --- openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/io/FileInputStream.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/io/FileOutputStream.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/io/FilePermission.java
> @@ -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);
> }
> }
> --- openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/io/ObjectInputStream.java
> @@ -213,7 +213,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);
> @@ -229,11 +229,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 */
> --- openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/io/ObjectOutputStream.java
> @@ -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>();
> }
>
> /**
> --- openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/io/ObjectStreamClass.java
> @@ -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) */
> @@ -290,7 +290,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);
> @@ -1130,7 +1130,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
> @@ -1566,7 +1566,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];
> @@ -1604,7 +1604,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++) {
> @@ -1855,8 +1855,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++) {
> @@ -2092,7 +2092,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);
> --- openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/ApplicationShutdownHooks.java
> @@ -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.
> --- openjdk-boot/jdk/src/share/classes/java/lang/Character.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/Character.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/CharacterName.java
> @@ -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 {
> --- openjdk-boot/jdk/src/share/classes/java/lang/Class.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/Class.java
> @@ -1308,7 +1308,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();
> @@ -2308,9 +2308,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;
> @@ -2332,9 +2332,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
> @@ -2360,7 +2360,7 @@
> res = new Field[fields.size()];
> fields.toArray(res);
> if (useCaches) {
> - publicFields = new SoftReference<>(res);
> + publicFields = new SoftReference<Field[]>(res);
> }
> return res;
> }
> @@ -2405,9 +2405,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;
> @@ -2442,9 +2442,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;
> @@ -2600,7 +2600,7 @@
> methods.compactAndTrim();
> res = methods.getArray();
> if (useCaches) {
> - publicMethods = new SoftReference<>(res);
> + publicMethods = new SoftReference<Method[]>(res);
> }
> return res;
> }
> @@ -2979,7 +2979,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;
> @@ -3092,7 +3092,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();
> --- openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/ClassLoader.java
> @@ -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[];
> @@ -2097,8 +2101,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;
> }
> }
> @@ -2160,8 +2164,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++)
> --- openjdk-boot/jdk/src/share/classes/java/lang/Package.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java
> @@ -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();
> --- openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java
> @@ -214,7 +214,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);
> }
> @@ -251,7 +251,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;
> --- openjdk-boot/jdk/src/share/classes/java/lang/String.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/String.java
> @@ -2330,7 +2330,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));
> --- openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/StringCoding.java
> @@ -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;
>
> --- openjdk-boot/jdk/src/share/classes/java/lang/Thread.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/Thread.java
> @@ -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<?>>();
> }
>
> /**
> --- openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/Throwable.java
> @@ -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);
> }
> --- openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java
> @@ -789,7 +789,7 @@
> getPlatformManagementInterfaces()
> {
> Set<Class<? extends PlatformManagedObject>> result =
> - new TreeSet<>();
> + new TreeSet<Class<? extends PlatformManagedObject>>();
> for (PlatformComponent component: PlatformComponent.values()) {
> result.add(component.getMXBeanInterface());
> }
> --- openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/management/PlatformComponent.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Constructor.java
> @@ -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,
> --- openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java
> @@ -232,7 +232,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();
> @@ -356,7 +356,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++) {
> /*
> @@ -413,7 +413,7 @@
> synchronized (loaderToCache) {
> cache = loaderToCache.get(loader);
> if (cache == null) {
> - cache = new HashMap<>();
> + cache = new HashMap<List<String>, Object>();
> loaderToCache.put(loader, cache);
> }
> /*
> --- openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/ReflectAccess.java
> @@ -84,7 +84,7 @@
> byte[] annotations,
> byte[] parameterAnnotations)
> {
> - return new Constructor<>(declaringClass,
> + return new Constructor<T>(declaringClass,
> parameterTypes,
> checkedExceptions,
> modifiers,
> --- openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/net/InetAddress.java
> @@ -677,7 +677,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
> @@ -736,7 +736,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);
> --- openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/net/URLClassLoader.java
> @@ -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.
> --- openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java
> @@ -1487,7 +1487,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) {
> @@ -3008,7 +3008,7 @@
> BufferedReader reader = null;
> try {
> reader = newBufferedReader(path, cs);
> - List<String> result = new ArrayList<>();
> + List<String> result = new ArrayList();
> for (;;) {
> String line = reader.readLine();
> if (line == null)
> --- openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/AccessControlContext.java
> @@ -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]);
> --- openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/BasicPermission.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/CodeSource.java
> @@ -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;
>
> --- openjdk-boot/jdk/src/share/classes/java/security/Permissions.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/Permissions.java
> @@ -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);
> }
> --- openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/ProtectionDomain.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/security/Provider.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/Provider.java
> @@ -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) {
> --- openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/SecureClassLoader.java
> @@ -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");
>
> --- openjdk-boot/jdk/src/share/classes/java/security/Security.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/Security.java
> @@ -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++) {
> --- openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermission.java
> @@ -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]);
> --- openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/AbstractList.java
> @@ -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);
> }
> }
> --- openjdk-boot/jdk/src/share/classes/java/util/Arrays.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/Arrays.java
> @@ -2825,7 +2825,7 @@
> */
> @SafeVarargs
> public static <T> List<T> asList(T... a) {
> - return new ArrayList<>(a);
> + return new ArrayList<T>(a);
> }
>
> /**
> --- openjdk-boot/jdk/src/share/classes/java/util/Collections.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/Collections.java
> @@ -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));
> }
>
> /**
> @@ -1517,7 +1517,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);
> }
>
> /**
> @@ -1535,13 +1535,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();}
> @@ -1583,11 +1583,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);
> }
>
> /**
> @@ -1686,11 +1686,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);
> }
>
> /**
> @@ -1754,7 +1754,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);
> }
>
> /**
> @@ -1783,18 +1783,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);
> }
> }
>
> @@ -1833,14 +1833,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));
> }
>
> /**
> @@ -1903,7 +1903,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);
> }
> }
> @@ -1922,7 +1922,7 @@
> */
> private Object readResolve() {
> return (list instanceof RandomAccess
> - ? new SynchronizedRandomAccessList<>(list)
> + ? new SynchronizedRandomAccessList<E>(list)
> : this);
> }
> }
> @@ -1944,7 +1944,7 @@
>
> public List<E> subList(int fromIndex, int toIndex) {
> synchronized (mutex) {
> - return new SynchronizedRandomAccessList<>(
> + return new SynchronizedRandomAccessList<E>(
> list.subList(fromIndex, toIndex), mutex);
> }
> }
> @@ -1958,7 +1958,7 @@
> * deserialization.
> */
> private Object writeReplace() {
> - return new SynchronizedList<>(list);
> + return new SynchronizedList<E>(list);
> }
> }
>
> @@ -1990,7 +1990,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);
> }
>
> /**
> @@ -2051,7 +2051,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;
> }
> }
> @@ -2059,7 +2059,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;
> }
> }
> @@ -2067,7 +2067,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;
> }
> }
> @@ -2129,7 +2129,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);
> }
>
>
> @@ -2159,18 +2159,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);
> }
> }
>
> @@ -2246,7 +2246,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")
> @@ -2378,7 +2378,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);
> }
>
> /**
> @@ -2424,7 +2424,7 @@
> */
> public static <E> SortedSet<E> checkedSortedSet(SortedSet<E> s,
> Class<E> type) {
> - return new CheckedSortedSet<>(s, type);
> + return new CheckedSortedSet<E>(s, type);
> }
>
> /**
> @@ -2484,8 +2484,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));
> }
>
> /**
> @@ -2550,7 +2550,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);
> }
> }
>
> @@ -2567,7 +2567,7 @@
> }
>
> public List<E> subList(int fromIndex, int toIndex) {
> - return new CheckedRandomAccessList<>(
> + return new CheckedRandomAccessList<E>(
> list.subList(fromIndex, toIndex), type);
> }
> }
> @@ -2609,7 +2609,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);
> }
>
>
> @@ -2677,14 +2677,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());
> @@ -2694,7 +2695,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;
> }
>
> @@ -2809,7 +2810,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) {
> @@ -2842,7 +2843,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);
> }
>
> /**
> @@ -2883,7 +2884,7 @@
> if (!(o instanceof Map.Entry))
> return false;
> return e.equals(new AbstractMap.SimpleImmutableEntry
> - <>((Map.Entry<?,?>)o));
> + <Object, Object>((Map.Entry<?,?>)o));
> }
> }
> }
> @@ -2926,7 +2927,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);
> }
>
> /**
> @@ -2992,7 +2993,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(); }
> @@ -3041,7 +3042,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(); }
> @@ -3077,7 +3078,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(); }
> @@ -3089,7 +3090,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.
> @@ -3149,7 +3150,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.
> @@ -3223,7 +3224,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.
> @@ -3285,7 +3286,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) {
> @@ -3338,7 +3339,7 @@
> * @since 1.3
> */
> public static <T> List<T> singletonList(T o) {
> - return new SingletonList<>(o);
> + return new SingletonList<T>(o);
> }
>
> /**
> @@ -3380,7 +3381,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);
> }
>
> /**
> @@ -3422,7 +3423,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;
> }
>
> @@ -3454,7 +3455,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);
> }
>
> /**
> @@ -3528,7 +3529,7 @@
> if (fromIndex > toIndex)
> throw new IllegalArgumentException("fromIndex(" + fromIndex +
> ") > toIndex(" + toIndex + ")");
> - return new CopiesList<>(toIndex - fromIndex, element);
> + return new CopiesList<E>(toIndex - fromIndex, element);
> }
> }
>
> @@ -3596,7 +3597,7 @@
> if (cmp instanceof ReverseComparator2)
> return ((ReverseComparator2<T>)cmp).cmp;
>
> - return new ReverseComparator2<>(cmp);
> + return new ReverseComparator2<T>(cmp);
> }
>
> /**
> @@ -3675,7 +3676,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;
> @@ -3868,7 +3869,7 @@
> * @since 1.6
> */
> public static <E> Set<E> newSetFromMap(Map<E, Boolean> map) {
> - return new SetFromMap<>(map);
> + return new SetFromMap<E>(map);
> }
>
> /**
> @@ -3932,7 +3933,7 @@
> * @since 1.6
> */
> public static <T> Queue<T> asLifoQueue(Deque<T> deque) {
> - return new AsLIFOQueue<>(deque);
> + return new AsLIFOQueue<T>(deque);
> }
>
> /**
> --- openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/EnumMap.java
> @@ -500,7 +500,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;
> }
> --- openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/EnumSet.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/util/Formatter.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java
> @@ -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)) {
> --- openjdk-boot/jdk/src/share/classes/java/util/HashMap.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/HashMap.java
> @@ -763,7 +763,7 @@
> */
> void addEntry(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);
> if (size++ >= threshold)
> resize(2 * table.length);
> }
> @@ -778,7 +778,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++;
> }
>
> --- openjdk-boot/jdk/src/share/classes/java/util/HashSet.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/HashSet.java
> @@ -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);
> }
>
> /**
> --- openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/Hashtable.java
> @@ -455,7 +455,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;
> }
> @@ -579,7 +579,7 @@
> if (count == 0) {
> return Collections.emptyEnumeration();
> } else {
> - return new Enumerator<>(type, false);
> + return new Enumerator<T>(type, false);
> }
> }
>
> @@ -587,7 +587,7 @@
> if (count == 0) {
> return Collections.emptyIterator();
> } else {
> - return new Enumerator<>(type, true);
> + return new Enumerator<T>(type, true);
> }
> }
>
> @@ -863,7 +863,7 @@
>
> while (entry != null) {
> entryStack =
> - new Entry<>(0, entry.key, entry.value, entryStack);
> + new Entry<Object, Object>(0, entry.key, entry.value, entryStack);
> entry = entry.next;
> }
> }
> @@ -941,7 +941,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++;
> }
>
> @@ -962,7 +962,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()));
> }
>
> --- openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/IdentityHashMap.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/JumboEnumSet.java
> @@ -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> {
> --- openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/LinkedHashMap.java
> @@ -237,7 +237,7 @@
> * the chain.
> */
> void init() {
> - header = new Entry<>(-1, null, null, null);
> + header = new Entry<K,V>(-1, null, null, null);
> header.before = header.after = header;
> }
>
> @@ -438,7 +438,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++;
> --- openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/LinkedList.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/ListResourceBundle.java
> @@ -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];
> --- openjdk-boot/jdk/src/share/classes/java/util/Locale.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/Locale.java
> @@ -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);
> }
> --- openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/PriorityQueue.java
> @@ -538,7 +538,7 @@
> cursor--;
> else {
> if (forgetMeNot == null)
> - forgetMeNot = new ArrayDeque<>();
> + forgetMeNot = new ArrayDeque<E>();
> forgetMeNot.add(moved);
> }
> } else if (lastRetElt != null) {
> --- openjdk-boot/jdk/src/share/classes/java/util/Properties.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/Properties.java
> @@ -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();
> }
> --- openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/RegularEnumSet.java
> @@ -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> {
> --- openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/ResourceBundle.java
> @@ -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) {
> --- openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/ServiceLoader.java
> @@ -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"));
> @@ -463,7 +463,7 @@
> public static <S> ServiceLoader<S> load(Class<S> service,
> ClassLoader loader)
> {
> - return new ServiceLoader<>(service, loader);
> + return new ServiceLoader<S>(service, loader);
> }
>
> /**
> --- openjdk-boot/jdk/src/share/classes/java/util/TimSort.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/TimSort.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/TreeMap.java
> @@ -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)
> --- openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/TreeSet.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/WeakHashMap.java
> @@ -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.
> @@ -439,7 +439,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;
> @@ -955,9 +955,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;
> }
>
> --- openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/logging/FileHandler.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/logging/Level.java
> @@ -59,7 +59,7 @@
> */
>
> public class Level implements java.io.Serializable {
> - private static java.util.ArrayList<Level> known = new java.util.ArrayList<>();
> + private static java.util.ArrayList<Level> known = new java.util.ArrayList<Level>();
> private static String defaultBundle = "sun.util.logging.resources.logging";
>
> /**
> --- openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogManager.java
> @@ -156,7 +156,8 @@
> private final static Level defaultLevel = Level.INFO;
>
> // Table of named Loggers that maps names to Loggers.
> - private Hashtable<String,LoggerWeakRef> namedLoggers = new Hashtable<>();
> + private Hashtable<String,LoggerWeakRef> namedLoggers =
> + new Hashtable<String,LoggerWeakRef>();
> // Tree of named Loggers
> private LogNode root = new LogNode(null);
> private Logger rootLogger;
> @@ -444,7 +445,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.
> @@ -694,7 +695,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) {
> @@ -878,7 +879,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()) {
> --- openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/logging/LogRecord.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logger.java
> @@ -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;
> @@ -1439,7 +1439,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
> --- openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/logging/Logging.java
> @@ -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());
> --- openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/prefs/AbstractPreferences.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/regex/Pattern.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/regex/UnicodeProp.java
> @@ -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");
> --- openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipFile.java
> @@ -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();
> --- openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/zip/ZipOutputStream.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java.orig
> +++ openjdk-boot/jdk/src/share/classes/javax/security/auth/PrivateCredentialPermission.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java.orig
> +++ openjdk-boot/jdk/src/share/classes/javax/security/auth/SubjectDomainCombiner.java
> @@ -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;
>
> --- openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java.orig
> +++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java.orig
> +++ openjdk-boot/jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/io/CharacterEncoding.java
> @@ -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");
> --- openjdk-boot/jdk/src/share/classes/sun/io/Converters.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/io/Converters.java
> @@ -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;
> }
> --- openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java
> @@ -169,7 +169,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) {
> @@ -244,7 +244,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());
> }
> --- openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/net/www/URLConnection.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java
> @@ -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>() {
> --- openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java
> @@ -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)
> --- openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java
> @@ -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) {
> --- openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java
> @@ -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 ||
> --- openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java
> @@ -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];
> --- openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java
> @@ -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());
> --- openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/Util.java
> @@ -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);
> }
> --- openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java
> @@ -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());
> }
> --- openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Activation.java
> @@ -149,10 +149,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;
> @@ -288,10 +288,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);
> }
> }
>
> --- openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java
> @@ -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;
>
> /**
> --- openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/acl/AclImpl.java
> @@ -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());
> --- openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/acl/GroupImpl.java
> @@ -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);
> }
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/jca/ProviderList.java
> @@ -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));
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/jca/Providers.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Config.java
> @@ -527,7 +527,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.
> @@ -588,7 +588,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]")) {
> @@ -597,7 +597,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;
> @@ -610,7 +610,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;
> @@ -728,7 +728,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);
> @@ -750,7 +750,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();
> @@ -790,9 +790,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++) {
> @@ -897,7 +897,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());
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/KdcComm.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/PrincipalName.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/Realm.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/Authenticator.java
> @@ -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()));
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/AuthorizationData.java
> @@ -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);
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java
> @@ -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()));
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/HostAddresses.java
> @@ -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 {
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReq.java
> @@ -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()));
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KDCReqBody.java
> @@ -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) {
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java
> @@ -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()));
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java
> @@ -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();
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java
> @@ -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()));
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/LastReq.java
> @@ -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);
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
> @@ -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());
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java
> @@ -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]);
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java
> @@ -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) {
> --- openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/provider/PolicyFile.java
> @@ -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]);
> --- openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/provider/Sun.java
> @@ -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));
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/provider/VerificationProvider.java
> @@ -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));
> --- openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/provider/X509Factory.java
> @@ -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) {
> --- openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
> @@ -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.
> --- openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/RSACore.java
> @@ -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.
> --- openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/rsa/SunRsaSign.java
> @@ -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));
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/CipherSuite.java
> @@ -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;
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java
> @@ -656,7 +656,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;
> @@ -1175,7 +1175,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)) {
> @@ -1193,7 +1193,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);
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java
> @@ -258,7 +258,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 {
> @@ -434,7 +434,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) {
> @@ -1334,7 +1334,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);
> @@ -1725,7 +1725,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 {
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/Handshaker.java
> @@ -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()) {
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java
> @@ -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));
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/ProtocolList.java
> @@ -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) {
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java
> @@ -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(
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
> @@ -325,7 +325,7 @@
> Collection<CipherSuite> allowedCipherSuites =
> CipherSuite.allowedCipherSuites();
>
> - ArrayList<CipherSuite> suites = new ArrayList<>();
> + ArrayList<CipherSuite> suites = new ArrayList<CipherSuite>();
> if (!(protocols.collection().isEmpty()) &&
> protocols.min.v != ProtocolVersion.NONE.v) {
> for (CipherSuite suite : allowedCipherSuites) {
> @@ -532,7 +532,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 {
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java
> @@ -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();
>
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
> @@ -2478,7 +2478,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;
> }
>
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java
> @@ -153,7 +153,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 &&
> @@ -170,7 +170,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);
> @@ -182,7 +182,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);
> @@ -195,7 +195,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) {
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
> @@ -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) {
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
> @@ -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;
>
> --- openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java
> @@ -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;
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/tools/JarSigner.java
> @@ -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
> @@ -1600,7 +1600,7 @@
> }
> }
> }
> - Set<TrustAnchor> tas = new HashSet<>();
> + Set<TrustAnchor> tas = new HashSet<TrustAnchor>();
> try {
> KeyStore caks = KeyTool.getCacertsKeyStore();
> if (caks != null) {
> --- openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/tools/KeyTool.java
> @@ -152,11 +152,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",
> @@ -2089,7 +2089,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;
> @@ -2256,7 +2256,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()) {
> @@ -3331,7 +3331,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
> @@ -3857,7 +3857,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",
> @@ -3927,7 +3927,7 @@
> }
> if(value != null) {
> List<AccessDescription> accessDescriptions =
> - new ArrayList<>();
> + new ArrayList<AccessDescription>();
> String[] ps = value.split(",");
> for(String item: ps) {
> colonpos = item.indexOf(':');
> @@ -4211,7 +4211,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);
> }
> }
>
> --- openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java
> @@ -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);
> }
> --- openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/tools/native2ascii/Main.java
> @@ -94,7 +94,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;
>
> --- openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/util/locale/InternalLocaleBuilder.java
> @@ -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);
> }
> --- openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LanguageTag.java
> @@ -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());
> }
> --- openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleExtensions.java
> @@ -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());
> --- openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java
> @@ -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);
>
> while (value == null) {
> cleanStaleEntries();
> @@ -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();
> }
> --- openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/util/logging/PlatformLogger.java
> @@ -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()) {
> --- openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java.orig
> +++ openjdk-boot/jdk/src/share/demo/nio/zipfs/Demo.java
> @@ -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);
>
> --- openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java.orig
> +++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java
> @@ -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();
> --- openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java.orig
> +++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java
> @@ -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 {
> --- openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java.orig
> +++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java.orig
> +++ openjdk-boot/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java
> @@ -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() {}
>
> --- openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/java/lang/ProcessEnvironment.java
> @@ -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)
> --- openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
> @@ -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()) {
> --- openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java
> @@ -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);
> --- openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java
> @@ -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")))
> --- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java
> @@ -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 {
> --- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java
> @@ -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) {
> --- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java
> @@ -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;
>
> --- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java
> @@ -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");
> --- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java
> @@ -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) {
> --- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java
> @@ -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);
> --- openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java.orig
> +++ openjdk-boot/jdk/src/windows/classes/java/lang/ProcessEnvironment.java
> @@ -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);
> --- openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java.orig
> +++ openjdk-boot/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java
> @@ -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, ", ");
> --- openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java.orig
> +++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java
> @@ -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) {
> --- openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java.orig
> +++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java
> @@ -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);
> --- openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java.orig
> +++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java
> @@ -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++) {
> --- openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java.orig
> +++ openjdk-boot/jdk/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java
> @@ -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);
> --- openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java.orig
> +++ openjdk-boot/jdk/test/java/io/Serializable/NPEProvoker/NPEProvoker.java
> @@ -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);
> --- openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java.orig
> +++ openjdk-boot/jdk/test/java/lang/instrument/ilib/Inject.java
> @@ -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;
> --- openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java.orig
> +++ openjdk-boot/jdk/test/java/lang/instrument/ilib/InjectBytecodes.java
> @@ -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;
> --- openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java.orig
> +++ openjdk-boot/jdk/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java
> @@ -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))
> --- openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java.orig
> +++ openjdk-boot/jdk/test/java/util/Random/DistinctSeeds.java
> @@ -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();
> --- openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java.orig
> +++ openjdk-boot/jdk/test/java/util/logging/ClassLoaderLeakTest.java
> @@ -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");
> --- 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);
> }
> }
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java
> @@ -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 {
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
> @@ -149,8 +149,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);
> @@ -341,9 +346,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)
> }
> @@ -404,7 +414,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--) {
> @@ -418,6 +430,9 @@
> }
> }
> return "";
> + } finally {
> + if (in != null)
> + in.close();
> }
> }
>
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java
> @@ -241,9 +241,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.
> }
>
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java
> @@ -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();
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java
> @@ -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 {
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java
> @@ -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();
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java
> @@ -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();
> }
> --- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java.orig
> +++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java
> @@ -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
> --- openjdk-boot/jdk/src/share/classes/java/lang/Package.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/lang/Package.java
> @@ -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;
> + }
> }
> }
>
> --- openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/nio/channels/SocketChannel.java
> @@ -188,7 +188,7 @@
> } catch (Throwable suppressed) {
> x.addSuppressed(suppressed);
> }
> - throw x;
> + throw (IOException) x;
> }
> assert sc.isConnected();
> return sc;
> --- openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java
> @@ -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;
> }
> }
> }
> --- openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/nio/file/Files.java
> @@ -2833,8 +2833,11 @@
> }
>
> // do the copy
> - try (OutputStream out = ostream) {
> - return copy(in, out);
> + try {
> + return copy(in, ostream);
> + }
> + finally {
> + ostream.close();
> }
> }
>
> @@ -2875,9 +2878,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();
> + }
> }
>
> /**
> @@ -2943,8 +2952,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();
> }
> }
>
> @@ -2990,7 +3005,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();
> @@ -3000,6 +3017,10 @@
> }
> return result;
> }
> + finally {
> + if (reader != null)
> + reader.close();
> + }
> }
>
> /**
> @@ -3049,7 +3070,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) {
> @@ -3058,6 +3081,10 @@
> rem -= n;
> }
> }
> + finally {
> + if (out != null)
> + out.close();
> + }
> return path;
> }
>
> @@ -3109,12 +3136,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;
> }
> }
> --- openjdk-boot/jdk/src/share/classes/java/util/Currency.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/Currency.java
> @@ -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])");
> --- openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java.orig
> +++ openjdk-boot/jdk/src/share/classes/java/util/jar/JarFile.java
> @@ -376,9 +376,15 @@
> */
> private byte[] getBytes(ZipEntry ze) throws IOException {
> byte[] b = new byte[(int)ze.getSize()];
> - try (DataInputStream is = new DataInputStream(super.getInputStream(ze))) {
> + DataInputStream is = null;
> + try {
> + is = new DataInputStream(super.getInputStream(ze));
> is.readFully(b, 0, b.length);
> }
> + finally {
> + if (is != null)
> + is.close();
> + }
> return b;
> }
>
> @@ -480,11 +486,15 @@
> JarEntry manEntry = getManEntry();
> if (manEntry != null) {
> byte[] b = new byte[(int)manEntry.getSize()];
> - try (DataInputStream dis = new DataInputStream(
> - super.getInputStream(manEntry))) {
> + DataInputStream dis = null;
> + try {
> + dis = new DataInputStream(super.getInputStream(manEntry));
> dis.readFully(b, 0, b.length);
> }
> -
> + finally {
> + if (dis != null)
> + dis.close();
> + }
> int last = b.length - src.length;
> int i = 0;
> next:
> --- openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java.orig
> +++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java
> @@ -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;
> }
>
> --- openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java.orig
> +++ openjdk-boot/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java
> @@ -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);
> --- openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java
> @@ -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();
> }
> }
> });
> --- openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java
> @@ -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();
> + }
> }
> }
>
> --- openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java
> @@ -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();
> }
> }
> }
> --- openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/security/provider/SeedGenerator.java
> @@ -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());
> --- openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java.orig
> +++ openjdk-boot/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java
> @@ -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;
> }
> });
> --- openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java.orig
> +++ openjdk-boot/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java
> @@ -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++ ) {
> --- openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/java/util/prefs/FileSystemPreferences.java
> @@ -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;
> }
> });
> --- openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java.orig
> +++ openjdk-boot/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java
> @@ -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;
> --- openjdk/jdk/make/com/sun/Makefile.orig
> +++ openjdk/jdk/make/com/sun/Makefile
> @@ -31,13 +31,6 @@
> PRODUCT = sun
> include $(BUILDDIR)/common/Defs.gmk
>
> -ifndef OPENJDK
> - ORG_EXISTS := $(call DirExists,$(CLOSED_SRC)/share/classes/sun/org,,)
> - ifneq ("$(ORG_EXISTS)", "")
> - SCRIPT_SUBDIR = script
> - endif
> -endif
> -
> # jarsigner is part of JRE
> SUBDIRS = java security net/ssl jarsigner
>
> --- openjdk/jdk/make/com/sun/script/Makefile.orig
> +++ openjdk/jdk/make/com/sun/script/Makefile
> @@ -31,6 +31,8 @@
>
> AUTO_FILES_JAVA_DIRS = com/sun/script
>
> +OTHER_JAVACFLAGS = -classpath $(RHINO_JAR)
> +
> #
> # Files that need to be copied
> #
> --- openjdk/jdk/make/common/Release.gmk.orig
> +++ openjdk/jdk/make/common/Release.gmk
> @@ -766,6 +766,7 @@
> $(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar
> $(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar
> $(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar
> + $(CP) $(RHINO_JAR) $(JRE_IMAGE_DIR)/lib/rhino.jar
> @# Generate meta-index to make boot and extension class loaders lazier
> $(CD) $(JRE_IMAGE_DIR)/lib && \
> $(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
> --- openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java.orig
> +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
> @@ -24,7 +24,7 @@
> */
>
> package com.sun.script.javascript;
> -import sun.org.mozilla.javascript.internal.*;
> +import sun.org.mozilla.javascript.*;
> import javax.script.*;
> import java.util.*;
>
> --- openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java.orig
> +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java
> @@ -25,7 +25,7 @@
>
> package com.sun.script.javascript;
>
> -import sun.org.mozilla.javascript.internal.*;
> +import sun.org.mozilla.javascript.*;
> import java.util.*;
>
> /**
> --- openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java.orig
> +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java
> @@ -26,7 +26,7 @@
> package com.sun.script.javascript;
>
> import javax.script.Invocable;
> -import sun.org.mozilla.javascript.internal.*;
> +import sun.org.mozilla.javascript.*;
>
> /**
> * This class implements Rhino-like JavaAdapter to help implement a Java
> --- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java.orig
> +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
> @@ -26,7 +26,7 @@
> package com.sun.script.javascript;
>
> import java.util.*;
> -import sun.org.mozilla.javascript.internal.*;
> +import sun.org.mozilla.javascript.*;
>
> /**
> * This class prevents script access to certain sensitive classes.
> --- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java.orig
> +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
> @@ -25,7 +25,7 @@
>
> package com.sun.script.javascript;
> import javax.script.*;
> -import sun.org.mozilla.javascript.internal.*;
> +import sun.org.mozilla.javascript.*;
>
> /**
> * Represents compiled JavaScript code.
> --- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java.orig
> +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
> @@ -26,7 +26,7 @@
> package com.sun.script.javascript;
> import com.sun.script.util.*;
> import javax.script.*;
> -import sun.org.mozilla.javascript.internal.*;
> +import sun.org.mozilla.javascript.*;
> import java.lang.reflect.Method;
> import java.io.*;
> import java.security.*;
> --- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java.orig
> +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
> @@ -26,7 +26,7 @@
> package com.sun.script.javascript;
> import javax.script.*;
> import java.util.*;
> -import sun.org.mozilla.javascript.internal.*;
> +import sun.org.mozilla.javascript.*;
> import com.sun.script.util.*;
>
> /**
> --- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java.orig
> +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
> @@ -25,7 +25,7 @@
>
> package com.sun.script.javascript;
>
> -import sun.org.mozilla.javascript.internal.*;
> +import sun.org.mozilla.javascript.*;
> import java.security.AccessControlContext;
> import javax.script.*;
> import java.security.AccessControlContext;
> --- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java.orig
> +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
> @@ -27,7 +27,7 @@
>
> import java.lang.reflect.*;
> import static sun.security.util.SecurityConstants.*;
> -import sun.org.mozilla.javascript.internal.*;
> +import sun.org.mozilla.javascript.*;
>
> /**
> * This wrap factory is used for security reasons. JSR 223 script
--
Andrew :)
Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120116/67d94274/attachment.bin
More information about the distro-pkg-dev
mailing list