7060849: Eliminate pack200 build warnings
Reviewed-by: ksrini, jjg
Contributed-by: alexandre.boulgakov@oracle.com
--- a/jdk/make/com/sun/java/pack/Makefile Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/make/com/sun/java/pack/Makefile Fri Jul 08 10:25:57 2011 -0700
@@ -32,6 +32,8 @@
LIBRARY = unpack
PRODUCT = sun
PGRM = unpack200
+JAVAC_MAX_WARNINGS=true
+JAVAC_WARNINGS_FATAL=true
include $(BUILDDIR)/common/Defs.gmk
CPLUSPLUSLIBRARY=true
--- a/jdk/make/common/shared/Defs-java.gmk Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/make/common/shared/Defs-java.gmk Fri Jul 08 10:25:57 2011 -0700
@@ -116,12 +116,17 @@
JAVACFLAGS += -g
endif
ifeq ($(JAVAC_MAX_WARNINGS), true)
- JAVACFLAGS += -Xlint:all
+ JAVAC_LINT_OPTIONS += -Xlint:all
endif
ifeq ($(JAVAC_WARNINGS_FATAL), true)
JAVACFLAGS += -Werror
endif
+# TODO: Workaround for CR 7063027. Remove -path eventually.
+JAVAC_LINT_OPTIONS += -Xlint:-path
+
+JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
+
#
# Some licensees do not get the Security Source bundles. We will
# fall back on the prebuilt jce.jar so that we can do a best
@@ -211,9 +216,7 @@
# The javac options supplied to the boot javac is limited. This compiler
# should only be used to build the 'make/tools' sources, which are not
# class files that end up in the classes directory.
-ifeq ($(JAVAC_MAX_WARNINGS), true)
- BOOT_JAVACFLAGS += -Xlint:all
-endif
+BOOT_JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
ifeq ($(JAVAC_WARNINGS_FATAL), true)
BOOT_JAVACFLAGS += -Werror
endif
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,7 @@
* attribute layouts.
* @author John Rose
*/
-class Attribute implements Comparable {
+class Attribute implements Comparable<Attribute> {
// Attribute instance fields.
Layout def; // the name and format of this attr
@@ -99,8 +99,7 @@
return this == def.canon;
}
- public int compareTo(Object o) {
- Attribute that = (Attribute) o;
+ public int compareTo(Attribute that) {
return this.def.compareTo(that.def);
}
@@ -447,7 +446,7 @@
* and format. The formats are specified in a "little language".
*/
public static
- class Layout implements Comparable {
+ class Layout implements Comparable<Layout> {
int ctype; // attribute context type, e.g., ATTR_CONTEXT_CODE
String name; // name of attribute
boolean hasRefs; // this kind of attr contains CP refs?
@@ -540,8 +539,7 @@
* 37 + layout.hashCode())
* 37 + ctype);
}
- public int compareTo(Object o) {
- Layout that = (Layout) o;
+ public int compareTo(Layout that) {
int r;
r = this.name.compareTo(that.name);
if (r != 0) return r;
@@ -663,6 +661,8 @@
public static
class FormatException extends IOException {
+ private static final long serialVersionUID = -2542243830788066513L;
+
private int ctype;
private String name;
String layout;
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java Fri Jul 08 10:25:57 2011 -0700
@@ -1704,7 +1704,7 @@
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<Attribute.Layout>(Collections.nCopies(
+ attrDefs.set(i, new ArrayList<>(Collections.nCopies(
attrIndexLimit[i], (Attribute.Layout)null)));
}
@@ -1892,7 +1892,7 @@
return testBit(archiveOptions, mask);
}
- protected List getPredefinedAttrs(int ctype) {
+ protected List<Attribute.Layout> getPredefinedAttrs(int ctype) {
assert(attrIndexLimit[ctype] != 0);
List<Attribute.Layout> res = new ArrayList<>(attrIndexLimit[ctype]);
// Remove nulls and non-predefs.
@@ -2649,7 +2649,7 @@
// Utilities for reallocating:
protected static Object[] realloc(Object[] a, int len) {
- java.lang.Class elt = a.getClass().getComponentType();
+ java.lang.Class<?> elt = a.getClass().getComponentType();
Object[] na = (Object[]) java.lang.reflect.Array.newInstance(elt, len);
System.arraycopy(a, 0, na, 0, Math.min(a.length, len));
return na;
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -52,7 +52,7 @@
long inPos;
DataInputStream in;
Map<Attribute.Layout, Attribute> attrDefs;
- Map attrCommands;
+ Map<Attribute.Layout, String> attrCommands;
String unknownAttrCommand = "error";;
ClassReader(Class cls, InputStream in) throws IOException {
@@ -82,7 +82,7 @@
this.attrDefs = attrDefs;
}
- public void setAttrCommands(Map attrCommands) {
+ public void setAttrCommands(Map<Attribute.Layout, String> attrCommands) {
this.attrCommands = attrCommands;
}
@@ -348,8 +348,8 @@
int length = readInt();
// See if there is a special command that applies.
if (attrCommands != null) {
- Object lkey = Attribute.keyForLookup(ctype, name);
- String cmd = (String) attrCommands.get(lkey);
+ Attribute.Layout lkey = Attribute.keyForLookup(ctype, name);
+ String cmd = attrCommands.get(lkey);
if (cmd != null) {
switch (cmd) {
case "pass":
@@ -483,6 +483,8 @@
}
static class ClassFormatException extends IOException {
+ private static final long serialVersionUID = -3564121733989501833L;
+
public ClassFormatException(String message) {
super(message);
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassWriter.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassWriter.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,6 @@
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
-import java.util.Iterator;
import java.util.List;
import static com.sun.java.util.jar.pack.Constants.*;
/**
@@ -165,14 +164,13 @@
}
void writeMembers(boolean doMethods) throws IOException {
- List mems;
+ List<? extends Class.Member> mems;
if (!doMethods)
mems = cls.getFields();
else
mems = cls.getMethods();
writeShort(mems.size());
- for (Iterator i = mems.iterator(); i.hasNext(); ) {
- Class.Member m = (Class.Member) i.next();
+ for (Class.Member m : mems) {
writeMember(m, doMethods);
}
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Code.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Code.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -125,7 +125,7 @@
return expandInstructionMap(getInsnMap());
}
- void addFixups(Collection moreFixups) {
+ void addFixups(Collection<Fixups.Fixup> moreFixups) {
if (fixups == null) {
fixups = new Fixups(bytes);
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
* varying degrees of length variability, and varying amounts of signed-ness.
* @author John Rose
*/
-class Coding implements Comparable, CodingMethod, Histogram.BitMetric {
+class Coding implements Comparable<Coding>, CodingMethod, Histogram.BitMetric {
/*
Coding schema for single integers, parameterized by (B,H,S):
@@ -605,8 +605,7 @@
public int byteMin(int b) { return byteMin[b-1]; }
public int byteMax(int b) { return byteMax[b-1]; }
- public int compareTo(Object x) {
- Coding that = (Coding) x;
+ public int compareTo(Coding that) {
int dkey = this.del - that.del;
if (dkey == 0)
dkey = this.B - that.B;
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -72,7 +72,7 @@
return e;
}
/** Factory for literal constants (String, Integer, etc.). */
- public static synchronized LiteralEntry getLiteralEntry(Comparable value) {
+ public static synchronized LiteralEntry getLiteralEntry(Comparable<?> value) {
Map<Object, LiteralEntry> literalEntries = Utils.getLiteralEntries();
LiteralEntry e = literalEntries.get(value);
if (e == null) {
@@ -140,7 +140,7 @@
/** Entries in the constant pool. */
public static abstract
- class Entry implements Comparable {
+ class Entry implements Comparable<Object> {
protected final byte tag; // a CONSTANT_foo code
protected int valueHash; // cached hashCode
@@ -257,7 +257,7 @@
super(tag);
}
- public abstract Comparable literalValue();
+ public abstract Comparable<?> literalValue();
}
public static
@@ -280,15 +280,17 @@
public int compareTo(Object o) {
int x = superCompareTo(o);
if (x == 0) {
- x = ((Comparable)value).compareTo(((NumberEntry)o).value);
+ @SuppressWarnings("unchecked")
+ Comparable<Number> compValue = (Comparable<Number>)value;
+ x = compValue.compareTo(((NumberEntry)o).value);
}
return x;
}
public Number numberValue() {
return value;
}
- public Comparable literalValue() {
- return (Comparable) value;
+ public Comparable<?> literalValue() {
+ return (Comparable<?>) value;
}
public String stringValue() {
return value.toString();
@@ -319,7 +321,7 @@
}
return x;
}
- public Comparable literalValue() {
+ public Comparable<?> literalValue() {
return ref.stringValue();
}
public String stringValue() {
@@ -728,7 +730,7 @@
/** An Index is a mapping between CP entries and small integers. */
public static final
- class Index extends AbstractList {
+ class Index extends AbstractList<Entry> {
protected String debugName;
protected Entry[] cpMap;
protected boolean flattenSigs;
@@ -758,7 +760,7 @@
public int size() {
return cpMap.length;
}
- public Object get(int i) {
+ public Entry get(int i) {
return cpMap[i];
}
public Entry getEntry(int i) {
@@ -803,13 +805,7 @@
assert(index >= 0);
return index;
}
- public boolean contains(Object e) {
- return findIndexOf((Entry)e) >= 0;
- }
- public int indexOf(Object e) {
- return findIndexOf((Entry)e);
- }
- public int lastIndexOf(Object e) {
+ public int lastIndexOf(Entry e) {
return indexOf(e);
}
@@ -862,14 +858,14 @@
indexValue[probe] = i;
}
}
- public Object[] toArray(Object[] a) {
+ public Entry[] toArray(Entry[] a) {
int sz = size();
if (a.length < sz) return super.toArray(a);
System.arraycopy(cpMap, 0, a, 0, sz);
if (a.length > sz) a[sz] = null;
return a;
}
- public Object[] toArray() {
+ public Entry[] toArray() {
return toArray(new Entry[size()]);
}
public Object clone() {
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Constants.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Constants.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -153,11 +153,11 @@
public static final int NO_MODTIME = 0; // null modtime value
// some comstantly empty containers
- public final static int[] noInts = {};
- public final static byte[] noBytes = {};
- public final static Object[] noValues = {};
- public final static String[] noStrings = {};
- public final static List emptyList = Arrays.asList(noValues);
+ public final static int[] noInts = {};
+ public final static byte[] noBytes = {};
+ public final static Object[] noValues = {};
+ public final static String[] noStrings = {};
+ public final static List<Object> emptyList = Arrays.asList(noValues);
// meta-coding
public final static int
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@
*
* @author John Rose
*/
-final class Fixups extends AbstractCollection {
+final class Fixups extends AbstractCollection<Fixups.Fixup> {
byte[] bytes; // the subject of the relocations
int head; // desc locating first reloc
int tail; // desc locating last reloc
@@ -66,11 +66,11 @@
// If there are no bytes, all descs are kept in bigDescs.
this((byte[])null);
}
- Fixups(byte[] bytes, Collection fixups) {
+ Fixups(byte[] bytes, Collection<Fixup> fixups) {
this(bytes);
addAll(fixups);
}
- Fixups(Collection fixups) {
+ Fixups(Collection<Fixup> fixups) {
this((byte[])null);
addAll(fixups);
}
@@ -108,8 +108,7 @@
public void clear() {
if (bytes != null) {
// Clean the bytes:
- for (Iterator i = iterator(); i.hasNext(); ) {
- Fixup fx = (Fixup) i.next();
+ for (Fixup fx : this) {
//System.out.println("clean "+fx);
storeIndex(fx.location(), fx.format(), 0);
}
@@ -124,15 +123,14 @@
return bytes;
}
- @SuppressWarnings("unchecked")
public void setBytes(byte[] newBytes) {
if (bytes == newBytes) return;
- ArrayList old = null;
- assert((old = new ArrayList(this)) != null);
+ ArrayList<Fixup> old = null;
+ assert((old = new ArrayList<>(this)) != null);
if (bytes == null || newBytes == null) {
// One or the other representations is deficient.
// Construct a checkpoint.
- ArrayList save = new ArrayList(this);
+ ArrayList<Fixup> save = new ArrayList<>(this);
clear();
bytes = newBytes;
addAll(save);
@@ -140,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<>(this)));
}
static final int LOC_SHIFT = 1;
@@ -236,7 +234,7 @@
/** Simple and necessary tuple to present each fixup. */
public static
- class Fixup implements Comparable {
+ class Fixup implements Comparable<Fixup> {
int desc; // location and format of reloc
Entry entry; // which entry to plug into the bytes
Fixup(int desc, Entry entry) {
@@ -254,9 +252,6 @@
// Ordering depends only on location.
return this.location() - that.location();
}
- public int compareTo(Object that) {
- return compareTo((Fixup)that);
- }
public boolean equals(Object x) {
if (!(x instanceof Fixup)) return false;
Fixup that = (Fixup) x;
@@ -268,13 +263,13 @@
}
private
- class Itr implements Iterator {
+ class Itr implements Iterator<Fixup> {
int index = 0; // index into entries
int bigIndex = BIGSIZE+1; // index into bigDescs
int next = head; // desc pointing to next fixup
public boolean hasNext() { return index < size; }
public void remove() { throw new UnsupportedOperationException(); }
- public Object next() {
+ public Fixup next() {
int thisIndex = index;
return new Fixup(nextDesc(), entries[thisIndex]);
}
@@ -298,7 +293,7 @@
}
}
- public Iterator iterator() {
+ public Iterator<Fixup> iterator() {
return new Itr();
}
public void add(int location, int format, Entry entry) {
@@ -308,11 +303,8 @@
addDesc(f.desc, f.entry);
return true;
}
- public boolean add(Object fixup) {
- return add((Fixup) fixup);
- }
- @SuppressWarnings("unchecked")
- public boolean addAll(Collection c) {
+
+ public boolean addAll(Collection<? extends Fixup> c) {
if (c instanceof Fixups) {
// Use knowledge of Itr structure to avoid building little structs.
Fixups that = (Fixups) c;
@@ -453,8 +445,7 @@
void finishRefs(ConstantPool.Index ix) {
if (isEmpty())
return;
- for (Iterator i = iterator(); i.hasNext(); ) {
- Fixup fx = (Fixup) i.next();
+ for (Fixup fx : this) {
int index = ix.indexOf(fx.entry);
//System.out.println("finish "+fx+" = "+index);
// Note that the iterator has already fetched the
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Instruction.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Instruction.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -657,6 +657,8 @@
}
}
static class FormatException extends IOException {
+ private static final long serialVersionUID = 3175572275651367015L;
+
FormatException(String message) {
super(message);
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java Fri Jul 08 10:25:57 2011 -0700
@@ -292,7 +292,7 @@
}
ZipEntry z = new ZipEntry(name);
- z.setTime( (long)mtime * 1000);
+ z.setTime(mtime * 1000);
if (size == 0) {
z.setMethod(ZipOutputStream.STORED);
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -188,7 +188,7 @@
}
public final
- class Class extends Attribute.Holder implements Comparable {
+ class Class extends Attribute.Holder implements Comparable<Class> {
public Package getPackage() { return Package.this; }
// Optional file characteristics and data source (a "class stub")
@@ -247,8 +247,7 @@
}
// Note: equals and hashCode are identity-based.
- public int compareTo(Object o) {
- Class that = (Class)o;
+ public int compareTo(Class that) {
String n0 = this.getName();
String n1 = that.getName();
return n0.compareTo(n1);
@@ -488,7 +487,7 @@
}
public abstract
- class Member extends Attribute.Holder implements Comparable {
+ class Member extends Attribute.Holder implements Comparable<Member> {
DescriptorEntry descriptor;
protected Member(int flags, DescriptorEntry descriptor) {
@@ -549,7 +548,7 @@
return descriptor.getLiteralTag();
}
- public int compareTo(Object o) {
+ public int compareTo(Member o) {
Field that = (Field)o;
return this.order - that.order;
}
@@ -582,7 +581,7 @@
}
// Sort methods in a canonical order (by type, then by name).
- public int compareTo(Object o) {
+ public int compareTo(Member o) {
Method that = (Method)o;
return this.getDescriptor().compareTo(that.getDescriptor());
}
@@ -608,11 +607,10 @@
public void trimToSize() {
super.trimToSize();
for (int isM = 0; isM <= 1; isM++) {
- ArrayList members = (isM == 0) ? fields : methods;
+ ArrayList<? extends Member> members = (isM == 0) ? fields : methods;
if (members == null) continue;
members.trimToSize();
- for (Iterator i = members.iterator(); i.hasNext(); ) {
- Member m = (Member)i.next();
+ for (Member m : members) {
m.trimToSize();
}
}
@@ -625,10 +623,9 @@
if ("InnerClass".equals(attrName))
innerClasses = null;
for (int isM = 0; isM <= 1; isM++) {
- ArrayList members = (isM == 0) ? fields : methods;
+ ArrayList<? extends Member> members = (isM == 0) ? fields : methods;
if (members == null) continue;
- for (Iterator i = members.iterator(); i.hasNext(); ) {
- Member m = (Member)i.next();
+ for (Member m : members) {
m.strip(attrName);
}
}
@@ -641,10 +638,9 @@
refs.add(superClass);
refs.addAll(Arrays.asList(interfaces));
for (int isM = 0; isM <= 1; isM++) {
- ArrayList members = (isM == 0) ? fields : methods;
+ ArrayList<? extends Member> members = (isM == 0) ? fields : methods;
if (members == null) continue;
- for (Iterator i = members.iterator(); i.hasNext(); ) {
- Member m = (Member)i.next();
+ for (Member m : members) {
boolean ok = false;
try {
m.visitRefs(mode, refs);
@@ -747,13 +743,13 @@
return classStubs;
}
- public final class File implements Comparable {
+ public final class File implements Comparable<File> {
String nameString; // true name of this file
Utf8Entry name;
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 prepend = new ArrayList(); // list of byte[]
+ ArrayList<byte[]> prepend = new ArrayList<>(); // list of byte[]
java.io.ByteArrayOutputStream append = new ByteArrayOutputStream();
File(Utf8Entry name) {
@@ -798,8 +794,7 @@
return nameString.hashCode();
}
// Simple alphabetic sort. PackageWriter uses a better comparator.
- public int compareTo(Object o) {
- File that = (File)o;
+ public int compareTo(File that) {
return this.nameString.compareTo(that.nameString);
}
public String toString() {
@@ -834,8 +829,7 @@
public long getFileLength() {
long len = 0;
if (prepend == null || append == null) return 0;
- for (Iterator i = prepend.iterator(); i.hasNext(); ) {
- byte[] block = (byte[]) i.next();
+ for (byte[] block : prepend) {
len += block.length;
}
len += append.size();
@@ -843,8 +837,7 @@
}
public void writeTo(OutputStream out) throws IOException {
if (prepend == null || append == null) return;
- for (Iterator i = prepend.iterator(); i.hasNext(); ) {
- byte[] block = (byte[]) i.next();
+ for (byte[] block : prepend) {
out.write(block);
}
append.writeTo(out);
@@ -860,8 +853,7 @@
InputStream in = new ByteArrayInputStream(append.toByteArray());
if (prepend.isEmpty()) return in;
List<InputStream> isa = new ArrayList<>(prepend.size()+1);
- for (Iterator i = prepend.iterator(); i.hasNext(); ) {
- byte[] bytes = (byte[]) i.next();
+ for (byte[] bytes : prepend) {
isa.add(new ByteArrayInputStream(bytes));
}
isa.add(in);
@@ -926,7 +918,7 @@
}
static
- class InnerClass implements Comparable {
+ class InnerClass implements Comparable<InnerClass> {
final ClassEntry thisClass;
final ClassEntry outerClass;
final Utf8Entry name;
@@ -977,8 +969,7 @@
public int hashCode() {
return thisClass.hashCode();
}
- public int compareTo(Object o) {
- InnerClass that = (InnerClass)o;
+ public int compareTo(InnerClass that) {
return this.thisClass.compareTo(that.thisClass);
}
@@ -1108,7 +1099,7 @@
return ConstantPool.getUtf8Entry(s);
}
- static LiteralEntry getRefLiteral(Comparable s) {
+ static LiteralEntry getRefLiteral(Comparable<?> s) {
return ConstantPool.getLiteralEntry(s);
}
@@ -1199,7 +1190,6 @@
// compress better. It also moves classes to the end of the
// file order. It also removes JAR directory entries, which
// are useless.
- @SuppressWarnings("unchecked")
void reorderFiles(boolean keepClassOrder, boolean stripDirectories) {
// First reorder the classes, if that is allowed.
if (!keepClassOrder) {
@@ -1226,10 +1216,8 @@
// This keeps files of similar format near each other.
// Put class files at the end, keeping their fixed order.
// Be sure the JAR file's required manifest stays at the front. (4893051)
- Collections.sort(files, new Comparator() {
- public int compare(Object o0, Object o1) {
- File r0 = (File) o0;
- File r1 = (File) o1;
+ Collections.sort(files, new Comparator<File>() {
+ public int compare(File r0, File r1) {
// Get the file name.
String f0 = r0.nameString;
String f1 = r1.nameString;
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java Fri Jul 08 10:25:57 2011 -0700
@@ -750,7 +750,7 @@
file_options.readFrom(in);
file_bits.setInputStreamFrom(in);
- Iterator nextClass = pkg.getClasses().iterator();
+ Iterator<Class> nextClass = pkg.getClasses().iterator();
// Compute file lengths before reading any file bits.
long totalFileLength = 0;
@@ -790,14 +790,14 @@
pkg.addFile(file);
if (file.isClassStub()) {
assert(file.getFileLength() == 0);
- Class cls = (Class) nextClass.next();
+ Class cls = nextClass.next();
cls.initFile(file);
}
}
// Do the rest of the classes.
while (nextClass.hasNext()) {
- Class cls = (Class) nextClass.next();
+ Class cls = nextClass.next();
cls.initFile(null); // implicitly initialize to a trivial one
cls.file.modtime = pkg.default_modtime;
}
@@ -1006,14 +1006,14 @@
if (k >= 0)
return k;
if (e.tag == CONSTANT_Utf8) {
- Entry se = (Entry) utf8Signatures.get(e);
+ Entry se = utf8Signatures.get(e);
return pkg.cp.untypedIndexOf(se);
}
return -1;
}
Comparator<Entry> entryOutputOrder = new Comparator<Entry>() {
- public int compare(Entry e0, Entry e1) {
+ public int compare(Entry e0, Entry e1) {
int k0 = getOutputIndex(e0);
int k1 = getOutputIndex(e1);
if (k0 >= 0 && k1 >= 0)
@@ -1332,7 +1332,8 @@
// classes, fields, methods, and codes.
// The holders is a global list, already collected,
// of attribute "customers".
- void countAndReadAttrs(int ctype, Collection holders) throws IOException {
+ void countAndReadAttrs(int ctype, Collection<? extends Attribute.Holder> holders)
+ throws IOException {
// class_attr_bands:
// *class_flags :UNSIGNED5
// *class_attr_count :UNSIGNED5
@@ -1386,7 +1387,8 @@
// Read flags and count the attributes that are to be placed
// on the given holders.
- void countAttrs(int ctype, Collection holders) throws IOException {
+ void countAttrs(int ctype, Collection<? extends Attribute.Holder> holders)
+ throws IOException {
// Here, xxx stands for one of class, field, method, code.
MultiBand xxx_attr_bands = attrBands[ctype];
long flagMask = attrFlagMask[ctype];
@@ -1414,8 +1416,7 @@
xxx_flags_lo.expectLength(holders.size());
xxx_flags_lo.readFrom(in);
assert((flagMask & overflowMask) == overflowMask);
- for (Iterator i = holders.iterator(); i.hasNext(); ) {
- Attribute.Holder h = (Attribute.Holder) i.next();
+ for (Attribute.Holder h : holders) {
int flags = xxx_flags_lo.getInt();
h.flags = flags;
if ((flags & overflowMask) != 0)
@@ -1433,8 +1434,7 @@
// (class/field/method/code), and also we accumulate (b) a total
// count for each attribute type.
int[] totalCounts = new int[defs.length];
- for (Iterator i = holders.iterator(); i.hasNext(); ) {
- Attribute.Holder h = (Attribute.Holder) i.next();
+ for (Attribute.Holder h : holders) {
assert(h.attributes == null);
// System.out.println("flags="+h.flags+" using fm="+flagMask);
long attrBits = ((h.flags & flagMask) << 32) >>> 32;
@@ -1582,13 +1582,12 @@
ATTR_CONTEXT_NAME[ctype]+" attribute");
}
- @SuppressWarnings("unchecked")
- void readAttrs(int ctype, Collection holders) throws IOException {
+ void readAttrs(int ctype, Collection<? extends Attribute.Holder> holders)
+ throws IOException {
// Decode band values into attributes.
Set<Attribute.Layout> sawDefs = new HashSet<>();
ByteArrayOutputStream buf = new ByteArrayOutputStream();
- for (Iterator i = holders.iterator(); i.hasNext(); ) {
- final Attribute.Holder h = (Attribute.Holder) i.next();
+ for (final Attribute.Holder h : holders) {
if (h.attributes == null) continue;
for (ListIterator<Attribute> j = h.attributes.listIterator(); j.hasNext(); ) {
Attribute a = j.next();
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java Fri Jul 08 10:25:57 2011 -0700
@@ -720,7 +720,6 @@
Utils.log.info("Wrote "+numFiles+" resource files");
}
- @SuppressWarnings("unchecked")
void collectAttributeLayouts() {
maxFlags = new int[ATTR_CONTEXT_LIMIT];
allLayouts = new FixedList<>(ATTR_CONTEXT_LIMIT);
@@ -781,26 +780,27 @@
avHiBits &= (1L<<attrIndexLimit[i])-1;
int nextLoBit = 0;
Map<Attribute.Layout, int[]> defMap = allLayouts.get(i);
- Map.Entry[] layoutsAndCounts = new Map.Entry[defMap.size()];
+ @SuppressWarnings("unchecked")
+ Map.Entry<Attribute.Layout, int[]>[] layoutsAndCounts =
+ new Map.Entry<>[defMap.size()];
defMap.entrySet().toArray(layoutsAndCounts);
// Sort by count, most frequent first.
// Predefs. participate in this sort, though it does not matter.
- Arrays.sort(layoutsAndCounts, new Comparator<Object>() {
- public int compare(Object o0, Object o1) {
- Map.Entry e0 = (Map.Entry) o0;
- Map.Entry e1 = (Map.Entry) o1;
+ Arrays.sort(layoutsAndCounts,
+ new Comparator<Map.Entry<Attribute.Layout, int[]>>() {
+ public int compare(Map.Entry<Attribute.Layout, int[]> e0,
+ Map.Entry<Attribute.Layout, int[]> e1) {
// Primary sort key is count, reversed.
- int r = - ( ((int[])e0.getValue())[0]
- - ((int[])e1.getValue())[0] );
+ int r = -(e0.getValue()[0] - e1.getValue()[0]);
if (r != 0) return r;
- return ((Comparable)e0.getKey()).compareTo(e1.getKey());
+ return e0.getKey().compareTo(e1.getKey());
}
});
attrCounts[i] = new int[attrIndexLimit[i]+layoutsAndCounts.length];
for (int j = 0; j < layoutsAndCounts.length; j++) {
- Map.Entry e = layoutsAndCounts[j];
- Attribute.Layout def = (Attribute.Layout) e.getKey();
- int count = ((int[])e.getValue())[0];
+ Map.Entry<Attribute.Layout, int[]> e = layoutsAndCounts[j];
+ Attribute.Layout def = e.getKey();
+ int count = e.getValue()[0];
int index;
Integer predefIndex = attrIndexTable.get(def);
if (predefIndex != null) {
@@ -881,7 +881,6 @@
Attribute.Layout[] attrDefsWritten;
- @SuppressWarnings("unchecked")
void writeAttrDefs() throws IOException {
List<Object[]> defList = new ArrayList<>();
for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) {
@@ -906,20 +905,19 @@
int numAttrDefs = defList.size();
Object[][] defs = new Object[numAttrDefs][];
defList.toArray(defs);
- Arrays.sort(defs, new Comparator() {
- public int compare(Object o0, Object o1) {
- Object[] a0 = (Object[]) o0;
- Object[] a1 = (Object[]) o1;
+ Arrays.sort(defs, new Comparator<Object[]>() {
+ public int compare(Object[] a0, Object[] a1) {
// Primary sort key is attr def header.
+ @SuppressWarnings("unchecked")
int r = ((Comparable)a0[0]).compareTo(a1[0]);
if (r != 0) return r;
- Object ind0 = attrIndexTable.get(a0[1]);
- Object ind1 = attrIndexTable.get(a1[1]);
+ Integer ind0 = attrIndexTable.get(a0[1]);
+ Integer ind1 = attrIndexTable.get(a1[1]);
// Secondary sort key is attribute index.
// (This must be so, in order to keep overflow attr order.)
assert(ind0 != null);
assert(ind1 != null);
- return ((Comparable)ind0).compareTo(ind1);
+ return ind0.compareTo(ind1);
}
});
attrDefsWritten = new Attribute.Layout[numAttrDefs];
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -69,8 +69,7 @@
* Get the set of options for the pack and unpack engines.
* @return A sorted association of option key strings to option values.
*/
- @SuppressWarnings("unchecked")
- public SortedMap properties() {
+ public SortedMap<String, String> properties() {
return props;
}
@@ -157,7 +156,6 @@
// All the worker bees.....
// The packer worker.
- @SuppressWarnings("unchecked")
private class DoPack {
final int verbose = props.getInteger(Utils.DEBUG_VERBOSE);
@@ -199,9 +197,8 @@
};
for (int i = 0; i < ctypes.length; i++) {
String pfx = keys[i];
- Map<Object, Object> map = props.prefixMap(pfx);
- for (Object k : map.keySet()) {
- String key = (String)k;
+ Map<String, String> map = props.prefixMap(pfx);
+ for (String key : map.keySet()) {
assert(key.startsWith(pfx));
String name = key.substring(pfx.length());
String layout = props.getProperty(key);
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java Fri Jul 08 10:25:57 2011 -0700
@@ -27,7 +27,6 @@
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
-import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
@@ -47,8 +46,8 @@
* Control block for publishing Pack200 options to the other classes.
*/
-final class PropMap implements SortedMap<Object, Object> {
- private final TreeMap<Object, Object> theMap = new TreeMap<>();;
+final class PropMap implements SortedMap<String, String> {
+ private final TreeMap<String, String> theMap = new TreeMap<>();;
private final List<PropertyChangeListener> listenerList = new ArrayList<>(1);
void addListener(PropertyChangeListener listener) {
@@ -68,12 +67,12 @@
}
// Override:
- public Object put(Object key, Object value) {
- Object oldValue = theMap.put(key, value);
+ public String put(String key, String value) {
+ String oldValue = theMap.put(key, value);
if (value != oldValue && !listenerList.isEmpty()) {
// Post the property change event.
PropertyChangeEvent event =
- new PropertyChangeEvent(this, (String) key,
+ new PropertyChangeEvent(this, key,
oldValue, value);
for (PropertyChangeListener listener : listenerList) {
listener.propertyChange(event);
@@ -85,7 +84,7 @@
// All this other stuff is private to the current package.
// Outide clients of Pack200 do not need to use it; they can
// get by with generic SortedMap functionality.
- private static Map<Object, Object> defaultProps;
+ private static Map<String, String> defaultProps;
static {
Properties props = new Properties();
@@ -141,7 +140,9 @@
}
}
- defaultProps = (new HashMap<>(props)); // shrink to fit
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ HashMap<String, String> temp = new HashMap(props); // shrink to fit
+ defaultProps = temp;
}
PropMap() {
@@ -151,7 +152,7 @@
// Return a view of this map which includes only properties
// that begin with the given prefix. This is easy because
// the map is sorted, and has a subMap accessor.
- SortedMap<Object, Object> prefixMap(String prefix) {
+ SortedMap<String, String> prefixMap(String prefix) {
int len = prefix.length();
if (len == 0)
return this;
@@ -162,7 +163,7 @@
}
String getProperty(String s) {
- return (String) get(s);
+ return get(s);
}
String getProperty(String s, String defaultVal) {
String val = getProperty(s);
@@ -171,13 +172,13 @@
return val;
}
String setProperty(String s, String val) {
- return (String) put(s, val);
+ return put(s, val);
}
// Get sequence of props for "prefix", and "prefix.*".
- List getProperties(String prefix) {
- Collection<Object> values = prefixMap(prefix).values();
- List<Object> res = new ArrayList<>(values.size());
+ List<String> getProperties(String prefix) {
+ Collection<String> values = prefixMap(prefix).values();
+ List<String> res = new ArrayList<>(values.size());
res.addAll(values);
while (res.remove(null));
return res;
@@ -241,8 +242,8 @@
}
void list(PrintWriter out) {
out.println("#"+Utils.PACK_ZIP_ARCHIVE_MARKER_COMMENT+"[");
- Set defaults = defaultProps.entrySet();
- for (Map.Entry e : theMap.entrySet()) {
+ Set<Map.Entry<String, String>> defaults = defaultProps.entrySet();
+ for (Map.Entry<String, String> e : theMap.entrySet()) {
if (defaults.contains(e)) continue;
out.println(" " + e.getKey() + " = " + e.getValue());
}
@@ -270,18 +271,17 @@
}
@Override
- public Object get(Object key) {
+ public String get(Object key) {
return theMap.get(key);
}
@Override
- public Object remove(Object key) {
+ public String remove(Object key) {
return theMap.remove(key);
}
@Override
- @SuppressWarnings("unchecked")
- public void putAll(Map m) {
+ public void putAll(Map<? extends String, ? extends String> m) {
theMap.putAll(m);
}
@@ -291,48 +291,47 @@
}
@Override
- public Set<Object> keySet() {
+ public Set<String> keySet() {
return theMap.keySet();
}
@Override
- public Collection<Object> values() {
+ public Collection<String> values() {
return theMap.values();
}
@Override
- public Set<Map.Entry<Object, Object>> entrySet() {
+ public Set<Map.Entry<String, String>> entrySet() {
return theMap.entrySet();
}
@Override
- @SuppressWarnings("unchecked")
- public Comparator<Object> comparator() {
- return (Comparator<Object>) theMap.comparator();
+ public Comparator<? super String> comparator() {
+ return theMap.comparator();
}
@Override
- public SortedMap<Object, Object> subMap(Object fromKey, Object toKey) {
+ public SortedMap<String, String> subMap(String fromKey, String toKey) {
return theMap.subMap(fromKey, toKey);
}
@Override
- public SortedMap<Object, Object> headMap(Object toKey) {
+ public SortedMap<String, String> headMap(String toKey) {
return theMap.headMap(toKey);
}
@Override
- public SortedMap<Object, Object> tailMap(Object fromKey) {
+ public SortedMap<String, String> tailMap(String fromKey) {
return theMap.tailMap(fromKey);
}
@Override
- public Object firstKey() {
+ public String firstKey() {
return theMap.firstKey();
}
@Override
- public Object lastKey() {
+ public String lastKey() {
return theMap.lastKey();
}
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java Fri Jul 08 10:25:57 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -67,7 +67,7 @@
props = new PropMap();
}
- SortedMap<Object, Object> getPropMap() {
+ SortedMap<String, String> getPropMap() {
return props;
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java Fri Jul 08 10:25:57 2011 -0700
@@ -81,8 +81,7 @@
* Get the set of options for the pack and unpack engines.
* @return A sorted association of option key strings to option values.
*/
- @SuppressWarnings("unchecked")
- public SortedMap properties() {
+ public SortedMap<String, String> properties() {
return props;
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java Wed Jul 06 11:08:20 2011 -0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java Fri Jul 08 10:25:57 2011 -0700
@@ -253,8 +253,8 @@
}
static void copyJarFile(JarFile in, JarOutputStream out) throws IOException {
byte[] buffer = new byte[1 << 14];
- for (Enumeration e = in.entries(); e.hasMoreElements(); ) {
- JarEntry je = (JarEntry) e.nextElement();
+ for (Enumeration<JarEntry> e = in.entries(); e.hasMoreElements(); ) {
+ JarEntry je = e.nextElement();
out.putNextEntry(je);
InputStream ein = in.getInputStream(je);
for (int nr; 0 < (nr = ein.read(buffer)); ) {