Warnings Cleanup in java.util. (more from hack day) (original) (raw)

Martijn Verburg martijnverburg at gmail.com
Fri Dec 2 15:12:37 PST 2011


Hi Remi,

Sorry, was on my phone earlier - so to clarify, I swapped:

String(byte[] ascii, int hibyte, int offset, int count)

to

String(byte[] bytes, int offset, int length, String charsetName)

The reasoning was that I didn't think the count had any actual value in this call and from the deprecated warning on the first constructor:

"This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via the String constructors that take a Charset, charset name, or that use the platform's default charset."

Hmm, I can't see another 'safe' constructor that takes a byte[] and a count. Is there another recommended way around this?

Cheers, Martijn

On 2 December 2011 22:28, Martijn Verburg <martijnverburg at gmail.com> wrote:

Hi Rémi,

Doesn't that then use the deprecated String constructor? Disclaimer - I was involved in that patch :) Cheers, Martijn

On Friday, 2 December 2011, Rémi Forax <forax at univ-mlv.fr> wrote: On 12/02/2011 08:24 PM, Michael Barker wrote:

Hi, We had some late submissions from our hack day participants.  2 more patches.  One (j.u.z.ZipEntry) is possibly a little more involved for a warnings fix.  It removes a usage of deprecated Date APIs in favour of Calendar.  However, the fix results in code that is very similar to Apache Harmony implementation.  The other is a couple of fixes for generics (j.u.j.Manifest). Thanks to: - Prasannaa Regards, Michael Barker mikeb2701 Hi Mickael, 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.UTF8); +                value = new String(vb, 0, 0, StandardCharsets.UTF8); the last line should be: value = new String(vb, 0, 0, vb.length); cheers, Rémi



More information about the jdk8-dev mailing list