Warnings Cleanup in java.util.<various> (more from hack day)
Michael Barker
mikeb01 at gmail.com
Fri Dec 2 12:02:22 PST 2011
> one change to Manifest.java introduces a bug !
>
> - byte[] vb = value.getBytes("UTF8");
> - value = new String(vb, 0, 0, vb.length);
> + byte[] vb = value.getBytes(StandardCharsets.UTF_8);
> + value = new String(vb, 0, 0, StandardCharsets.UTF_8);
>
>
> the last line should be:
> value = new String(vb, 0, 0, vb.length);
Cheers, good spot. I've attached an updated patch.
Mike.
-------------- next part --------------
diff -r 43a630f11af6 src/share/classes/java/util/jar/Manifest.java
--- a/src/share/classes/java/util/jar/Manifest.java Wed Nov 30 13:11:16 2011 -0800
+++ b/src/share/classes/java/util/jar/Manifest.java Fri Dec 02 19:59:38 2011 +0000
@@ -30,6 +30,7 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
@@ -51,7 +52,7 @@
private Attributes attr = new Attributes();
// manifest entries
- private Map entries = new HashMap();
+ private Map<String, Attributes> entries = new HashMap<>();
/**
* Constructs a new, empty Manifest.
@@ -148,20 +149,20 @@
// Write out the main attributes for the manifest
attr.writeMain(dos);
// Now write out the pre-entry attributes
- Iterator it = entries.entrySet().iterator();
+ Iterator<Map.Entry<String, Attributes>> it = entries.entrySet().iterator();
while (it.hasNext()) {
- Map.Entry e = (Map.Entry)it.next();
+ Map.Entry<String, Attributes> e = it.next();
StringBuffer buffer = new StringBuffer("Name: ");
- String value = (String)e.getKey();
+ String value = e.getKey();
if (value != null) {
- byte[] vb = value.getBytes("UTF8");
+ byte[] vb = value.getBytes(StandardCharsets.UTF_8);
value = new String(vb, 0, 0, vb.length);
}
buffer.append(value);
buffer.append("\r\n");
make72Safe(buffer);
dos.writeBytes(buffer.toString());
- ((Attributes)e.getValue()).write(dos);
+ e.getValue().write(dos);
}
dos.flush();
}
More information about the jdk8-dev
mailing list